2025 · 已完成
ASR 性能优化与统一 AI 中台
ASR 服务优化、评测建设与 AI 中台开发
围绕语音识别服务的处理速度与并发能力,完成多进程推理和数据传输优化;收集中英文、四川方言及业务音频,搭建模型接口评测流程,并通过统一 AI 中台承接业务接入。
以下为作者提供的脱敏项目记录,结果尚未经独立复核。
项目背景
业务既需要实时语音转写,也需要处理已有录音。随着并发请求增加,仅增加模型实例并不能直接解决锁竞争、进程间音频传输和前后处理带来的等待。同时,不同 ASR 模型在中文、英文、四川方言和实际业务录音上的表现需要用数据验证。因此,项目围绕服务性能、识别效果评测和平台接入三条主线展开:提高处理速度与并发承载能力,建立音频与人工标注组成的评测数据集,再把语音能力与 RAG、Agent 等能力纳入统一中台。
方案与系统链路
- 实时转写:WebSocket 音频输入 → 有界音频队列 → VAD 与流式 ASR → 标点、时间戳处理 → 增量与最终转写结果。
- 文件转写:HTTP 文件上传或音频 URL → 音频预处理 → 模型工厂与多进程 Worker 调度 → 转写结果;业务侧长任务通过 Kafka 异步处理与回调。
- 模型评测:中文三个开源数据集、英文三个开源数据集、四川方言数据及业务录音 → 整理与人工标注 → 调用各 ASR 模型接口 → 对照参考文本评估识别效果。
- 平台接入:统一 API 与鉴权 → 公司、业务、模型及 Agent 配置 → ASR / LLM / RAG / TTS 能力调用 → 用量记录、链路追踪与失败任务处理。
我的负责范围
- 负责 ASR 推理服务的加速与并发优化,调整锁粒度、多进程 Worker、共享内存传输和多设备模型调度,并通过压测验证方案。
- 收集中文三个开源数据集、英文三个开源数据集、四川方言数据和实际业务音频,完成人工标注,并搭建调用不同 ASR 模型接口的效果评测程序。
- 建设统一 AI 中台,提供模型与 Agent 接入、知识库检索、API Key 鉴权、业务配置和用量管理,打通异步语音转写与结果回调。
ASR 加速与并发优化
优化重点是让音频处理更快,并在多路请求同时进入时保持可用的处理能力。服务基于 FastAPI 与 FunASR,支持 WebSocket 流式识别和 HTTP 文件转写,并将 VAD、标点预测、时间戳和可选说话人识别纳入语音处理链路。
早期实现中,工厂级全局锁限制了多个模型实例的并行执行。迭代时先把锁的粒度收敛到模型实例,并尝试批处理;在多实例收益仍不明显后,移除当时的批处理机制,改用 multiprocessing 将模型放入独立 Worker 进程,通过模型工厂、任务队列与结果队列组织推理,并支持多 GPU 上的实例部署。随后将 VAD、标点和时间戳组件也纳入多实例与队列管理,避免只优化 ASR 主模型后,等待转移到其他环节。
针对流式音频跨进程传输的开销,引入 SharedMemory 存放音频数据,队列主要传递任务信息、共享内存名称和数据长度,减少原先 Base64 编码及大块音频随队列传递的开销。由主进程在任务完成、异常和关闭时回收共享内存。Worker 读取后仍保留一次数组复制,优化主要减少了跨进程编码与传输的开销。
在接口入口使用信号量控制并发,以 AnyIO 有界音频队列协调接收与处理速度,并对音频转换等环节单独限制并发。配合异步文件操作、任务与统计状态的锁保护,以及多进程部署中的 CPU 线程数约束,降低事件循环阻塞和资源争用。后续补充模型就绪检查、运行统计、Worker 存活监测与异常重启,以及启动和关闭时的资源管理。
验证时使用不同并发档位和模型部署组合进行压测,观察总耗时、请求延迟、队列等待及 CPU、内存、GPU 使用情况,判断增加 Worker 或设备后是否获得实际收益。识别文本的质量则由独立的模型效果评测流程验证。
评测数据集收集与人工标注
收集中文三个开源数据集、英文三个开源数据集,同时补充四川方言数据和实际业务中的音频,覆盖通用中文、英文、地方方言与业务场景。开源数据用于观察模型的通用识别表现,方言和业务录音用于补充通用语料难以代表的实际使用情况。
对收集的音频进行整理与人工标注,建立音频和参考转写文本的对应关系,为不同模型提供共同的评估依据,将分散的数据来源整理成可以用于模型比较的样本。
基于模型接口的识别效果评测
搭建评测程序,通过接口调用不同 ASR 模型,将评测音频送入模型并获取识别结果,再结合人工标注的参考文本评估转写效果。模型以服务接口接入,使效果比较不依赖于某一种模型的内部实现。
在共同的音频样本上比较各模型的输出,关注其在中文、英文、四川方言及业务录音中的识别差异,为模型选择提供依据。评测程序回答模型是否适合具体语料的问题;服务压测回答处理速度和并发承载的问题,两者共同支撑后续方案选择与优化。
统一 AI 中台与业务接入
统一中台承担业务系统与底层 AI 能力之间的接入和管理职责。基于 FastAPI 组织聊天、RAG、语音转写和语音合成等 API,将公司、业务、模型、Agent、提示词和知识库配置集中管理,减少各业务重复对接模型和维护调用逻辑的工作。
在接入侧建设 API Key 鉴权、有效期校验与鉴权缓存,并将身份信息传递到请求处理过程。围绕业务和子账户记录模型调用用量与消费明细,支持模型价格配置、余额检查和扣减;通过幂等写入与数据库行锁处理重复用量记录和并发余额更新问题。
在知识库与 Agent 侧,使用 LangChain、LangGraph 和 Milvus 串联文档处理、向量化、检索与生成。支持向量检索、混合检索和重排,并通过查询改写、会话状态持久化及提示词配置组织多轮 RAG 流程;检索时结合公司和文档元数据限定范围。
在异步语音任务侧,通过 Kafka 接收任务,串联音频下载、分段或分声道处理、ASR 调用、结果拼接与业务回调。对处理失败的任务进行重试,并提供死信队列和重新处理入口,使失败任务可以继续排查与补偿。结合 trace ID、结构化日志、Langfuse 和健康检查,支持调用追踪与运行问题定位。
可公开结果
- 形成覆盖实时与文件转写的 ASR 服务,将模型并行、音频传输、前后处理和运行管理纳入同一套性能优化方案。
- 历史公开压测记录中,50 路并发下,从单卡单实例基线到双卡双实例与软件优化后的方案,RTF 从 0.61 降至 0.23,平均队列延迟从 1273ms 降至 187ms。该结果包含硬件扩容与软件优化的共同影响,不代表共享内存单项优化的收益。
- 建立覆盖中文、英文、四川方言和业务音频的评测数据基础,并通过模型接口调用与人工标注对照,为 ASR 模型选择提供依据。
- 将 ASR、RAG、Agent 和模型调用管理沉淀到统一中台,提供可复用的业务接入、用量管理与异步任务处理能力。