Appearance
流式语音系统技术实践
会议转写需要在连续收音时完成断句、文字识别和说话人归属;指定说话人转写还要使用登记参考,过滤非目标内容。这些能力共用音频接入和输出协议,却不能共用所有切段、门控和推理策略。本专题沿着一条可运行的服务链路,解释各模块的输入合同、调度方式和正确性约束。
处理链路与方案选择
截至 2026-09-30 的实现采用 TEN-VAD 主分段、Nemotron-3-Diarization 角色证据、普通 ASR 与目标说话人 ASR 两条识别路径。目标模式增加 Speaker VAD 身份门控和登记参考;普通模式保持全部语音。热词解析在识别路径之间共享,最终文字和角色映射到稳定协议。CTC 和旧角色后端不作为这条链路的运行依赖。
方案选择取决于任务:全量转写优先保留音频,多人转写需要跨窗口身份关联,目标转写必须保留登记参考与混合语音关系。不存在仅凭角色模型输出就能同时解决三种任务的配置。动态调度改善吞吐,共享热词改善路径一致性,两者都不能替代重叠语音的质量验证。
技术地图
| 页面 | 核心问题 | 可复用的实现方法 |
|---|---|---|
| 处理链路与运行架构 | 一份 PCM 如何进入不同模式 | 样本时间轴、模式分流、并行任务与有序发布 |
| 角色证据与目标说话人识别 | 匿名槽位、身份与目标输入如何区分 | 跨窗身份关联、极短子段处理、learned SEP 输入合同 |
| 断句、收尾与逐句时延 | 如何减少等待并避免尾字丢失 | 静音预计算、所有权移交、排空状态机 |
| 动态批处理与推理调度 | 为什么连接并发不等于模型并发 | 单进程动态序列调度、分层预算、截止时间与背压 |
| 共享热词召回与请求隔离 | 如何让普通与目标识别使用同一词库 | 共享解析器、音频召回、快照更新、请求局部提示词 |
| 音频回放与质量回归 | 如何区分输入、模型和合并错误 | 样本对齐、绝对时间回放、文本与身份独立断言 |
| 离线推理容器与工件一致性 | 如何在隔离环境稳定启动整个链路 | 依赖封装、设备映射、只读运行、模型与配置摘要绑定 |
先阅读运行架构,再分别进入身份、时延、调度和热词机制。调整任一模块后,用固定输入回归;移植到新硬件时,再验证运行环境与模型工件。
方案的不变量
音频区间由样本编号表达,封口后不可变。匿名角色编号不能直接映射为登记身份。目标识别失败不能静默恢复成无约束普通识别。已接受的预计算任务独立于下一轮准备生命周期。Final 只提交一次,后置证据不得覆盖调用方已经消费的字段。
这些约束比某个阈值或 worker 数更稳定。具体并发上限取决于模型、输入长度、缓存和设备余量;具体断句参数取决于帧长、停顿和重叠分布。参数必须以当前链路的质量和性能对照选定。
