OHF-Voice/speech-to-phrase
Fast and personalized local speech-to-text
Speech‑to‑Phrase – 面向 Home Assistant 的语音识别器
是什么 – 一个本地运行的语音转文本系统,不试图转录任意语音。相反,它回答“用户说的已知命令短语中是哪一个?”的问题,通过将语音输入与包含您 Home Assistant 实体、区域和楼层名称的模板集进行匹配。
为何存在 – 对于家庭自动化,通常只需要识别有限且明确定义的一组命令(如打开厨房灯、将苹果添加到购物清单等)。通过将词汇量限制在这些短语内,识别器可以快速运行、离线工作,并且能个性化匹配您在 Home Assistant 中使用的精确名称。
工作原理(概览)
- 句子模板 – 预先编写的语言文件(YAML)描述了您可以说出的命令。该仓库提供多种语言的模板,您也可以添加自己的模板。
- 动态扩展 – 启动时,工具将模板与您在 Home Assistant 中公开的实体、区域和楼层名称合并,生成一个表示所有可能语句的 hassil 模板文件。
- 有限状态转换器(FST) – 使用 Rhasspy 白皮书中的技术,将紧凑的模板编译为 FST(通过 OpenFST 和 OpenGRM)。这能高效编码巨大的组合空间,而无需枚举每一条句子。
- Kaldi 声学模型 – 将 FST 转换为 Kaldi 的语言模型,Kaldi 是一个开源语音识别工具包。内置的发音词典和 Phonetisaurus 模型为已知和未知词汇提供音素。
- 后处理模糊层 – Kaldi 生成原始转录后,一个小的模糊匹配步骤会清理轻微错误(重复/缺失词),并强制实体名称与 Home Assistant 所知的完全匹配。
主要特性
- 仅本地运行 – 无需云服务,可在防火墙后工作。
- 多语言支持 – 基于 Kaldi 的版本(v1.4.3)支持 22 种语言;新版本(在
OHF‑Voice/apps中)目前覆盖最常用的几种语言。 - 自定义句子 – 添加自己的 YAML 文件以扩展命令集,无需修改代码。
- Docker 就绪 – 提供官方容器镜像(
rhasspy/wyoming-speech-to-phrase),可通过 Wyoming 集成连接到 Home Assistant。 - 自动模型下载 – 声学模型和发音工具从公开的 HuggingFace 数据集
rhasspy/rhasspy-speech自动获取。 - Home Assistant 集成 – 通过 Home Assistant WebSocket 连接,使用长期有效的访问令牌。
快速入门(步骤)
- 安装 – 从 Home Assistant 的 Supervisor 商店添加插件,或运行 README 中显示的 Docker 命令。
- 提供凭证 – 提供
--hass-websocket-uri和--hass-token,以便服务可以读取您的实体。 - (可选)自定义句子 – 创建包含语言特定
sentences.yaml文件的目录,并使用--custom-sentences-dir /path/to/dir启动。 - 运行 – 服务将下载所需的声学模型,构建 FST,训练 Kaldi 语言模型,并在端口 10300 上开始监听。
- 使用 – 将音频发送到 Wyoming 端点;识别器返回匹配的短语,Home Assistant 可将其转换为自动化。
当前支持的语言(Kaldi v1.4.3)
英语、法语、德语、荷兰语、西班牙语、意大利语、俄语、捷克语、加泰罗尼亚语、希腊语、罗马尼亚语、葡萄牙语(葡萄牙)、波兰语、印地语、巴斯克语、芬兰语、蒙古语、斯洛文尼亚语、斯瓦希里语、泰语、土耳其语。
扩展 / 自定义
- 添加新实体名称 – 将设备暴露给 Home Assistant 的 Assist 功能,它们会自动被纳入。
- 创建新命令模板 – 按照
speech_to_phrase/sentences/<lang>/sentences.yaml中的格式,或通过自定义句子目录提供自己的模板。 - 添加新语言 – 贡献发音词典和声学模型(或复用现有 Kaldi 模型),并添加句子模板;请参阅问题 #149 了解当前状态。
项目现状
此仓库中的基于 Kaldi 的代码已冻结在版本 1.4.3。开发已迁移到 OHF‑Voice/apps 单体仓库,系统正在重写,使用受限 CTC 解码器、Home Assistant 意图作为句子源,并提供 Web UI 用于选择命令。
适合谁使用
- 希望实现 离线、保护隐私的语音控制 的家庭自动化爱好者。
- 构建自定义 Home Assistant 语音助手的开发者,需要一个能理解其公开实体名称的识别器。
- 命令集有限时,寻找轻量级替代云语音转文本方案的人。
链接
- 插件徽章 – 通过 Home Assistant Supervisor 快速安装。
- Docker 镜像 –
rhasspy/wyoming-speech-to-phrase。 - Home Assistant 意图仓库 – 新重写版本的句子模板来源。
- Rhasspy 白皮书 – FST 编译的基础技术。
- 问题 #149 – 语言支持和迁移详情的追踪器。
相关
- 项目
- 项目
- 项目
- 项目
- 项目