
选 ASR,先问清楚音频从哪里来
企业做语音识别选型时,最容易被一张漂亮的准确率表带走。可到了现场,真正决定体验的往往是另外几件事:录音是电话双声道还是会议室远场,结果要不要边说边出,系统是否长期断网,专业词每天改几次,出现错字后谁来复核。
Whisper、FunASR 和 WeNet 都能完成语音转写,但它们擅长的方向并不相同。Whisper 的多语种能力和社区工具比较丰富,适合需要覆盖多种语言、接受一定批处理延迟的任务。FunASR 在中文语音处理、流式识别和配套工具方面更容易进入国内项目的测试流程。WeNet 更强调训练与推理链路的工程简洁,适合需要自行控制模型和部署环境的团队。
这不是给三个项目排座次。模型选型必须和音频、硬件、团队能力一起看。
Whisper:通用性强,实时链路要另做功课
Whisper 的优势在于训练数据覆盖面广,面对口音、语言切换和非标准表达时通常有较好的泛化能力。对于播客、采访、跨语言资料和历史录音,先转写再校对的工作流比较自然。
它的麻烦也很具体。原生处理方式更偏向分段识别,实时字幕需要额外处理音频切片、上下文衔接和重复文本。切片太短,句子容易被拆开;切片太长,响应时间会变得难以接受。长音频批处理还要注意显存峰值和时间戳漂移,不能简单地把整段文件一次性送进模型。
如果项目要求边说边显示,测试时应关注首段延迟、连续运行时的稳定性,以及用户停顿、插话后的文本修正方式。只测一段安静普通话,无法代表真实会议。
FunASR:中文流式应用要看完整链路
FunASR 及其相关模型在中文语音转写中有较完整的工具组合,常见工程链路会包含 VAD、标点恢复、时间戳和说话人相关处理。它适合拿来搭建企业内网的实时转写或录音批处理原型,但原型能跑和系统能用之间仍有不少工作。
比如,8 kHz 电话音频和 16 kHz 会议音频不能用同一套预处理参数;行业热词的增加不应等同于重新训练模型;多人同时说话时,分离、切片和文字对齐会互相影响。项目若采用 FunASR,还应把模型版本、依赖版本、权重来源和许可证范围记录下来,后续升级才不会变成一次盲目替换。
对中文政务、金融和医疗录音,建议把词表命中率、数字格式、专有名词误识别和人工修订耗时纳入验收。准确率是结果,不是过程;没有标注集和明确的音频条件,任何百分比都不具备可比性。
WeNet:代码和部署控制权更重要
WeNet 的工程风格相对清晰,流式与非流式路径的组织方式便于团队按自身需求调整。对于需要在边缘设备、国产处理器或定制 Linux 环境中运行的项目,C++ 推理和底层依赖的可控性常常比单次识别效果更重要。
但控制权也意味着责任。团队需要自己处理模型导出、算子兼容、版本回滚和资源监控。设备内存较小时,线程数量、缓存大小和音频队列都要经过实测;否则一个看似轻量的服务,在多人同时接入后仍然会频繁触发交换或阻塞。
如果项目团队没有持续维护模型和编译环境的能力,选择一个自己无法掌控的底层栈,后期成本可能比购买现成服务更高。
测试表格前,先把条件写在开头
一份有用的 ASR 评测至少要说明音频采样率、信噪比、说话人数、语言和行业词汇比例,还要写清硬件型号、线程数、是否使用 GPU、是否进行后处理。实时任务看首字延迟、连续运行时长和失败重试;离线任务看实时率、失败任务比例和单位时间处理量。
同一批音频最好同时保留原始结果和后处理结果。否则一个模型的标点模块、另一个模型的热词规则可能被误算成声学模型本身的能力。涉及医疗、司法等高风险内容时,还要设置人工复核环节,记录错字类型,而不是只看平均字错率。
选型最后落到维护能力
需要多语种和历史音频批处理时,Whisper 往往值得进入候选名单;中文实时转写、词表管理和内网部署是重点时,可以重点测试 FunASR 及其周边链路;需要掌控训练、推理和硬件适配细节的团队,则可以评估 WeNet。
真正的上线方案可能同时使用多个模型:一个负责通用批处理,一个负责低延迟流式识别,另一个承担特定设备上的边缘推理。只要接口、权限、日志和结果格式统一,模型并存并不会增加使用方的复杂度。复杂度应该留在系统内部,而不是转嫁给每天审核录音的人。
选型会议里常被忽略的几个问题
采购和技术团队坐在一起时,通常先谈模型效果,再谈服务器价格,最后才问维护。顺序反过来往往更有效。先确认谁负责模型升级、谁负责硬件驱动、谁能进入隔离机房,才能知道某个方案的真实使用成本。
许可证和权重来源也要留档。开源代码可以查看,不等于所有权重和训练数据都能按相同方式使用;企业把模型放进自己的产品或对外服务时,还要确认许可是否允许。版本记录、依赖清单和第三方组件说明,应当跟着交付包一起保存。
如果客户需要把转写结果送进现有的 OA、呼叫中心或档案系统,接口稳定性要单独验收。字段名称、时间格式、错误码、重试方式和大文件上传限制,都会影响后续集成。模型评测通过后,最好再做一次从音频接入到业务落库的完整演练。
离线部署也不意味着系统必须永远封闭。公开数据和敏感数据可以采用不同处理路径,模型更新可以通过受控介质完成,必要的统计信息则可以在脱敏后离开内网。只要边界写清楚,安全要求和运维效率并不一定互相冲突。