|
# 【伪流式音频转写 + LLM优化系统架构图】 |
|
|
|
## 🌊 总体流程图 |
|
|
|
```mermaid |
|
graph TD |
|
A[音频流输入] --> B[VAD (20ms)] |
|
B --> C[Transcribe(200ms)] |
|
C --> D[快速翻译模块(200ms)] |
|
D --> E[即时输出模块(非确认状态)] |
|
|
|
C --> F[翻译确认模块(可选优化)] |
|
F --> G[优化翻译模块(LLM或重转录)(500ms)] |
|
G --> H[异步输出模块(确认状态)] |
|
|
|
``` |
|
--- |
|
|
|
## 🧱 模块划分(以伪流式为核心) |
|
|
|
### **模块 A:音频流输入** |
|
- **职责**:接收用户麦克风或远程语音流(如 WebRTC、WebSocket),将连续音频切分为帧(如每帧 20ms)。 |
|
- **特点**:持续运行的监听器,向下游推送 PCM 帧或 numpy array。 |
|
- **实时性保障**:限制帧缓冲长度(防止阻塞);异步 IO 实现(支持本地或 Web 场景)。 |
|
|
|
### **模块 B:VAD 分段器** |
|
- **职责**:根据语音能量、静音检测、语音边界等逻辑将音频切分成语音段(segment)。 |
|
- **输出**:segment 音频数据块及时间戳。 |
|
- **特点**:基于滑动窗口,支持帧重叠;优化 Whisper 特征提取。 |
|
- **实时性保障**:极低延迟;segment 生成即推送下游模块。 |
|
|
|
### **模块 C:Whisper 转录模块** |
|
- **职责**:对 VAD 输出的 segment 执行 Whisper 推理,生成转写文本。 |
|
- **输出**:原始文本段落(含时间戳)。 |
|
- **特点**:segment 单元并行处理;可通过 GPU 加速。 |
|
- **实时性保障**:每段 1~5 秒,支持异步 worker 并行转写。 |
|
|
|
### **模块 D:快速翻译模块** |
|
- **职责**:在转写完成后立即对文本进行机器翻译(如使用 CTranslate2+NLLB 模型)。 |
|
- **输出**:翻译文本(第一时间展示用)。 |
|
- **特点**:轻量翻译模块,适配实时性需求。 |
|
- **实时性保障**:200ms 内完成翻译并传递至展示模块。 |
|
|
|
### **模块 E:即时输出模块(非确认状态)** |
|
- **职责**:接收翻译结果,第一时间展示给用户。 |
|
- **特点**:无等待、无确认,仅为初版输出。 |
|
- **实时性保障**:面向用户 UI 的主响应路径,保证极低延迟。 |
|
|
|
### **模块 F:翻译确认模块(控制器)** |
|
- **职责**:判断是否需要对当前句子进行 LLM 优化或更深层次的重转录。 |
|
- **特点**:分析内容质量、标点情况或上下文完整度,触发优化流程。 |
|
- **实时性保障**:判断延迟可控,不阻塞主流程。 |
|
|
|
### **模块 G:优化翻译模块(LLM或重转录)** |
|
- **职责**:使用 LLM 或重新转写提升句子质量,适用于更复杂表达、用户配置优化等情景。 |
|
- **特点**:异步执行,支持任务排队与超时处理;高质量输出。 |
|
- **实时性保障**:不影响主路径,优化输出采用回填策略。 |
|
|
|
### **模块 H:异步输出模块(确认状态)** |
|
- **职责**:将优化后的结果替换展示或做差分更新,供用户确认或查看。 |
|
- **特点**:支持区分原始和优化版本的展示策略。 |
|
- **实时性保障**:异步更新,不影响当前交互。 |
|
|
|
--- |
|
|
|
### 🔧 模块功能说明 |
|
|
|
上述模块可单独部署为微服务,也可组合为本地流式推理程序,适配不同设备和场景需求。 |
|
|
|
- Whisper 模块支持 CUDA / CPU 切换; |
|
- 翻译模块支持 NLLB 量化模型,响应时间控制在百毫秒级; |
|
- VAD 模块可基于 WebRTC VAD、Silero VAD 等方案替换。 |
|
|
|
未来可拓展功能包括: |
|
- 多用户通话流识别(扬声器分离); |
|
- 跨语种对话自动识别与应答生成; |
|
- 可控 LLM 插槽,用于个性化纠错 / 术语优化等场景。 |