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