当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]这是一个基于树莓派4或5构建的完全离线语音助手。你与它对话,它通过板子本地运行的语言模型进行思考,并通过扬声器回话。整个流程都运行在树莓派本身上,因此一旦设置完成,就完全不需要网络连接。我制作这个项目是因为希望能在自己家中使用一个真正值得信赖的设备,而从创客的角度来看,这确实是一个非常有趣的项目。

这是一个基于树莓派4或5构建的完全离线语音助手。你与它对话,它通过板子本地运行的语言模型进行思考,并通过扬声器回话。整个流程都运行在树莓派本身上,因此一旦设置完成,就完全不需要网络连接。我制作这个项目是因为希望能在自己家中使用一个真正值得信赖的设备,而从创客的角度来看,这确实是一个非常有趣的项目。

这个离线树莓派语音助手项目的作用

该设备在高阶上依次完成以下三项任务,全部在板载实现:

•当触发时,会录制几秒钟来自USB麦克风的音频。

•它使用 Whisper 将音频转换为文字,然后通过 Ollama 将文本传入本地语言模型,并获取书面回答。

•使用 Piper TTS 将答案转换为自然语音,并通过扬声器播放出来。

结果就是你桌面上一个小型盒子,能在大约十到二十秒内回答语音问题,而且从未将任何数据发送到远程服务器。这就像商业智能音箱所假装的那样,但实际上并非如此,因为商业产品所有的计算都在云端完成。

树莓派语音助手构建的硬件组件

这里不需要什么稀奇古怪的东西,这正是它的魅力所在。大部分材料制造商的抽屉里已经备有。

此表格列出了构建的核心部件及其大致功能。

组件

•树莓派 4 或 5

•MicroSD卡

•USB麦克风

•扬声器

•电源

最重要的规格是内存(RAM),因为它决定了你可以运行哪种语言模型。在2GB的树莓派上,你只能使用1B级别的模型,保持流畅运行;而4GB或更大的内存则可以升级到更大型号,从而在速度与回答智能程度之间取得明显平衡。

在软件方面,一切都开放且免费:使用 Raspberry Pi OS Bookworm 64 位系统,语言模型采用 Ollama,语音转文字使用 Whisper,语音交互则由 Piper 提供。初始下载阶段仅需网络连接,之后即可完全离线运行。

本地LLM如何在没有云服务的情况下运行于树莓派

最令人惊讶的是,现在居然能以如此低廉的价格在一块板子上运行一个真正的语言模型。Ollama 是让这一切变得轻松的工具——它和人们在笔记本电脑上使用的相同,运行在树莓派的 ARM 处理器上,无需显卡支持。你只需一次加载模型,之后它就能本地回答问题。

这种方案能在如此基础的硬件上运行,是因为这些模型在设计上就规模较小。一个1B级别的模型虽然无法为你写一篇完整的文章,但对语音助手而言,它已能很好地处理简短的问题和快速的事实查询,毕竟速度比性能更重要。如果你想了解哪些模型适配哪些主板,以及如何通过Ollama部署这些模型的详细信息,我之前在本系列文章的前一部分中,已经详细介绍了如何在树莓派上使用Ollama运行本地大语言模型。

这三个组件之间衔接得相当顺畅,但它们都在争夺有限的内存,这正是构建过程变得有趣的地方。

构建阶段及值得关注的问题

我不会假装这是一套即插即用的方案。以下是我在处理时所经历的主要阶段,按顺序列出:

•更新操作系统并安装 Ollama,然后拉取一个适合你内存大小的模型。

•设置并测试USB麦克风和扬声器,确保音频能够正常输入和输出。

•安装 Whisper 和 Piper 的 Python 模块,然后获取一个语音模型。

•将四个功能——记录、转录、提问模型、说话——整合成一个循环。

•可选添加唤醒词检测功能,实现免提操作。

导致我耗费大量时间的问题几乎全部出在音频和内存方面。我的麦克风以我未曾预料的采样格式录制,导致每次转录结果都为空;直到后来我才意识到录音本身没问题,真正的问题在于格式假设错误。同时一次性加载三个组件还让一块2GB的板卡达到了极限,因此需要提前配置一些预留空间才能保持稳定。此外,添加了始终监听唤醒词功能后,额外消耗了2GB树莓派几乎无法负担的内存。一旦了解这些情况,问题就不再那么棘手了,而把修复方案写在面前,也并非什么坏事。

在树莓派上自制离线语音助手的优缺点

诚实的权衡,因为只列出优点的项目页面并不值得太多重视:

•完全私密,无需网络即可使用,这正是建造它的全部原因。

•安装后无需花费任何费用,零件便宜且可重复使用。

