系统架构
数据流程图 (CLI 模式)
用户语音输入 → 回声消除 → 语音活动检测 → 语音转录 (ASR) → LLM生成回复 → TTS合成 → 音频输出
↑ ↓
└─────────────────────────────── 实时语音交互循环 ────────────────────────────────┘
核心组件说明
| 组件 | 功能描述 | 技术实现 |
|---|---|---|
| EchoCancellingAudioCapture | 回声消除音频捕获 | 实时音频流捕获与预处理 |
| SpeechStateMonitor | 语音活动检测 | VAD 算法检测用户说话状态 |
| ASRWorker | 语音识别转录 | FunASR / Whisper 模型推理 |
| LLMResponseGenerator | 智能文本生成 | Qwen2.5 (llama.cpp) 对话生成 |
| TTSAudioGenerator | 语音合成 | GPT-SoVITs / Kokoro TTS 文本转语音 |
| AudioStreamPlayer | 音频流播放 | 实时音频输出播放 |
| FastAPI App | API服务 | 提供HTTP接口,封装核心服务 |
多线程架构
系统采用多线程设计,各组件通过队列进行通信:
- 音频采集线程: 持续捕获音频数据
- 语音监测线程: 检测用户语音活动
- ASR线程: 语音识别处理
- LLM线程: 文本生成处理
- TTS线程: 语音合成处理
- 音频播放线程: 音频输出播放