首页 › deep-tech › 给声音打分:语音质量评价原理

给声音打分:语音质量评价原理

参数都达标了,用户为什么还在骂

语音这一栏写到今天,账面上的机制已经齐了:编解码决定了「口音」怎么传,抖动缓冲负责慢半拍地攒包,回声消除负责闭嘴听你说,GBR专载负责划出那条不许别人抢的车道。一个语音专载从设计图纸到现网开通,每一环都有参数兜底。

可验收那天,甲方拿着话机听了一圈,说:「还是觉得有点卡。」

参数表上,时延预算没超、丢包预算没超、MOS类的KPI报表一片绿——但「觉得卡」这三个字,才是语音业务真正的验收标准。语音是少数最终交付物是一种主观感受的电信业务:网络传的不是文件,是两个人通话时的「顺不顺」。于是工程上必须回答一个看起来不像工程问题的问题——

没有人一直坐在那里听电话,那这个「顺不顺」,怎么变成一个可以写进验收报告的数?

这就是语音质量评价要解决的问题。它是一套把「听感」变成「分数」的测量学,也是所有QoS承诺的最终裁判:五毫秒的时延预算、万分之一的丢包率,落到人耳里到底值几分?这篇文章讲清楚它的三代方法论——人耳听、波形比、参数算,以及现网拨测里那些分数背后的陷阱。

第一代考官:人耳,以及它为什么必须退休

最早的办法最诚实:找人来听。

国际电信联盟在主观测评方法里定义了经典的绝对等级评定:让一批经过筛选的测试者听若干段语音样本,按五分制打分——5分优、4分良、3分中、2分差、1分劣——再把所有人的打分做统计平均,得到平均意见分。这个分数习惯上就叫做MOS。

听起来简单,但真做起来,规矩多得超乎想象:

这套方法测出来的数最接近真实用户感受,至今仍是标定其他一切方法的「金标准」。但它有三个致命的工程缺陷:贵(人时要花钱)、慢(组织一轮测试以周计)、不可回归(同一批人听第二遍,结论就不纯了——他们已经听过这个样本)。现网优化是个高频动作:改个参数要验证、扩个容量要验证,总不能每次都雇一屋子人来听电话。

于是问题变成了:能不能造一台「机器考官」,让它算出接近人耳的分数?

第二代考官:拿着两份波形找茬

机器打分的第一条思路很自然:把原始声音录下来当参考,把经过网络传到对端的声音当退化样本,逐点比对——差得越多,分数越低。

但直接逐点算误差是不行的。网络里的两份波形,哪怕听感完全一样,采样起点也可能差几十毫秒;一行编码变换,就会让波形「形变而神不变」。若只算逐点误差,一段清亮的通话可能因为几十毫秒的整体时移被误判成惨不忍睹。所以信号对比法的核心不是「比差异」,而是先做时间对齐,再用人耳的听感规律给差异加权:

  1. 对齐:在两份录音之间估计时延并补偿,把「搬了个位置」和「真的变了」分开;
  2. 听感加权:人耳对不同频率、不同响度的失真敏感度完全不同——被强信号掩盖的弱失真,人耳根本听不见,就不该扣分。模型里嵌入了心理声学的掩蔽效应,模拟「耳朵听得见什么、听不见什么」;
  3. 失真聚合:把加权后的残余差异映射到五分制上,输出机器MOS。

沿着这条思路,业界先后标准化了两代算法。早期版本在窄带电话和新一代编解码上表现失真——它没听过宽带语音,也没见过高效的压缩编码,对这类「没见过的新口音」会习惯性地低估。2011年推出的后继版本补齐了超宽带、修正了对新型编解码的系统性偏差,成为当前运营商拨测的主流算法。工程上只要记住一条分界线:旧算法的分数和新算法的分数不可混排,同一份录音用两代算法打分,能差出零点几分——跨厂商、跨年代的MOS对比,先核对用的是哪把尺子。

拨测系统把这条思路做成了产品:主叫端放一段标准语音样本并留底,被叫端把收到的声音录下来回传,算法拿两份录音对齐打分——这就是现网MOS拨测的基本原理。它终于让「回归测试」成为可能:改完参数,重放一遍,几分钟出分。

