当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]云端语音助手在互联网中断、延迟增加或你开始疑惑每个指令的处理位置时,依然十分便捷。对于智能家居而言,“打开办公室的灯”应该感觉即时且私密。

RK3576上的本地Home Assistant语音

云端语音助手在互联网中断、延迟增加或你开始疑惑每个指令的处理位置时,依然十分便捷。对于智能家居而言,“打开办公室的灯”应该感觉即时且私密。

我想要一个能够运行在本地网络上、并完成重要任务的Home Assistant语音助手。最终结果是一个Docker Compose配置,将Rockchip RK3576开发板转变为Assist的本地语音后端。

它集成了本地唤醒词检测、本地语音转文字、本地文字转语音以及一个小型本地大语言模型。Home Assistant 仍然支持常规集成。RK3576 板卡在后台负责处理加速的 AI 功能。

堆栈包含:

•openWakeWord 用于唤醒词检测

•语音转文字的低语

•Piper 语音转文字

•通过兼容 OpenAI 的 RKLLM API 访问 Qwen 2.5 1.5B

•Wyoming services for Home Assistant integration

•Docker Compose 的预构建 ARM64 容器

•RK3576 通过 Rockchip 的 NPU 栈实现加速

它做什么

设置完成后,语音交互感觉就像普通的 Home Assistant 语音助手一样。

你说唤醒词,Home Assistant 打开 Assist 管道。RK3576 上的 Whisper 将命令转录为语音。Home Assistant 处理意图,或向本地大语言模型发送会话请求。RK3576 上的 Piper 说出响应内容。

关键在于什么没有发生:Home Assistant 不需要了解 RKNN 模型、NPU 运行时、模型打包或针对特定板卡的音频处理。它与标准的 Wyoming 服务进行通信。

Docker Compose 堆栈暴露了四个本地服务:

•Piper 文本转语音在端口 10200

•在端口 10300 上进行 Whisper 语音转文字

•openWakeWord 在端口 10400

•RKLLM本地对话API,端口8001

我为何建造它

Home Assistant 已经拥有一个强大的本地语音生态系统,因此我不想替换其架构。我想要为它提供一个紧凑的本地后端,能够利用专为边缘推理设计的硬件来运行更重的AI工作负载。

RK3576 具有独特之处,它处于一个实用的中间位置。它体积小巧,可像家用电器一样使用,但内置了联发科 NPU,当模型正确准备后,能够有效加速真实模型的运行。

我的目标很简单:

•保持语音管道本地化

•在需要时使用 RK3576 加速器

•使用 Docker Compose 实现便捷的部署

•保持 Home Assistant 的硬件无关性

最后这一点决定了整个项目的实现方式。硬件特定的项目往往难以复现,因为每一层都了解太多关于电路板的信息。我想要的是相反的情况:Home Assistant 应该能够识别普通服务,而容器则负责处理 RK3576 的具体细节。

构建

总体而言,语音路径如下所示:

Wyoming是关键边界。它为Home Assistant提供了清晰的语音服务协议,也让这个项目有了一个隐藏杂乱部分的地方:RKNN执行、模型加载、硬件访问以及容器打包。

我并没有向Home Assistant介绍RK3576,而是围绕加速模型构建了兼容Wyoming的服务。这样以最佳方式让集成变得无趣。你只需在Home Assistant中添加这些服务,然后在Assist流程中选择它们,Home Assistant就会像处理其他本地的语音识别、语音合成和唤醒词提供程序一样来对待它们。

为何选择RK3576

这个项目并非试图在一块微小的电路板上构建一个云规模的助手,而是旨在实现本地智能家居控制和简短的本地对话。

这使得RK3576成为理想选择。其NPU可胜任AI工作负载,而该芯片板仍保持小巧、安静,并易于部署在网络中。默认的LLM为Qwen 2.5 1.5B,其规模设计有意适度。对于这种应用场景而言,可靠性和本地执行性能比拥有最大可能的模型更为重要。

