VoiceDialogue / docs /architecture.md
liumaolin
Document API usage, system architecture, configuration, and troubleshooting
1858ba9
|
raw
history blame
1.51 kB
# 系统架构
## 数据流程图 (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线程**: 语音合成处理
- **音频播放线程**: 音频输出播放
```