flowchart TD
    M1["给声音打分的三代方法"] --> A["第一代:人耳听"]
    M1 --> B["第二代:波形比对"]
    M1 --> C["第三代:参数算账"]
    A --> A1["主观MOS,五分制"]
    A --> A2["最真实,贵且慢"]
    B --> B1["对比参考与接收录音"]
    B --> B2["需要原始声音样本"]
    C --> C1["从网络参数直接推算"]
    C --> C2["不需要声音,适合规划推演"]
    A2 --> U["标定一切的金标准"]
    B2 --> U2["验收拨测的主力"]
    C2 --> U3["设计与预演的计算器"]

但这把尺子有个先天限制:必须有两份声音。它只适合「事后验收」——声音已经端到端传完了,才能比。可语音网络的很多问题发生在「还没建成」的时候:规划一个新专载,预估丢包从0.5%涨到2%听感掉几分;评估把某个网段的时延压缩50毫秒值不值一个改造项目。这时根本没有录音可比,只有一摞设计参数。

于是有了第三代考官——它干脆不看声音。

第三代考官:不碰波形,直接算账

参数化模型(业界通称E-model)的想法是:既然几十年的主观测试已经攒下了海量「网络参数↔听感」的对应数据,那就把这些经验提炼成一个计算公式——输入时延、丢包、编解码类型,直接算出预估听感分。它的账本长这样:

先给整体听感定义一个质量因子R,取值0到100,越高越好。工程简化形式:

$$R = 93.2 - I_d - I_{e\text{-}eff}$$

其中93.2是无损伤时的基准分,后面两项是扣分项:

$$I_{e\text{-}eff} = I_e + (95 - I_e)\,\frac{P_{pl}}{P_{pl}+B_{pl}}$$

$P_{pl}$是丢包率,$B_{pl}$是每种编解码各自的「抗丢包体质」系数——有的编码对丢包天生钝感,有的则一听就碎。这个分式刻画了一个重要直觉:丢包的伤害是边际递减的,从0到1%的恶化远比从5%到6%更伤听感。

算出R之后,再用一条标准映射曲线换算成MOS。窄带语音的经典映射是:

$$MOS = 1 + 0.035R + 7\times10^{-6}\,R\,(R-60)(100-R)$$

代入两个锚点感受一下:基准分93.2对应MOS约4.4(接近「良」的上沿);R跌到50,MOS只有约2.6——通话还在「通」,但已经掉进了多数用户不可接受区。工程界据此形成了惯用分档:

R因子区间 对应MOS约值 用户感受 工程处置
90以上 4.3以上 几乎无人抱怨 优质专载目标区
80~90 4.0左右 少数敏感用户有感知 正常商用水平
70~80 3.7左右 相当比例用户不满 需要优化
60~70 3.1左右 多数用户不满 限期整改
60以下 3.0以下 接近不可接受 视为故障

(宽带语音另有映射曲线,上限与走势都不同于窄带,不能拿窄带公式去算宽带专载。)

三代方法各司其职,谁也替代不了谁:

维度 主观MOS 信号对比法 参数法E-model
输入 一批真人听众 参考录音+接收录音 时延、丢包、编码类型
输出 五分制均分 机器MOS R因子→预估MOS
最能反映 真实感受 端到端的实际损伤 参数变化的影响趋势
天生盲区 贵、慢、不可回归 依赖对齐与掩蔽模型的精度 建模之外的损伤看不见
典型用途 标定金标准 拨测验收、回归测试 规划推演、预演「如果」

一场拨测的完整旅程

把三代方法拼起来,就是现网语音质量验收的完整链路:

sequenceDiagram
    participant A as 拨测主叫终端
    participant N as 被测网络
    participant B as 拨测被叫终端
    participant S as 评分服务器
    A->>N: 发起VoLTE呼叫
    N->>B: 按专载参数接续
    Note over A,B: 双方同步播放并录制标准语料
    A->>S: 回传发送端留底录音
    B->>S: 回传接收端录音
    S->>S: 对齐并计算MOS
    S->>S: 生成按路段分解的报表

这里有个容易被忽略的细节:评分是分路段的。MOS不合格时,报表要能回答「伤在哪一段」。整条链路被拆成空口上下行、核心网、承载网几个环节,每个环节都有各自的录音留底或探针——拿相邻两段的录音互相比对,损伤就锁定在「进这段之前还好、出这段之后变差」的区间里:

flowchart TD
    C1["主叫终端"] --> C2["空口上行"]
    C2 --> C3["核心网与承载网"]
    C3 --> C4["空口下行"]
    C4 --> C5["被叫终端"]
    C5 --> C6["录音回传与评分"]
    C6 --> C7{"MOS是否达标"}
    C7 -->|达标| C8["专载验收通过"]
    C7 -->|不达标| C9["分段比对锁定损伤段"]

