【免费下载链接】EchoMuse
Alexa replacement and controller for Echo Dot 2nd Generation device.
EchoMuse是一个把二手 Echo Dot 2 代改造为 Home Assistant 本地语音助手的开源项目,没有 Alexa、没有 Amazon 账号、也没有项目自建的云服务。很多用户最关心的问题是:唤醒词在哪里检测?我的语音什么时候才会离开这台 Echo?本指南用通俗的语言给出答案。
🎯 一分钟结论:两种监听模式
EchoMuse 提供两种唤醒词检测模式,按每台 Echo 单独设置,默认是隐私优先的本地模式:
| 模式 | 唤醒词在哪里检测 | 麦克风音频何时离开 Echo |
|---|---|---|
| On this Echo(默认) | 在 Echo 设备本地 | 只在你真正对设备说话时 |
| On the controller | 在你局域网的控制器上 | 持续向控制器流式传输(约 32 KB/s) |
官方对这一行为的完整规范写在 docs/listening.md,配置说明见 docs/configuration.md 的 "Wake word detection" 一节。
📍 如何查看和切换唤醒词检测位置
在 EchoMuse 的 Web 仪表盘中,每台 Echo 都会如实显示当前模式,并明确标注它是否在持续上传音频。首页还有一行舰队级汇总,例如:"1 of 3 connected Echoes streams audio continuously"——只要有一台在持续流式传输,你就能一眼看到。
👉 想获得最佳隐私体验,就把每台 Echo 的唤醒词检测设为On this Echo。
本地模式的前提条件
- Echo 上需要安装约 15MB 的 ONNX Runtime 与唤醒词模型(控制器会自动安装),安装完成前该 Echo 处于button only(仅按键可用)状态,仪表盘会说明原因;
- 需要较新的固件——旧固件在每种模式下都会持续流式上传音频,仪表盘会显示"update the firmware for private listening"提醒你升级。
🔒 语音何时离开 Echo?五种情况自动关闭会话
在本地模式下,唤醒词触发之前,没有任何音频离开设备。触发之后,Echo 只上传你说话期间的音频,并且以下任一条件满足时立即停止:
- 控制器判定你说完了(end-of-speech);
- 控制器拒绝这次唤醒(比如另一台 Echo 赢得了仲裁);
- 控制器 3 秒内未确认唤醒(
ackTimeout); - 会话已持续 30 秒(
maxOpen); - Echo 被静音或数据连接断开。
🛡️ 关键点:后三条规则是在 Echo 本地强制执行的,所以即使控制器崩溃或网络中断,设备也不会陷入持续上传状态。回复播放期间,Echo 同样只在本地监听(barge-in 打断也走这条路径),回复期间不唤醒就没有音频上传。
一个诚实的说明
官方文档专门列出了"能说的话"和"不能说的话":
- ✅ 可以说:"音频只在听到唤醒词后离开,且只持续到你停止说话。"
- ✅ 可以说:"误唤醒会上传几秒你本不想说的音频"——这是所有唤醒词系统(包括 Amazon 官方)的共性。
- ❌ 不能说:"音频永不离开设备"或"完全本地"——你的指令最终会送到控制器,再送到你配置的 Home Assistant 语音识别(STT)服务,运行位置取决于你的设置。
📊 六种监听状态:仪表盘从不"粉饰"
控制器会根据Echo 自己上报的状态(而非配置文件)解析出当前真实状态,完整逻辑见 controller/em_listen.py 的resolve函数:
| 状态 | 含义 | 是否持续上传 |
|---|---|---|
local | 本地唤醒词,正常监听 | 否 |
controller | 控制器负责检测 | 是 |
diagnostic | shadow 诊断模式(仅开发者) | 是 |
legacy | 想要本地模式,但固件过旧 | 是(提示升级固件) |
degraded | 模型缺失/加载失败 | 否——仅按键可用 |
unknown | 尚未上报 | 显示为未知,绝不显示为私密 |
⚠️ 特别注意degraded:一台无法运行本地唤醒词检测的设备,永远不会悄悄回退到流式上传——宁可只响应按键,也不会让仪表盘的隐私声明变得不实。
📡 语音离开设备后去了哪里?
你的语音(唤醒词触发后) → Echo 通过 WiFi 发送到局域网内的 EchoMuse 控制器 → 控制器转发给 Home Assistant 的 Assist 管线 → STT 语音识别(本地或云端,取决于你的 HA 配置) → 理解与执行,语音回复播放到 Echo 扬声器📌EchoMuse 本身只把音频发给你的 Home Assistant,不发送到任何其他地方。如果你的 Assist 管线配置了云端 STT 服务,那么音频会由 Home Assistant 发往该服务——这是你自己的选择。整条链路的通俗图解见 docs/voice-pipeline.md。
🗂️ 录音与唤醒样本:默认关闭,且永不上传
| 功能 | 开关 | 数据去向 |
|---|---|---|
会话录音(saveUtterances) | 默认关闭 | 仅写入控制器本地磁盘,永不上传;播放/下载仅限管理员 |
唤醒词样本(wakeClipCapture) | 默认关闭 | 仅本地磁盘(data/recordings/wake_samples/),永不上传;仅限管理员 |
| 支持包(Support Bundle) | 手动请求生成 | 刻意排除语音、文字记录、网络名和账户名 |
设备序列号、WiFi 凭据、网络名和整个舰队配置也只保存在控制器的本地数据库中。详见 docs/configuration.md 的 "What never leaves" 一节。
❓ 常见疑问快速解答
Q:在 Home Assistant 里关闭唤醒词会怎样?唤醒词不会启动对话,但麦克风保持在线,action 按钮和 HA 的追问(ask_question)仍可用;且关闭状态下若仍有音频到达,控制器会立即掐断该流。
Q:多台 Echo 同时听到唤醒词?系统会仲裁:先听到的优先,同房间竞争时最响亮的那台应答,其余保持安静,不会重复播放。
Q:控制器重启了,本地模式还安全吗?安全。本地模式下唤醒词检测在 Echo 上进行,控制器重启不影响隐私(只是没人应答);控制器模式下才会失效。
Q:能用自己训练的自定义唤醒词吗?可以,用项目自带的 oww_forge/ 工具训练后从仪表盘安装,检测位置规则不变。
📚 延伸阅读
- 隐私行为规范(设备/控制器的权威参照):docs/listening.md
- 配置项全解(唤醒词检测、录音开关):docs/configuration.md
- 语音链路逐阶段图解:docs/voice-pipeline.md
- 设备与控制器间的线协议:docs/device-controller-interface.md
- 设备端监听固件:device/internal/listen/
- 设备端唤醒词模型加载:device/internal/wakeword/
- 更多问答:docs/faq.md
【免费下载链接】EchoMuse
Alexa replacement and controller for Echo Dot 2nd Generation device.
相关推荐
告别语音助手延迟:Vosk-api离线关键词检测与唤醒实战指南
告别语音助手延迟:Vosk api离线关键词检测与唤醒实战指南 你是否遇到过智能音箱"听不懂"唤醒词的尴尬?是否因网络延迟错过重要语音指令?本文将带你用Vosk
人工智能语音如何在5分钟内为你的ESP32设备定制专属语音唤醒词
如何在5分钟内为你的ESP32设备定制专属语音唤醒词 厌倦了每次都要说"你好小智"才能唤醒你的AI助手吗?想要为你的智能硬件设置个性十足的专属唤醒词?本文将带你
人工智能AI 应用语音智能硬件物联网FunASR语音唤醒词实战:让你的设备秒懂你的声音
FunASR语音唤醒词实战:让你的设备秒懂你的声音 想要打造一个能够"随叫随到"的智能语音助手吗?FunASR开源语音识别工具包为你提供了强大的语音唤醒词技术,
语音音频人工智能大模型模型推理服务本地部署
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考