Skip to main content

Home Assistant 本地语音控制方案:选型、部署与实测数据

使用须知

支持中文和英文语音指令。Home Assistant 官方的 Xiaomi Home 集成只允许非商业用途,本方案不预装;用于商业交付时不要使用该集成。

这套方案是干什么的​

把家里的灯、窗帘、空调和 Zigbee 传感器接进 Home Assistant,用一句话控制它们。说「打开客厅灯」,Home Assistant 在本地执行并语音回复「客厅灯已打开」。语音识别和语音合成在本地的 reComputer J40 上完成,说话的录音不上传到云端语音服务。用在家庭客厅、卧室,也适合全屋智能集成商在客户家里交付。

  • 录音不上云

    听懂指令、生成回复语音都在 reComputer J40 上完成,指令由 Home Assistant 在本地执行。

  • 说完 0.12 秒出文字

    5 条中英文指令的中位数,见「性能与实测数据」。

  • Home Assistant 原生接入

    语音服务经 Wyoming Protocol 集成接入 Home Assistant 语音助手,不改 Home Assistant 本身。

  • Zigbee 设备直接接入

    插上 Connect ZBT-2,Zigbee 传感器和开关接入 Home Assistant,不需要各品牌网关。

真机演示​

Home Assistant 语音助手里的一次对话:说「把客厅灯打开」,本地语音服务识别后由 Home Assistant 执行,回复「客厅灯已打开」,右侧的客厅灯卡片随即变为开启。

Home Assistant 语音助手:「把客厅灯打开」→「客厅灯已打开」,客厅灯变为开启
Home Assistant 面板:客厅灯、窗帘、温湿度、空调,卧室灯和加湿器

截图中的灯、窗帘、空调和传感器是演示用的模拟设备;语音输入是同一台 reComputer J40 合成的语音,不是真人录音。

需要哪些硬件​

现场需要四样东西:Home Assistant 主机、语音主机、Zigbee 协调器、语音终端。

设备承担什么说明
ARM64 Linux 主机(64 位系统,8 GB 内存)运行 Home Assistant一户一台
reComputer J4012 reComputer J40 系列(J4012,Orin NX 16GB)本地语音识别和语音合成首次启动下载语音模型,预留至少 30 GB 磁盘
Home Assistant Connect ZBT-2接入 Zigbee 设备插在 Home Assistant 主机的 USB 口
Home Assistant Voice 预览版房间里的语音终端:听指令、播报回复每个房间一台
SONOFF SNZB Zigbee 传感器(可选)采集温湿度等状态经 ZBT-2 接入

Home Assistant 主机、reComputer J40 和语音终端连在同一局域网。使用苹果「家庭」App 时,iPhone 与 Home Assistant 主机在同一局域网。

现场怎么部署​

一、放置设备​

语音主机与 Home Assistant 分开放

reComputer J40 只跑语音服务,可以放在机柜或弱电箱里,经局域网与 Home Assistant 通信;语音终端放在要说话的房间。

二、装软件:三步​

逐设备的操作步骤在可部署方案页,这里只讲轮廓。


  1. Home Assistant 主机:部署 Home Assistant,带上预置的中英日语音指令句式和房间设备模板。
  2. 语音主机:在 reComputer J40 上部署语音服务,首次启动下载模型;完成后语音识别和合成在本机运行。
  3. 接入与验证:在 Home Assistant 里添加 Wyoming Protocol 集成,指向 reComputer J40 的两个端口,设为语音助手的语音转文字与文字转语音;对语音终端说「打开客厅灯」,确认灯被打开。

有哪些接口​

语音服务以 Wyoming Protocol 提供给 Home Assistant,其余自动化都在 Home Assistant 里完成。

  • Home Assistant:添加 Wyoming Protocol 集成即可使用,语音助手里出现 seeed-local-voice 的语音转文字与文字转语音。
  • 苹果「家庭」 / Siri:Home Assistant 的 HomeKit 桥接把设备同步到 iPhone。
  • 自建系统:通过 Home Assistant 自带的接口读写设备状态。
端口在哪台机器内容
HTTP 8123Home Assistant 主机Home Assistant 网页与接口
TCP 10300reComputer J40语音转文字服务(Wyoming)
TCP 10200reComputer J40文字转语音服务(Wyoming)

性能与实测数据​

整链:说话到执行​

Home Assistant 运行在 8 GB 内存的 ARM64 Linux 主机上,语音服务运行在 reComputer J40 系列(Orin NX 16GB)上;输入为合成语音,送入 Home Assistant 语音助手。

指标结果
中英文开关灯指令5/5 条执行成功,均由 Home Assistant 在本地处理(实测)
语音结束到识别出文字中位数 0.12 秒,范围 0.11–0.95 秒(实测)

复现:sensecraft-solutions/solutions/home_assistant_whole_home(部署包)

语音服务单独测量​

同一台 reComputer J40 系列,语音服务直连,输入 16 kHz 单声道合成语音。

文本回复语音首包识别结果语音结束后转写用时
打开客厅灯0.122 秒(实测)打开客厅灯。0.383 秒(实测)
关闭卧室的灯0.049 秒(实测)关闭卧室的灯。0.421 秒(实测)
Turn on the living room light0.115 秒(实测)Turn on the living room light.0.579 秒(实测)

经 Wyoming 路径时两条样本转写用时 0.13 秒(实测)。

复现:sensecraft-solutions/solutions/home_assistant_whole_home/assets/docker/docker-compose.jetson-voice.yml

模型与运行时​

设备语音识别语音合成运行时
reComputer J40 系列Qwen3-ASRMatcha-TTSTensorRT-Edge-LLM / TensorRT

影响效果的设置:

  • 语音助手语言:中文或英文,各自用预置的指令句式。
  • 设备与房间命名:指令按 Home Assistant 里的名称匹配,「客厅灯」要与实体名称一致。

已知退化​

  • 实体别名与命名偏离:意图匹配依赖实体精准命名,若语音口令(如「大厅吸顶灯」)与 Home Assistant 配置实体别名(「客厅灯」)存在较大语义差异,文字识别正确但意图可能未命中。
  • 复合与连续意图:当前模型针对单意图家居控制优化,多动作复合指令(如「打开空调并把窗帘关上一半」)需拆为单句交互下发。
  • 多终端并发交互:单台 J4012 主机推荐承载 1–3 台语音拾音终端并发;若多房间同时长语音下发,首字响应时延会轻微增加。

数据与素材出处​

  • 截图来自 Home Assistant 2026.9.3(Apache License 2.0,home-assistant.io),设备为模拟设备。
  • 语音输入由同一台 reComputer J40 的语音合成生成,未使用真人录音或第三方音频。
Loading Comments...