OHF-Voice/wyoming
Peer-to-peer protocol for voice assistants
Wyoming 协议 – 一个轻量级、开源的语音助手组件线格式
它是什么 – 一个基于 TCP 的小型协议,用于传输 JSON-lines 控制消息和原始 PCM 音频。它让 Home Assistant 服务器能与处理麦克风输入、唤醒词检测、语音转文字、文字转语音、意图解析等的独立程序通信。
为何重要 – 通过标准化消息布局(一行 JSON 标头,后接可选的 UTF-8 数据和二进制负载),每个组件都可以在不重写集成代码的情况下替换。该协议刻意不进行认证和加密,因此仅在受信任的本地网络上安全——这正是大多数智能家居中枢运行的环境。
关键概念
- 标头 –
type、可选的data和长度字段(data_length、payload_length)。 - 负载 – 通常是 PCM 音频,但允许任何二进制数据。
- 事件流程 – 客户端发送
describe请求,接收描述可用服务的info响应,可选地使用select-program选择程序,然后交换特定领域的事件(transcribe、synthesize、detect等)。
主要事件系列
- 音频 –
audio-start/stop和audio-chunk用于流式传输原始音频。 - 语音转文字 –
transcribe→transcript(或流式transcript-start/chunk/stop)。 - 文字转语音 –
synthesize→ 音频流(或流式synthesize-start/chunk/stop)。 - 唤醒词 –
detect→detection/not-detected。 - 意图处理 –
recognize→intent(或intents-start/stop用于多个意图)和handled/not-handled用于执行结果。 - 卫星控制 – 用于远程语音卫星设备的事件(
run-satellite、run-pipeline等)。
如何使用 – Home Assistant 包含一个内置集成(wyoming),可与独立程序通信(例如 wyoming-faster-whisper 用于 ASR,wyoming-piper 用于 TTS)。每个程序都实现相同的协议,使得混合搭配模型和后端变得容易。
安全注意事项 – 没有加密或认证;请将其保持在您的 LAN 内或容器网络中。仓库链接到 SECURITY.md,其中说明了威胁模型。
相关项目 – README 列出了所有使用 Wyoming 的配套实现(麦克风、VAD、Whisper、Piper 等)的集合。
结论 – Wyoming 是一个开放标准、低开销的协议,可在 Home Assistant 和类似生态系统中实现模块化、可互换的语音助手服务。
相关
- 项目
- 项目
- 项目
- 项目
- 项目