•比任何商业助理都慢,处理时间需要十到二十秒。

•小型模型虽然有用,但无法完美区分事实与虚构,因此不要将其用于任何重要判断。

•Linux音频配置是最麻烦的部分,在开始享受乐趣之前,它会考验你的耐心。

对制作者而言,缓慢和粗糙的边缘与其说是缺陷,不如说是一种特征,因为你是在学习每个阶段如何运作,而不是直接购买一个黑箱。

接下来你可以为这个树莓派语音助手项目添加什么

一旦核心循环运行起来,这便成为进一步扩展的绝佳基础。一些可轻松实现的方向包括:免提唤醒词激活,通过语音即可触发;GPIO控制,使语音指令能切换真实灯光和继电器;配备小型视觉模型的摄像头,用于物体识别;由于Whisper支持数十种语言,因此具备多语言功能;以及3D打印外壳,可将其打造成一个完整的桌面设备。每个功能都复用了相同的本地处理流程,因此你永远不会失去该设备离线、私密的特性。

如果你想完全复制这个配置,包括音频格式标志、内存修复、每块主板的模型推荐以及唤醒词代码,完整的详细说明请参见我在RootSaid上发布的完整离线树莓派语音助手教程,其中包含Whisper和Piper TTS的设置。所有命令和配置值都保存在那里。

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

市面上的每款智能音箱看起来都像是出自同一场设计会议:圆柱形机身、网状格栅、发光环。我想打造一个东西,你一眼望去以为是装饰品,直到你注意到那支手工绘制的黄铜号角里传来微弱的音乐嗡鸣声。

关键字: 智能音箱 扬声器 Arduino

本项目的目标是使用 Buildroot 为树莓派 Zero W 开发一个定制的嵌入式 Linux 发行版。系统设计仅包含应用程序所需的基本组件,例如 Wi-Fi 连接、SSH 和 SCP 访问、I2C 支持以及 Pyth...

关键字: Linux 树莓派 显示屏 SSD1306

在传统模式下,人类使用手工库存管理系统,这种方式耗时且容易出错。随着技术的发展,我们开发了一款条码扫描器,能够快速扫描产品并管理库存系统。本项目展示了如何构建一款基于树莓派的条码扫描终端,通过即时扫描和记录产品信息,实现...

关键字: 树莓派 条码扫描器 Arduino

reComputer AI Lab 是由 Seeed 推出的边缘 AI 开发平台,围绕即用型体验构建。该平台预集成主流 AI 应用场景,包括通过定制系统镜像实现 YOLO 等功能,并支持一键部署与推理执行,显著降低了开发...

关键字: 边缘 AI 树莓派 RK3576

对讲机是一个经典的电子项目,而ESP32让其制作变得出人意料地简单。得益于XIAO ESP32-S3 Sense内置的麦克风以及低延迟的ESP-NOW协议,两个ESP32设备之间可以直接传输音频。

关键字: 对讲机 麦克风 扬声器 ESP32-S3

我的歌唱机器人是一种交互式音乐表演系统,由手持控制器、四个无线机器人节点和一台笔记本电脑图形用户界面组成。用户可通过4步音序器开启或关闭每个机器人,调节节拍(BPM),并使用控制器上的旋转编码器改变各机器人的音高,来创作...

关键字: 机器人 LED灯 扬声器 ESP32

所有学生都面临的一个问题是,在真正重要的时候难以集中注意力并保持专注。为了寻找能帮助学生提高专注力的工具,我们只找到了那些屏蔽手机上干扰应用的软件。许多这类专注工具只是阻止用户打开分心的应用,但并没有真正防止用户临时关闭...

关键字: AI HUD 扬声器

最近我接到任务,为一位客户的鸡舍采购一盏太阳能泛光灯。但要求不能是运动感应型的,而且必须使用太阳能供电,因为鸡舍远离电源插座,需要完全自主运行,每天凌晨4点到7点自动开启。网上找不到符合这些条件的产品。起初……

关键字: 太阳能 树莓派 实时时钟

一款完全离线、注重隐私的人工智能语音助手,运行在树莓派5上,专为非洲社区打造,能够理解并用特威语、加纳语、埃维语和英语进行交互,无需等待硅谷关注他们的语言。

关键字: AI 树莓派 传感器 MPU6050

游戏很简单。有三个鼓,分别是红色、绿色和蓝色。其中任意一个会随机被激活,地上的灯光会朝它移动,并持续动画显示最多4秒。玩家有这段时间来击打这个鼓,但停留的时间越长,下一位玩家获得的时间就越少。如果某位玩家未能及时击打,就...

关键字: 控制器 树莓派5 扬声器 ESP8266
关闭