AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


树莓派+大模型,打造全本地语音聊天机器人
发布日期:2024-04-15 20:56:21 浏览次数: 2909 来源:Random Tech Notes


侧应用一直是大模型的热点之一,尤其是最近人形机器人的火爆,让人们把目光再次放到了“具身智能”上,探索如何将大模型的能力与低功耗的客户端设备结合。对于端侧设备来说,网络连接经常不稳定且带宽有限,基于云服务使用大模型比较困难,同时端侧设备还需要格外重视安全性和隐私问题,因此本地运行是比较合理的选择。

介绍一个在树莓派上运行的大模型语音聊天机器人:push-to-talk交互模式,按下按钮对它说话,它会用大模型生成回答,并用很自然回应,并且全过程都在本地,不需要联网例如问它: “How do you live?”:

硬件方面,你需要:

  • 4GB内存的树莓派4(3应该也可以,如果内存够的话)

  • 麦克风(树莓派自己没有麦克风,可以接个USB的)

  • 喇叭,可以用USB的,这里用的是自带喇叭的HDMI显示屏,所以就走HDMI输出了

  • 按钮,普通的2-wire按钮即可,一条线button,一条线ground,这里用的是从Google AIY VoiceKit上拆下来的按钮,BTN线(Pin 3)接到树莓派的GPIO 8,GND线(Pin 1)接到GPIO 6。


按钮连线参见:

https://aiyprojects.withgoogle.com/voice/#makers-guide--button-connector-pinout

接好后大概是这样子:



主要软件组件包括三部分:

  • 语音识别,Active Speech Recognition (ASR),将用户的语音识别为文字请求,这里用的是whisper.cpp(OpenAI Whisper的C++实现)

  • 大语言模型LLM,根据用户的请求,生成回答文本,这里用的是TinyLlama 1.1B(用llamafile包装成ARM64可执行文件)

  • 语音合成,Text-To-Speech (TTS),将LLM的回答合成为语音,这里用的是piper


树莓派上跑的OS,是Ubuntu server for Raspberry Pi,可以从这里直接下载预装好的映像:

https://cdimage.ubuntu.com/releases/jammy/release/

用户按下按钮,改变GPIO8状态,树莓派打开麦克风开始录制用户的语音,直到用户松开按钮(临时录音文件保存在本地)。随后whisper.cpp将语音转成文字,作为提示输入给TinyLlama,TinyLlama的回答,再通过piper转成语音播放。

树莓派4跑TinyLlama 1.1B,虽然内存够,但速度还是有点慢,大概每秒生成4-5个token。因此如果回答比较长的话,用户需要等很久才会有回应,这个体验还是比较差的。为改善体验,采用的方法:1)在系统prompt里告诉LLM限制回答字数;2)采用流式输出,每生成一个完整句子就调用piper合成语音,减少用户等待时间。


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询