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 和类似生态系统中实现模块化、可互换的语音助手服务。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目