Home Assistant语音助手接入AI大模型

之前,我分享了如何安装 Home Assistant OS 以及如何集成米家设备。Home Assistant 虽然有自带的语音助手,但在智能程度上却有些差强人意,甚至比不上小爱同学。
论坛上有大佬开发了插件,能够将其接入 AI 大模型,从而大幅提升语音助手的智能水平。本篇笔记记录一下 Home Assistant 语音助手接入 AI 大模型。

1、语音助手简介

语音助手由语音转文字(STT)对话代理(AI)文字转语音(TTS)三大模块组成。

语音转文字(STT):负责将用户的语音指令转换为文字,是语音助手的输入环节。常见的实现方式包括离线模型(如FunASR)和在线服务(如讯飞、百度等)。

对话代理(AI):作为语音助手的“大脑”,负责理解文字指令并生成回答或操作指令。常见的AI对话大模型包括最近大热的DeepSeek、豆包、智谱清言都可以接入。

文字转语音(TTS):将对话代理(AI)生成的文字回答转换为语音输出,是语音助手的输出环节。常见的TTS 服务包括Edge TTSGoogle TTS

2、部署STT模型

我使用的是离线语音转文字(STT)模型,部署在群晖 NAS 上。目前主流的离线语音转文字(STT)模型有两种:

  • Sherpa-onnx-asr:占用资源较少(仅需 1GB 内存),响应快,识别率好。

  • FunASR:占用资源较高(需要 3GB 内存),响应稍慢一点,但识别率更高。

由于我的 NAS 内存有限,因此选择了部署Sherpa-onnx-asr

通过SSH连接 NAS 后,执行以下命令进行部署:

dockerpull yaming116/sherpa-onnx-asr:latestdockerrun -d --restart=always -it --name sherpa-onnx-asr -p9911:5001yaming116/sherpa-onnx-asr:latest

部署成功后,可以Docker容器中看到Sherpa-onnx-asr:

3、安装插件

要实现Home Assistant 的语音助手功能,需要安装三个插件:FunASR智谱清言Edge-TTS

① 安装 FunASR 插件

虽然我使用的语音转文字(STT)模型是Sherpa-onnx-asr,但也可以用使用FunASR插件将Sherpa-onnx-asr集成到 Home Assistant 中。

打开HACS(Home Assistant Community Store),点击右上角的三个点,选择自定义仓库。在弹出的对话框中,输入FunASR的仓库地址(https://github.com/yaming116/home-assistant-fun-asr)。选择Integration类型,点击ADD完成添加。

② 安装智谱清言插件

AI 对话模型的推荐是智谱清言,虽然也可以使用DeepSeek豆包,但 DeepSeek 容易提示系统繁忙,而豆包的Token使用量有限。

重复步骤①,添加智谱清言的仓库地址(https://github.com/knoop7/zhipuai)。

智谱清言还需要注册并获取API Key,注册(地址:https://open.bigmodel.cn)后点右上角API密钥,获取或添加新的API Key。

③ 安装 Edge-TTS 插件

文字转语音(TTS)模型推荐直接使用Edge TTS,只需要安装相关插件即可使用。重复步骤①,添加智谱清言的仓库地址(https://github.com/hasscc/hass-edge-tts)。

4、配置语音助手

在 Home Assistant 的设置>语音助手中,将对话代理设置为智普清言,语音转文字选择Fun Asr server,文字转语音选择Edge TTS,创建语音助手。

5、测试

STT、AI、TTS响应都需要一点时间,所以整体响应看起来比较慢。

B站有提供了豆包语音助手的视频:https://www.bilibili.com/video/BV18CQGYXE15/

推荐阅读:

1.群晖NAS安装Home Assistant OS和ha_xiaomi_home米家集成

2.ESP8266通过MQTT接入Home Assistant(基于Micropython)

3.ESP8266通过MQTT接入Home Assistant(二)

4.ESP32S3摄像头接入Home Assistant(基于Micropython)

5.基于ASRPRO的语音遥控智能小车

6.巴掌大小的蓝牙遥控小车(基于RP2350或RP2040)

7.使用ASRPRO开发板语音控制emo表情机器人

8.两块行空板K10实现单向语音传输(传声筒)