【伪流式音频转写 + LLM优化系统架构图】
🌊 总体流程图
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 插槽,用于个性化纠错 / 术语优化等场景。