OHF-Voice/wyoming-faster-whisper

Wyoming protocol server for faster whisper speech to text system

Wyoming Faster Whisper

它是什么

Wyoming Faster Whisper 是一个 实现 Wyoming 协议的服务器(一种 Home Assistant 用于语音转文字的轻量级 RPC 协议),并将音频转发至 faster-whisper 语音转文字引擎。简而言之,它让 Home Assistant(或任何其他 Wyoming 客户端)能够通过 TCP 套接字与快速的 Whisper 转录模型进行通信。

为何重要

  • 速度与效率 – faster-whisper 使用 CTranslate2 运行 Whisper 模型,即使在低端硬件(如 Raspberry Pi)上也能实现实时转录。
  • Home Assistant 集成 – 该服务器会将自己宣告为 Wyoming STT 服务,因此 Home Assistant 可以直接使用它进行语音指令。
  • 自动语言处理 – 它会报告所选后端支持的确切语言,让 Home Assistant 能够选择正确的处理流程。
  • 名称偏好设置 (Name-biasing) – 它可以从您的 Home Assistant 实例中提取实体名称,并将其作为提示词输入模型,大幅减少设备名称识别错误的情况。
  • 灵活部署 – 可在本地、Docker 或支持 GPU 的机器上运行,且模型缓存后无需网络即可工作。

如何开始使用

快速本地安装

git clone https://github.com/OHF-Voice/wyoming-faster-whisper.git
cd wyoming-faster-whisper
script/setup               # 创建虚拟环境并安装依赖
script/run \
    --model tiny-int8 \
    --language en \
    --uri 'tcp://0.0.0.0:10300' \
    --data-dir /data \
    --download-dir /data

将 tiny-int8 替换为您喜欢的任何 Whisper 模型;您也可以指向 Hugging-Face 检查点。

Docker (CPU)

docker run -it -p 10300:10300 \
    -v /path/to/local/data:/data \
    rhasspy/wyoming-whisper \
    --model tiny-int8 --language en

模型文件存储在挂载的 /data 卷中。

Docker (GPU) – 可选

# 构建 GPU 镜像 (需要 NVIDIA toolkit)
git clone https://github.com/OHF-Voice/wyoming-faster-whisper.git
cd wyoming-faster-whisper
docker build -f Dockerfile.gpu -t wyoming-whisper:gpu .

# 运行
docker run -it --gpus all -p 10300:10300 \
    -v /path/to/local/data:/data \
    wyoming-whisper:gpu --model Systran/faster-whisper-large-v3 --language en

Home Assistant 附加组件

该项目也封装为 Home Assistant 中的官方 core_whisper 附加组件。只需从 UI 启用该附加组件,它就会自动启动相同的服务器。

主要功能与设置

功能 如何启用 作用
VAD 断句 --vad-endpointing <seconds> 在一段静音后停止监听(由 Silero VAD 检测)并立即返回转录结果,无需使用 Home Assistant 自身的断句功能。
名称偏好设置 --hass-token <token> (安装 wyoming-faster-whisper[hass]) 提取 Home Assistant 实体/区域名称并作为提示词输入,改善设备名称的识别率。
后端选择 --stt-library <name> 或让 --stt-library auto 自动选择 在 faster-whisper、transformers、qwen3-asr、sherpa、funasr、onnx-asr 等之间进行选择,每个后端都有其语言覆盖范围。
仅限本地模式 --local-files-only 或 WYO_WHISPER_LOCAL_FILES_ONLY=true 阻止服务器尝试下载缺失的模型;适用于离线或隔离网络环境。
调试 / 健康检查 --debug 或运行 python -m wyoming_faster_whisper.health_check 打印额外日志并让 Docker 报告正确的健康检查状态。

适用对象

  • Home Assistant 用户:希望拥有一个快速、本地运行且能理解设备名称的 STT 引擎。
  • Raspberry Pi / 边缘设备爱好者:寻求无需将音频传送到云端即可实现实时转录的解决方案。
  • 开发者:需要一个兼容 Wyoming 的 STT 服务来整合到其他语音助手项目中。

所有详细信息均直接取自仓库的 README;未推论任何额外功能。

相关

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