RK3576 从工程角度来看也使该项目更具吸引力。在 NPU 上运行模型与在 ARM CPU 上运行通用的 Python 代码并不相同,模型格式、运行时环境、输入形状以及设备访问方式等细节都至关重要。挑战在于让这些细节从用户视角中消失。

部署与设置

完整的配置文件位于 GitHub 仓库中,包括 Docker Compose 文件、模型打包说明以及故障排除步骤。简要版本是:准备开发板,启动 Compose 堆栈,然后将本地服务添加到 Home Assistant 中。

预构建的ARM64镜像正是实现这一功能的关键。用户在尝试该项目之前,无需转换模型、在板上构建容器或手动整理大型模型文件。

1. 准备RK3576板

安装 Linux ARM64 镜像,将板子连接到网络,然后安装 Docker Engine 和 Docker Compose 插件。基于 RKNN 的容器需要访问 Rockchip 加速器,因此 Compose 文件为语音和大语言模型服务分配了所需的设备权限。

2. 克隆项目

3. 启动语音服务

如果 Home Assistant 已经在网路上的其他位置运行,请使用此路径。你应该能看到 Whisper、Piper、openWakeWord 和 RKLLM 的容器。

4. 可选:在同一块板上运行 Home Assistant

然后打开:

5.在 Home Assistant 中添加Wyoming的服务

在 Home Assistant 中,进入设置 → 设备与服务 → 添加集成 → Wyoming 协议,然后添加:

•语音转文字:RK3576主板IP:10300

•Piper 文本转语音:RK3576 板载 IP:10200

•openWakeWord: RK3576_BOARD_IP:10400

6. 创建辅助流水线

进入设置 → 语音助手,然后创建或编辑一个助手流程,并选择 RK3576 Whisper、Piper 和 openWakeWord 服务。

7. 添加本地LLM

通过 HACS 安装本地 LLM 集成,然后将其配置为与 OpenAI 兼容的端点:

在辅助流程中选择此对话代理。

8. 测试它

尝试以下命令:

•打开办公室的灯。

•“哪些灯亮了?”

•将台灯调至30%。

•现在几点了?

测试时查看日志:

表现

我还需要发布最终的基准数据,但以下是我会跟踪以实现实用 Home Assistant 语音体验的测量指标:

•低语转录:典型房间控制指令耗时0.626秒

•LLM响应:2.82秒。

•Piper合成:从文本响应到可播放音频仅需0.474秒

重要的工程目标不仅仅是原始的模型速度。整个系统需要具备响应感:唤醒词检测应迅速触发,转录不应阻塞辅助流程,语音合成也应尽早开始,以确保交互仍能保持对话般的自然感。

挑战

第一个挑战是“Whisper”。语音转文字在模型本身方面涉及大量实际的音频处理,而RK3576的路径又增加了另一层:模型需要在NPU上通过RKNN运行。服务必须接受普通的Home Assistant音频,将其预处理为加速模型所需的格式,并通过Wyoming返回文本转录结果。

Piper 的结构有所不同。文本处理和编码器可以保持与普通 Python 和 ONNX 流程相近,但解码器则通过 RKNN 运行。这要求对加速路径进行封装,以确保 Home Assistant 仍能接收到普通的流式音频,而不会看到任何模型特定的限制。

第三个挑战是界面设计。本可以轻松地只开发一个作为定制演示的版本,但那并不是目标。Wyoming 使项目在 Home Assistant 上看起来像是原生的,同时将 RK3576 特定的代码保留在容器内部。

打包与推断同样重要。大型模型文件不应直接包含在源代码树中,但如果每个用户都需要手动组装这些文件,这样的项目就毫无用处了。构建流程会下载发布版本的存档、验证校验和、准备资源,并生成ARM64镜像,供Docker Compose拉取使用。

我学到的东西

最实用的设计选择是保持边界严格。Home Assistant 仍作为整体协调者,RK3576 板卡提供本地 AI 服务,Wyoming 则在两者之间建立连接,同时不泄露硬件细节。

这种分离也让项目更容易进行更改。同一服务架构下,可以更换不同的RK3576兼容的Whisper模型、另一种Piper语音或不同的RKLLM图像,而用户界面的集成保持不变。