这也是MOS与QoS参数真正握手的地方。语音专载的时延预算和丢包预算是设计承诺,MOS是交付验收:前者写明「允许坏多少」,后者回答「坏掉的那些,在耳朵里变现成几分」。参数超标而MOS达标,说明设计余量给多了;参数达标而MOS不达标,则几乎总意味着有损伤走了参数清单之外的路——典型的就是网元内部排队、回声路径或者抖动缓冲配大了,这些账都要记到E-model的 $I_d$ 上去查。

分数的陷阱:读报表之前先读这里

陷阱一:把均值当全部。 MOS是统计平均,而投诉来自最差的尾部。一条均值4.2的测试路线里,可能藏着10%的样本只有2.8分——那正是电梯里、地库里的用户。看MOS报表要同时看分布,尾部的窟窿才是投诉工单的来源。

陷阱二:跨尺子硬比分数。 不同算法代际、不同厂商实现、窄带与宽带,打出的分数都不在一个坐标系里。两家供应商的拨测报告并排放,先确认用的是不是同一把尺子,再谈谁高谁低。

陷阱三:忘了考官也会看人下菜。 机器模型按标准语料标定,语速、内容、说话风格都会影响得分。拿慢语速语料测出来的分数,和真实快节奏对话的体验之间有系统性偏差——所以拨测语料必须固定,历史数据才有可比性。

陷阱四:迷信单一模型。 信号对比法看不见对齐模型之外的损伤,参数法看不见建模清单之外的损伤。分数好的结论要用第二把尺子交叉验证一次,尤其是大版本变更后的验收。

小结

语音质量评价的三代方法论,本质上是一个不断「去人化」的过程:先用机器模拟人耳(信号对比法),再用公式代替耳朵(参数法),但每一次简化都以主观测试为锚——金标准始终是那一屋子人。工程师要做的,是清楚手里这把尺子量的是什么、量不了什么:验收时用信号对比法听「真话」,规划时用参数法算「如果」,而所有分数的解释权,最终都在那个五分制的人耳坐标系里。

回到开头那句「还是觉得有点卡」——它不再是无理取闹,而是这套测量学存在的理由:网络的所有承诺,最终都要在这三个字面前结账。

常见问题

Q: MOS 4.0 就一定代表用户满意吗? A: 不一定。4.0是「平均良」,但满意度取决于分布和场景。均值4.0、尾部2.8的专载,投诉率可能远高于均值3.9但方差很小的专载。另外宽带语音的用户预期更高,同样的4.0分,VoLTE用户感受到的「好」与2G时代不同。分数要和分布、业务场景一起读。

Q: PESQ和POLQA到底是什么关系? A: 是前后两代标准化算法。旧版对新式编解码和宽带语音系统性偏悲观(或偏乐观,视场景),新一代修正了这些偏差并支持超宽带。工程要点只有一个:两代分数不可直接对比,历史数据的口径变更必须在报表里标注。

Q: 时延和丢包,哪个对听感杀伤更大? A: 看量级。丢包几乎从第一个百分点就开始扣分,是「当场就碎」的损伤;时延则有个几十毫秒的宽容区,越过后才陡增。但时延的账更隐蔽:它还会通过放大回声困扰、逼大抖动缓冲间接扣分。排查时先看丢包,再顺着 $I_d$ 查时延链。

Q: 为什么不干脆用深度学习端到端打分? A: 研究上确实有大量尝试,商用拨测里也有辅助手段,但主流验收仍以标准化、可解释的模型为准——分数要能写进合同、能在争议时被复算,模型就必须是公开、稳定、有版本号的。这不是技术保守,是测量学的基本纪律。

参考来源

  1. Mean opinion score — Wikipedia — 主观MOS的定义、五分制锚点与测试方法族(ACR/DCR)
  2. Perceptual Evaluation of Speech Quality — Wikipedia — 信号对比法原理、对齐与心理声学加权的通识性介绍
  3. ITU-T P.863 建议书 — 当前主流客观语音质量算法的官方出处
  4. E-model — Wikipedia — R因子模型、损伤因子分解与丢包体质系数的通识性介绍
  5. ITU-T G.107 建议书 — E-model计算公式与R到MOS映射曲线的官方出处

本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护,聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入