你有没有想过一个问题:一条 20MHz 的 LTE 载波能跑 150Mbps 的数据,可你打一通 VoLTE 电话,只占了大约 25kbps 上下的资源——连数据业务的千分之一都不到。一部高清电影要几个 GB,而你一小时通话的声音,如果原样录下来也不过几十 MB。为什么人声可以被压缩到如此“离谱”的程度,而音乐和视频却不行?
答案藏在一个容易被工程师忽略的角落:语音编码器(Speech Codec)。调制、信道、信令讲的是“怎么把比特运过去”,而语音编码回答的是更上游的问题——“这些比特从哪来,为什么是这么多比特”。理解了它,你才能看懂 VoLTE 抓包里 AMR-WB 是什么、SDP 协商在争什么、为什么两台“高清手机”打出来还是电话味的窄带音质。这一篇,我们就从声波到比特,把语音编码这条链路彻底讲透。
先建立一个直觉:压缩的空间来自冗余,而人声恰好是冗余极其丰富的信号,丰富到近乎“作弊”的程度。
第一重冗余:发声的物理规律。 人类发不出任意波形的声波。你的声道是一根十几厘米长的、截面缓慢变化的声管,肺气流冲击声带或通过口腔摩擦产生激励,再经声道共鸣整形后辐射出来。物理规律决定了这个系统输出的波形必然是“平滑的、有惯性的、可预测的”——当前时刻的样值和前几个样值高度相关。换句话说,人声波形的很大一部分信息,用“前几个样值”就能猜出来。能被猜出来的信息,就不需要逐个传送。
第二重冗余:人耳的感知局限。 语音编码的终极裁判不是示波器,而是对面那个人的耳朵和大脑。人耳对不同频率的敏感度不同(对 2~4kHz 最敏感,对低频次之),响的声音会掩盖邻近频率上轻的声音(掩蔽效应),而且人耳对波形的逐点误差并不敏感——只要听感一致,波形差一点完全无所谓。
这两重冗余决定了语音编码的独特哲学,也是它和音乐编码(MP3/AAC)的根本分野:
语音编码不是“记录波形”,而是“重建一个听起来一样的新波形”。
它干脆不忠实记录波形,而是建了一个“人的发声模型”,把你说的话翻译成模型的控制参数,接收端用同样的模型把声音“重新演一遍”。这就是“声码器”(Vocoder,voice + coder)思想的起点。既然只传参数不传波形,码率自然可以低到令人发指。
在谈压缩之前,先要明确“我们要保住哪些频率”。采样定理告诉我们,采样率必须高于信号最高频率的两倍,才能无损还原。电话音质的全部历史,几乎就是“保住多宽的频带”的历史:
flowchart TD
A["声波进入麦克风"] --> B["抗混叠滤波"]
B --> C{"采样率选择"}
C -->|"8kHz 采样"| D["窄带NB<br/>300~3400Hz"]
C -->|"16kHz 采样"| E["宽带WB<br/>50~7000Hz"]
C -->|"32kHz 采样"| F["超宽带SWB<br/>20~14000Hz"]
C -->|"48kHz 采样"| G["全频带FB<br/>20~20000Hz"]
D --> H["2G/3G传统通话<br/>『电话味』"]
E --> I["VoLTE高清语音"]
F --> J["EVS超清语音"]
G --> K["EVS音乐级"]
传统电话只保留 300~3400Hz。这就是“电话味”的全部来源:你声音里低于 300Hz 的厚度感、高于 3400Hz 的亮泽感(齿音、气声),全被砍掉了。所谓的“高清语音”(HD Voice),本质就是把带宽从 3.4kHz 扩到 7kHz——采样率从 8kHz 翻倍到 16kHz,样值数量翻倍,但编码器用更聪明的算法把码率控制住。
一个反直觉的事实:AMR-WB 在 12.65kbps 档位的听感(MOS)显著优于 AMR-NB 在 12.2kbps 的表现——码率几乎一样,音质却高一个档次。钱花在哪儿,听感就在哪儿:带宽带来的音质提升,远比同样的比特花在波形精度上划算。这个结论是整个 VoLTE 高清语音的商业逻辑基石。
语音编码算法按思路可分为三代,通信语音编码的演进就是这三代思路的接力:
| 代际 | 思路 | 代表算法 | 码率量级 | 问题 |
|---|---|---|---|---|
| 波形编码 | 忠实记录波形 | PCM、ADPCM | 32~64kbps | 太费比特 |
| 参数声码器 | 只传发声模型参数 | 通道声码器、LPC-10 | 2.4kbps 左右 | 机器味重,音乐/噪声崩坏 |
| 混合编码 | 模型+波形闭环修正 | CELP 家族 | 4~25kbps | 复杂度高(但摩尔定律救了它) |
2G 的 GSM 全速率(FR)用 13kbps,EFR 升级到 12.2kbps——注意这个数字,它之后还会出场。3G 和 4G 时代的主力 AMR 系列、以及 5G 时代的 EVS,全部属于第三代:CELP(Code-Excited Linear Prediction,码激励线性预测)家族。所以我们重点解剖 CELP——看懂了它,AMR、AMR-WB、EVS 全都通了。
零件一:线性预测(LPC)——给声道拍照。
发声的“源-系统模型”说:声门激励经过声道滤波,出来就是语音。LPC 的任务是把“声道”这个滤波器的参数抠出来。方法是线性预测:当前样值可以用前面 p 个样值的加权和逼近:
$$\hat{s}(n) = \sum_{i=1}^{p} a_i \, s(n-i)$$
预测误差 e(n) = s(n) − ŝ(n) 越小,说明这组系数 aᵢ 越准确地刻画了你的声道形状。每 20ms(一帧)重新估计一组系数,相当于每 20ms 给你的声道拍一张“X光片”。元音听感主要由这张 X 光片决定——所以把一个人的 a 元音系数包发给别人,合成出来的仍是“a”,只是不像说话人本人。这也顺便解释了声码器语音为什么“不像本人”:音色信息被降维了。
零件二:码本——激励的“表情包库”。
声道 X 光片传过去之后还缺一样东西:激励信号是什么(声带振动?摩擦音?清音的随机噪声?)。CELP 的做法粗暴而有效:预先准备一个巨大的“候选激励码本”,每个码字是一段激励波形。编码时逐个尝试,看哪个码字激励出来的合成语音最像原始语音,把码字的编号传过去——接收端查同一本字典,取出同一段激励。
CELP 最聪明的设计来了。前两代编码器的思路是“编码端压缩,解码端解压,各干各的”。CELP 说:编码器里直接内置一个迷你解码器。对码本里的每个候选激励,编码端都当场跑一遍解码流程,合成出语音,和原始语音比误差,选失真最小的那个编号发出去:
flowchart TD
A["原始语音帧<br/>每20ms一帧"] --> B["LPC分析<br/>提取声道系数"]
B --> C["感知加权滤波器"]
A --> C
C --> D["误差比较器"]
E["候选激励搜索"] --> F["自适应码本<br/>音调周期-浊音"]
E --> G["固定码本<br/>随机结构-清音"]
F --> H["乘增益G后<br/>求和成激励"]
G --> H
H --> I["内嵌合成器<br/>LPC滤波生成语音"]
I --> D
D -->|"误差大<br/>换下一个候选"| E
D -->|"误差最小"| J["发送<br/>LPC系数+码本索引+增益"]
这就是“合成分析”:一边合成,一边分析,闭环选优。编码器是站在解码器的角度做决策的——它发送的不是“波形是什么”,而是“用哪把钥匙能让你解出最像的波形”。整个搜索过程计算量巨大(这正是 CELP 提出于 80 年代、直到 DSP 算力成熟才大规模商用的原因),20ms 一帧的语音,编码端可能要“试穿”上千套激励方案才挑出最合身的一套。而解码端只需要查一次字典,轻松得很——不对称的计算分布,恰好适合“基站和手机算力换带宽”的工程现实。
合成器的完整数学形式就是预测部分加激励部分:
$$\tilde{s}(n) = \sum_{i=1}^{p} a_i \, \tilde{s}(n-i) + G \cdot c(n)$$
其中 c(n) 是选出的码字激励,G 是增益。另外,误差比较之前要过一个感知加权滤波器:让编码器“用耳朵挑误差”,把误差能量推向人耳不敏感的频段,掩蔽在响音附近——同样 1 比特都不多花,听感却更好。这是“感知冗余”变现的地方。
CELP 解决了“怎么压”,AMR 解决了“压多少”。Adaptive Multi-Rate(自适应多速率)的精髓是:同一套 CELP 框架下准备了多档码率,通话中可以每 20ms 换一档。
AMR-NB 提供 8 档:12.2 / 10.2 / 7.95 / 7.4 / 6.7 / 5.9 / 5.15 / 4.75 kbps。信号好时用高档,音质优先;信号差时降档,腾出的比特交给信道编码做保护——信源和信道抢同一个预算,由网络根据无线质量动态分配。这就是“信源信道联合自适应”的思想。
很多工程师会把它和已讲过的链路自适应 AMC(自适应调制编码)混为一谈,其实两者分工不同:AMC 改的是“每比特跑多快多稳”(调制阶数与信道码率),AMR 改的是“业务本身产多少比特”(信源码率)。一个在信道层自适应,一个在信源层自适应,两者配合构成完整的质量闭环:
flowchart TD
A["基站持续测量<br/>无线信道质量"] --> B{"信道质量评估"}
B -->|"质量差"| C["两路并行动作"]
C --> D["AMC 降调制阶数<br/>16QAM降为QPSK"]
C --> E["命令终端降信源码率<br/>如12.2降至5.9kbps"]
B -->|"质量好"| F["AMC 升高阶调制"]
B -->|"富余充分"| G["维持或升信源码率"]
D --> H["总目标<br/>误块率达标且语音不断"]
E --> H
F --> H
G --> H
值得多说一句的是 AMR 的两个“省比特副产物”,它们在现网里随处可见:
AMR-WB(Adaptive Multi-Rate Wideband)把采样率翻倍到 16kHz,保住 50~7000Hz,提供 9 档码率:6.6 / 8.85 / 12.65 / 14.25 / 15.85 / 18.25 / 19.85 / 23.05 / 23.85 kbps。它同时被 ITU-T 标准化为 G.722.2,是目前 VoLTE“高清语音”的事实载体。一个有意思的细节:AMR-WB 的 12.65kbps 档被设计为“默认工作点”,而 AMR-NB 的最高档 12.2kbps 正是当年 GSM EFR 的算法——保留这个模式是为了向下兼容,让系统能平滑过渡。
EVS(Enhanced Voice Services)是 3GPP 在 Rel-12 阶段完成的新一代编码器,目标很明确:在 VoNR(5G 新空口语音)时代提供“通信级”的音质,同时把抗丢包能力做到体系里。它的关键设计:
但这里有一个工程师必须刻在脑子里的铁律:语音编码是端到端协商的,音质取木桶的最短板。 5G 手机打 5G 手机才可能 EVS 全频带;5G 手机打 2G 老人机,对方只有 AMR-NB,你这头再先进也得降到窄带窄码率。现网投诉“5G 手机打电话音质差”,第一件事不是查空口,而是看这通话两端的编码协商结果——很可能问题在对面那部十年前的手机上。
最后把所有零件装回一条完整的链路,看看一帧语音从嘴到耳经历了什么:
flowchart TD
A["麦克风采集<br/>48kHz原始音频"] --> B["重采样到编码采样率"]
B --> C["每20ms成帧"]
C --> D["VAD判断<br/>有话音还是静默"]
D -->|"静默"| E["低频发SID帧<br/>或停发"]
D -->|"有话音"| F["EVS或AMR编码<br/>输出语音帧"]
E --> G["打包RTP负载"]
F --> G
G --> H["经空口与核心网<br/>专用承载传送"]
H --> I["对端解码器<br/>查码本重建语音"]
I --> J{"收到帧了吗"}
J -->|"正常"| K["正常解码"]
J -->|"丢帧"| L["PLC丢包隐藏<br/>合成补偿帧"]
K --> M["抖动缓冲后<br/>送扬声器"]
L --> M
落到日常工作,这套原理至少在四处直接派上用场:
Q: AMR 和 AMR-WB 只是“码率更高的版本”吗? A: 不是。两者核心区别是带宽:AMR-NB 采样 8kHz、只有 300~3400Hz;AMR-WB 采样 16kHz、保住 50~7000Hz。即使 AMR-WB 用更低的码率(如 12.65kbps),听感也明显好于 AMR-NB 的 12.2kbps。高清语音的“高清”,高在带宽,不在码率。
Q: 语音编码能压到几 kbps,为什么音乐编码 MP3 却要 128kbps 起步? A: 语音编码的前提是“信号必然由人声发声模型产生”,模型参数只有十几个,所以能压到个位数 kbps。音乐里什么乐器、什么音色都可能出现,发声模型不成立,只能靠人耳掩蔽特性做感知压码,空间小得多。让 EVS 放一段音乐它也顶得住——高码率档下它退化为类感知编码器,这正是它比老语音编码器贵的原因。
Q: DTX 静默期间完全不发数据吗?对方怎么听到我的背景噪声? A: 不是完全不发。静默期间会周期性发送 SID(静音描述)帧,携带背景噪声的谱特征,解码端据此合成“舒适的背景噪声”填补空隙。所以抓包看到的是稀疏的小包而不是零包。如果 SID 也收不到,对方会听到不自然的“死寂”,这也是一种故障特征。
Q: 两部都支持 EVS 的手机通话,为什么有时还是 AMR-WB 音质? A: 编码协商取交集。可能的短板包括:中间有一段是 2G/3G 的互通呼叫、运营商语音漫游对接的编码策略、核心网媒体面(如转码器)的配置、或无线侧把模式集限制在 AMR-WB。先抓 INVITE/183 里的 SDP 确认协商落点,再逐段排查。
Q: EVS 的信道感知模式是牺牲什么换抗丢包的? A: 牺牲码率余量。它在常规码流之外编码一份带冗余的部分描述,正常时不起作用,丢包时用冗余重建。所以同等听感目标下它需要更高码率档,或者用更高码率换更强抗丢包——本质还是那笔“信源 vs 信道”的预算账,只是这次是编码器自己内部记账。
说明:本次编写环境的联网抓取工具均未获授权放行,以下链接为长期稳定的权威条目入口(标准参数以正式发布的标准文本为准),未能在线逐字核验,引用时请注意。
本文由「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 等场景全覆盖。