另一个教训是,包装是工程的一部分,而非事后考虑。一个能正常运行的原型很有趣。而使用预构建容器的Compose堆栈,是另一位开发者可以实际尝试的东西。

结果

RK3576 板卡可作为 Home Assistant 的本地语音后端:唤醒词、语音识别(STT)、文本转语音(TTS)以及本地对话均在边缘设备上运行,而 Home Assistant 仍继续使用标准的集成方式。

关键在于界面设计。Home Assistant 保持简洁且不依赖硬件,而 RK3576 则负责 Wyoming 服务背后的专用加速处理。这正是我所追求的平衡:一个感觉像是家庭一部分的语音助手,同时依然保持开放、本地化和可定制性。

本文编译自hackster.io

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

很长一段时间里,我总是需要反复按下Alt键切换到任务管理器或系统监控工具,才能查看电脑资源的使用情况。尤其是在进行大量渲染或游戏时,如果能一目了然地看到这些信息,就能大大减少猜测的时间。一个小巧而专用的显示屏,能够实时显...

关键字: LCD ESP32 CPU

我想创建一种无需亲自坐在电脑前即可远程监控电脑性能的方法。无论我正在运行资源密集型任务、玩游戏,还是仅仅想查看系统状态,这款设备都能让我通过任何有网络连接的地方,实时获取CPU、GPU、RAM和SSD的性能数据。

关键字: 智能家居 CPU GPU 物联网

挪威奥斯陆 – 2026年7月2日 – 智能家居行业历经多年迭代,标准化互联、轻量化智能、低功耗落地已然成为产业升级的核心命题。作为全球超低功耗无线互联领域的标杆企业,Nordic Semiconductor始终深耕Ma...

关键字: 智能家居 边缘 AI Matter

2026年6月29日 – 提供超丰富半导体和电子元器件™的业界知名新品引入 (NPI) 代理商贸泽电子 (Mouser Electronics)宣布,将于7月1-3日重磅亮相2026慕尼黑上海电子展(展位号:N2馆 62...

关键字: 智能家居 智能汽车 AI

在Linux系统的C语言开发中,字节对齐是一个绕不开的基础话题。很多开发者都遇到过这样的困惑:明明计算结构体大小时把每个成员的字节数加起来,结果实际大小却比计算值大上好几倍,甚至修改结构体成员的排列顺序,总大小还会发生变...

关键字: Linux CPU

中国北京(2026年6月23日)—— 业界领先的半导体器件供应商兆易创新GigaDevice(股票代码:603986.SH;3986.HK)宣布与全球领先的软件设计、开发与质量解决方案提供商Qt Group正式达成合作,...

关键字: 嵌入式 GUI 智能家居

全新飞利浦Hue智能灯泡采用芯科科技无线技术,同时支持Matter和Zigbee协议,在保持Hue卓越使用体验的同时,为消费者提供了更多选择

关键字: 智能灯泡 无线 智能家居

MCU作为嵌入式系统的核心,从诞生之初就面临着固件被逆向、拷贝的风险。在上世纪八九十年代,MCU的应用刚在工业控制、消费电子领域普及,芯片厂商还没有成熟的硬件加密技术,早期工程师们只能在有限的硬件条件下,想出各种巧妙的加...

关键字: MCU CPU

在日常使用电脑的过程中,几乎每个人都遭遇过这样的困扰:打开网页半天加载不出,点击软件半天没有响应,鼠标移动卡顿掉帧,甚至弹出系统提示“CPU占用过高,请关闭程序”。CPU作为电脑的核心计算部件,就像整个设备的“心脏”,一...

关键字: CPU 软件

随着人工智能技术的快速发展,视觉检测技术在医疗健康领域的应用越来越广泛。传统的视力检测需要专业医护人员操作,检测效率较低,且难以实现自动化。本项目基于米尔RK3576开发板,设计并实现了一套智能视力检测系统,旨在提供一种...

关键字: RK3576 无人视力测试仪 智能视力检测
关闭