| # 系统架构 | |
| ## 数据流程图 (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线程**: 语音合成处理 | |
| - **音频播放线程**: 音频输出播放 | |
| ``` |