如何在Home Assistant中部署AI语音助手(Gemini、DeepSeek、ChatGPT都可)

享受AI语音助手

我愿将今年称为Home Assistant AI语音元年。去年12月,Home Assistant官方正式推出了Home Assistant Voice Preview Edition设备。

Home Assistant Voice Preview Edition

这一举措表明官方认为相关软硬件配套已初步成熟,可以体验。与此同时伴随着过去两年AI技术的飞速发展,AI语音助手不再是遥不可及的梦想。无论你是刚入门的新手,还是经验丰富的Home Assistant玩家,现在都是时候在Home Assistant中体验AI语音助手的力量了。

为此我将发布一系列文章介绍Home Assistant AI语音助手,本期文章主要介绍以下两个方面内容:

  • AI语音助手如何工作
  • 快速部署基于Gemini大模型的AI语音助手

我知道大家通常对理论的兴趣不如实操,但理论才是实操的基础。许多小伙伴在遇到问题时不知道如何下手解决,往往是因为缺乏理论知识的储备。

AI语音助手如何工作

1. 语音处理流

  • Assist:Home Assistant中自带的语音助手
  • Pipeline:是一种将一系列处理步骤有序组合在一起的方式,每个步骤通过处理数据并将其传递到下一个步骤,最终完成整个任务
  • STT:Speech-to-Text,语音转文本
  • TTS:Text-to-Speech,文本转语音
引自Home Assistant
引自Home Assistant

首先,通过某种硬件采集用户的语音,然后通过STT(相当于人耳)将音频转换为文本,将转换后的文本发送给Assist(相当于人脑)进行处理。虽然可以直接使用Home Assistant系统自带的Assist(对话代理),但系统自带的功能主要专注于智能家居控制,无法处理更复杂的非智能家居问题,因此需要借助AI来增强Assist的处理能力。经过Assist处理后,得到的结果是文本(这里简化了部分细节),然后通过TTS(相当于人嘴)技术将文本转换回语音,最后通过硬件播放语音。将这些步骤综合起来,我们称之为Assist Pipeline

这种语音处理过程(STT、AI对话代理、TTS)对CPU的需求较高,通常无法在语音助手硬件(比如:Home Assistant Voice Preview Edition)上直接完成,有时甚至运行Home Assistant系统的硬件(比如:Raspberry Pi 4)也难以处理。因此,官方提供一种可选解决方案是将语音处理转移到云端(目前只提供STT和TTS服务,没有AI对话代理服务)通过Home Assistant Cloud实现。AI对话代理服务则由Gemini、ChatGPT、DeepSeek以API方式完成。这使得即便是低功耗的Home Assistant硬件,也能轻松使用AI语音助手。

本地部署STT、TTS、LLM后面文章会讲,大家别急!先关注作者加三连

快速部署基于Gemini大模型的AI语音助手

1. 准备工作

  • 备份系统:最好先备份一下系统,可以参考《Home Assistant 加载项之备份与还原(上篇)》
  • Home Assistant Cloud:注册账户可以免费体验一个月(后面再说为什么选用)。如果续费,则每月收取6.5USD
  • HAOS 版本:最好是2025.2.2及以上版本

2. 可选步骤

如果Home Assistant启用公网和本地域名访问,检查一下设置->系统->网络是否开启了外网访问,如果未开启需要配置下面两处网址

3. 登录Home Assistant Cloud账户

设置->Home Assistant Cloud->开始一个月免费试用

然后登录账户,会提示你添加一名为“Home Assistant Cloud”的助手,确认即可

4. 配置Home Assistant Cloud助手

设置->语音助手,在Assist下会多出一个Home Assistant Cloud

点击,按照下图配置

点击试试声音

点击播放,正常情况应该可以听到语音播放,如果显示如下错误则需要检查下步骤2

5. 公开设备以及添加别名

为了让Assist可以控制设备,需要公开设备给Assist,这样Assist可以知道哪些设备可以被它控制

系统默认在添加Assist时候就已经把所有设备都公开给它了,这里建议将不需要语音控制的设备删除掉可以加快响应速度

除了公开设备之外,还需要给公开设备取个别名,这个别名是专门给Assist使用。这样在语音控制设备时候,Assist知道这个设备名具体对应哪个设备。

6. 语音控制设备

有多种途径使用语音助手,比如Web端首页

或者助手页面

再或者手机移动端

可以通过语音实现基本控制,例如开关设备查询设备

不过,从上图中你也可以看到,当我问:“你是谁?”时,它并没有理解我的意思。这也正是我在开头理论部分内容提到系统自带的Assist功能主要专注于智能家居控制,无法处理更复杂的非智能家居问题。如果我们希望它能解决更多的问题,就需要借助AI来增强Assist的处理能力。

7. 部署Gemini大模型

之所以首选Gemini大模型是因为它可以申请免费API。

设置->设备与服务->添加集成,搜索Google,在里面点击安装Google Generative AI

按照引导申请Gemini API,然后提交

8. AI语音助手

再次配置Home Assistant Cloud助手,在对话代理选项中设置为Google Generative AI,点击更新

注意,打开首选本地处理命令!!!注意,打开首选本地处理命令!!!注意,打开首选本地处理命令!!!

重要事情说三遍,这样一来对于简单开关类、查询类指令不需要走AI对话代理,直接本地处理执行,不仅响应速度更快还节约token。

9. 测试

这次问:“你是谁”,他终于可以回答了,而且问它什么大模型也能回答正确。

当我问:“你能为我做什么”时候,它的回答其实是跟你公开的设备有关,具体原因留给大家自己思考。

后记

最后,我再说说为什么我首先推荐通过Home Assistant Cloud来使用AI语音助手。主要是因为官方在中文STT和TTS方面的支持非常出色。其实我之前也尝试过本地部署STT和TTS,通过与官方方案对比,你才会发现哪些叫能用、哪些叫好用,从而有了明确的评判标准。如果一开始就直接尝试本地部署,你可能会因为不理想的体验而感到失望。

在准备这期内容时候,遇到许多坑。通过查阅官网、github、论坛才最终一一爬坑。

后续文章还会分享如何使用ChatGPT和DeepSeek作为AI对话代理,以及本地部署STT、TTS、LLM。

创作不易,希望大家能一键三连