做语音应用的团队常卡在同一处:模型挑花了眼,却说不清该比什么。有人只盯字错率,上线才发现延迟高得没法对话;有人照着榜单选,结果自家口音、行业词全崩。这篇不讲抽象概念,而是把评测拆成可执行的几步:先定业务指标,再搭测试集,然后按流式延迟、并发成本、授权范围逐项打分,最后给出不同场景下的取舍顺序和排查路径。
做语音应用的团队常卡在同一个地方:模型挑花了眼,却说不清到底该比什么。有人只盯字错率,上线才发现延迟高得没法做实时对话;有人照着榜单选,结果自家口音和行业词全崩。问题不在模型,在评测方法。这篇把语音模型评测拆成可执行的几步:先定业务指标,再搭测试集,然后按流式延迟、并发成本、授权范围逐项打分,最后给出不同场景下的取舍顺序和排查路径。
先说一个前提:语音模型不是一个品类,而是四类东西——流式识别、离线转写、语音合成、端到端语音对话。它们的指标口径完全不同,混在一张表里比,比出来的结论往往是错的。下面每一节都按这个分类来给动作,你套自己的业务场景往里填就行。
语音模型的评测维度不止字错率
字错率是入场券,不是决策依据。识别侧要同时看字错率和专有名词命中率,而且必须按场景切分:安静近场、远场噪声、多人重叠、口音与方言,同一模型在这几层里的表现可能差出一个量级。只报一个总分,等于什么都没说。
| 模型类型 | 核心指标 | 容易被忽略的项 |
|---|---|---|
| 流式识别 | 首字延迟、字错率、专有名词命中率 | 尾点判定等待、重叠语音切分 |
| 离线转写 | 字错率、标点与分段质量 | 长音频的稳定性、时间戳对齐 |
| 语音合成 | 自然度、音色一致性、多音字与数字读法 | 长句韵律、英文混读、停顿时长 |
| 端到端语音对话 | 轮次延迟、打断响应、上下文保持 | 打断后重新起播时间、误触发率 |
- 每个维度都要写清「什么情况下不适用」:比如字错率低的模型,在强噪声或多人重叠场景下可能反而更差,这类结论不能跨场景套用。
- 评测表里给每个指标标注来源——是公开数据集、自建测试集还是线上抽样,来源不同结论的置信度不同。
- 对话类场景要单独看打断:用户中途插话,模型是能停住还是继续说,这一项过不了就直接淘汰。
- 合成侧别只用机器打分,自然度是主观感受,机器分高不代表人听着舒服。
先搭自己的测试集,再去比模型
公开数据集和榜单的题目,跟你的音频分布、行业词汇基本不会重合,所以它们只能用来筛候选,不能用来定终选。真正有决策价值的,是你自己攒的那套测试集。搭起来不复杂,但要守几条规矩才有效。
- 抽样分层从真实业务录音里抽样本,按安静近场、远场噪声、多人重叠、口音方言分层,每层留固定条数,避免全用公开数据集导致分数虚高。
- 标注三件套至少标逐字稿、关键实体(人名、金额、型号)、时间戳;合成侧另准备多音字、英文混读、数字与符号的长句文本。
- 冻结版本测试集定下就冻结,后续换模型、换参数只用同一套,不然前后对比没有意义;每次改动都要重新起一版并记录。
- 控制样本量内部工具几十条够看趋势;对外服务建议按层各留出足够样本,并分批回归,避免一次性跑完看不出是哪批变差。
这里有个常见坑:测试集越攒越大,却没人记得它当初是按什么场景抽的,结果新模型跑出来的分数没法解释。建议每层样本配一份简短说明——来源、录制条件、大致难度,比单纯堆条数有用得多。
延迟要分三段量,别只记一个总数
「延迟」这个词太粗。真正影响体验的是三段:音频采集与分片、模型首字返回、整句结束。流式识别要测「说完到出字」的间隔,合成要测「发请求到首帧音频」的间隔,对话还要额外测打断后重新起播的时间。只记一个总数,优化的时候根本不知道从哪下手。
- 测之前先量基线:用站内的 /tools/speed-test 把自己的网络与接口延迟打出来,避免把网络抖动算成模型慢。
- 流式识别重点盯尾点判定——静音多久算说完,判定太保守会让整体体验变拖。
- 对话类场景先给延迟预算再选型:先定可接受上限,再拿候选模型去卡这个上限,卡不住的直接排除。
- 同一模型不同接入方式(直连、中转、私有化)延迟可能差不少,评测时按你实际要用的接入方式来测。
测延迟要固定条件:同一台机器、同一条网络、同一段音频,重复几次取稳定区间而不是单次最小值。单次快不代表稳定,抖动的模型在真实通话里比慢一点的模型更难受。
准确率必须在你的场景里复测
榜单只用来筛候选。筛完之后,按业务分层复测:客服录音、会议多人、户外采访、电话窄带,同一模型在每层的表现可能差出量级。如果预算有限,优先复测你最赚钱或最影响口碑的那一层。
| 复测项目 | 怎么做 | 不适用的情况 |
|---|---|---|
| 专有名词 | 用替换词表集中打型号、金额、人名 | 业务里没有强实体时优先级可降 |
| 口音方言 | 按用户来源地分层抽样 | 用户高度集中且普通话标准时可简化 |
| 合成自然度 | 至少两人独立盲听,重点听停顿和连读 | 纯机器播报类场景可放宽 |
| 多音字 | 准备歧义文本逐条核对读音 | 文本内容可控时可人工兜底 |
专有名词单独拎出来说:识别错一个型号或金额,比整句错几个虚词严重得多,因为业务动作会跟着错。所以评测表里最好把「关键实体准确率」单列,跟整体字错率分开看。
并发与成本:按分钟、按字符还是按订阅
计费口径先搞清楚:识别多按音频时长,合成多按字符数,不同厂商口径不同,换算错会把预算算歪。具体单价和单位到站内的 /official-api 与语音类厂商页核对当时的数字,这里只讲怎么算。
- 统一口径把候选厂商的计费单位换算是同一种——比如都折算成「每分钟业务量」的花费,再横向比。
- 压测并发同一模型在并发翻倍后,看首字延迟和错误率是否劣化;很多模型在压测下才开始掉字。
- 算浪费成本按「每分钟业务量 × 单价」估算,再叠加重试与失败请求的浪费,别只算成功调用。
- 定分界线自建还是调用看业务量与稳定性要求,具体账参照本分区关于自建与调用的那几篇,这里只给测算动作。
授权与部署形态会直接否掉技术分最高的方案
技术分再高,授权范围卡死也没用。这一节给的是准入清单:任何一条不满足,直接淘汰,不要留到最后再补。读许可证原文,不要看二手转述,转述里经常漏掉商用、地域和调用量限制。
- 商用授权
- 确认能不能用于商业产品,有没有按调用量或营收分档的限制。
- 权重与产品化
- 能不能把模型权重放进自己的产品里分发,还是只能调接口。
- 私有化部署
- 数据不出内网的场景要提前确认能不能部署,部署后是否还能拿到同等质量的更新。
- 端侧形态
- 端侧省延迟与合规成本,但要接受模型规模与识别质量下降,适合固定场景的短指令。
把合规、部署、更新这三条做成清单逐项打勾再进技术对比,顺序不要反。先比技术再发现不能商用,前面的评测时间全白花。
把评测收成一张打分表和一个决策顺序
评测到最后要能落到一张表上:列维度权重,按业务重要性分配,不要平权。每个候选按维度打分并写明依据——哪份测试集、哪次压测,分数后面必须有证据,否则就是拍脑袋。
| 维度 | 权重怎么定 | 打分依据 |
|---|---|---|
| 准确率 | 对外服务优先,权重最高 | 自建测试集分层结果 |
| 延迟 | 实时交互权重高,离线转写可降 | 压测中的首字与尾点数据 |
| 并发稳定性 | 高峰业务权重高 | 并发翻倍后的劣化幅度 |
| 成本 | 按业务量敏感度定 | 统一口径后的每分钟花费 |
| 授权与部署 | 一票否决项,先过再谈 | 许可证原文与部署方案 |
- 决策顺序:先过准入清单,再看延迟是否卡上限,然后比准确率,最后比成本和长期维护。
- 留回退方案:至少保留一家备选与一套切换路径,避免主供应商调价或限流时被动。
- 打分表要存档:记录哪版测试集、哪次压测、什么参数,换人接手也能看懂。
- 权重写清楚理由,团队里有人质疑时能直接翻到依据,而不是重新吵一遍。
什么时候必须重跑评测
评测不是一次性动作。下面这些情况出现时,必须重跑,而且重跑要只跑受影响的分层和维度,不必全量重来——但测试集版本必须一致才能对比。
- 业务音频分布变化:新增了方言用户、换了录音设备、场景从室内转户外。
- 模型版本更新:供应商升级后准确率或延迟可能变,旧结论不能直接沿用。
- 计费或限流政策变动:成本模型和并发能力都可能被改写,到 /price-watch 核对当时的数字。
- 延迟明显劣化:线上监控发现首字延迟抬升,先排查网络再怀疑模型。
- 把每次结果存档,记录时间、版本与参数,方便判断是模型变差还是场景变难。
最后一句实话:监控比评测更重要。上线之后用质量监控和线上抽样持续看,评测只是起点,它能帮你把候选缩到两三个,真正决定体验的是上线后的持续观察和调整。
下一步想直接看各家的接口计费口径和当前数字,去官方 API 页面统一口径后再套上面的测算动作,比在群里问靠谱。→常见问题
语音模型评测最该先看哪个指标?
先看你的场景能不能用,而不是哪个指标最高。对话类先卡首字延迟上限,转写类先看本场景的分层字错率,合成类先听自然度和多音字。顺序错了会出现分数很高但根本没法上线的结果,建议按业务不可妥协的那一项先筛。
公开榜单和排行榜能不能直接用来选型?
只能用来缩小候选范围。榜单题目、音频来源和你的业务分布差别很大,行业词、口音、噪声条件都不一定覆盖。正确做法是拿榜单筛出几个候选,再用自建分层测试集复测,复测不通过就淘汰,站内 /benchmarks 与 /voice 可以帮你先看有哪些候选。
流式识别的延迟到底该怎么算?
拆成三段:音频分片发送的间隔、模型返回首字的时间、尾点判定到整句输出的等待。用户感知最强的是首字延迟和尾点判定,后者往往被忽略。测之前先用 /tools/speed-test 量出自己的网络基线,不然分不清是模型慢还是链路慢。
按分钟还是按字符计费,预算怎么估?
识别类通常按音频时长,合成类通常按字符数,同一段业务两种口径差别很大。先把业务量换算成对应单位,再乘单价并预留重试与失败的浪费。具体单价和计费单位会变,到 /official-api 以及语音厂商的站内页面看当时的数字。
自建和调用怎么定?
看业务量、延迟要求和数据合规三件事。量大且稳定、延迟敏感、数据不能出内网,倾向自建或私有化;量小、需求在变、想快速验证,先调用更划算。具体分界线的账本分区里关于自建与调用的那篇已经讲透,这里只提醒先过准入清单再算钱。