Evan
发布于 2026-06-02 / 2 阅读
0
0

语音输入和输出

语音输入和输出

方案概述

使用 linux-voice-assistant(OHF-Voice 官方项目)将 Linux 设备变成一个 ESPHome 语音卫星,直接接入 Home Assistant。

关键区别:linux-voice-assistant 使用 ESPHome 原生协议(而非 Wyoming 协议)与 HA 通信。它在 HA 中会被自动发现为一个 ESPHome 设备,像 ESP32 硬件卫星一样工作,但运行在 Linux 系统上。

核心功能

linux-voice-assistant​ 是一个完整的语音前端方案,一个项目整合了三项功能:

功能 实现方式
麦克风采集 PulseAudio → ESPHome 音频管道
扬声器输出 ESPHome 媒体播放器 → PulseAudio
唤醒词检测 内置 OpenWakeWord/microWakeWord(本地运行)
HA 连接 ESPHome 原生 API(自动发现,无需 Wyoming)

架构

┌─────────────────────────────────────┐
│         Linux 物理机                 │
│  ┌───────────────────────────────┐  │
│  │   linux-voice-assistant       │  │
│  │   (Docker 容器)                │  │
│  │                               │  │
│  │  ┌─ 麦克风 (PulseAudio)       │  │
│  │  ├─ 扬声器 (PulseAudio)       │  │
│  │  ├─ 唤醒词 (OpenWakeWord)     │  │
│  │  └─ ESPHome 音频管道          │  │
│  └───────────┬───────────────────┘  │
└──────────────┼──────────────────────┘
               │  ESPHome 原生 API
               │  (TCP 6053)
               ▼
┌──────────────────────────────────────┐
│         Home Assistant               │
│  ┌─ ESPHome 集成 (自动发现)          │
│  ├─ 语音管道: STT → 意图 → TTS      │
│  └─ 各服务通过 Wyoming 协议接入:     │
│       ├─ SenseVoice (STT)            │
│       └─ Edge TTS / 阿里云 (TTS)     │
└──────────────────────────────────────┘

部署配置

Docker Compose(本地)

linux-voice-assistant:
  container_name: linux-voice-assistant
  image: ghcr.io/ohf-voice/linux-voice-assistant:latest
  restart: unless-stopped
  network_mode: "host"
  group_add:
    - audio
  cap_add:
    - SYS_NICE
  volumes:
    - ./app/wakewords/custom:/app/wakewords/custom
    - ./app/configuration:/app/configuration
    - ./app/sounds/custom:/app/sounds/custom
    - /run/user/1000:/run/user/1000
  environment:
    - PULSE_SERVER=/run/user/1000/pulse/native
    - ENABLE_THINKING_SOUND=1
    - WAKE_WORD_DIR=/app/wakewords/custom

当前激活的唤醒词

{
    "active_wake_words": [
        "okay_nabu",
        "hey_eventi"
    ]
}

本地配置路径

路径 用途
app/configuration/preferences.json 唤醒词/音量/增益等设置
app/wakewords/custom/ 自定义唤醒词模型文件(如 hey_eventi.tflite
app/sounds/custom/ 自定义提示音
docker-compose.yml Docker 服务编排

相关资料


评论