<!-- title: 先学嗓子再压缩：AMR与EVS原理 -->

# 先学嗓子再压缩：AMR与EVS原理

## 一、为什么你的声音能压到每秒几KB？

一首128kbps的音乐，一秒钟要啃掉16KB流量；而你打一通VoLTE电话，语音流常常只有每秒1KB多——大约是音乐的一半流量，听感却字字清晰。更早的2G手机，甚至能在每秒不足6千比特的信道里把话说完。

很多人第一反应是“现在压缩算法先进”。但真正的原因更根本：**语音编码器“学过”人是怎么发声的**。它压缩的不是“一段声音”，而是“一个发声器官的运动”。音乐编码器面对的是不可预测的任意波形，只能靠人耳的掩蔽效应见招拆招；语音编码器面对的是一个有确定物理模型的声源，所以它能大胆得多——只传“模型参数”，不传波形本身。

这就是语音编码（Speech Codec）与音频编码（Audio Codec，如MP3/AAC）的分水岭，也是本文的主角。从2G的AMR，到4G高清语音的AMR-WB，再到5G VoNR用的EVS，二十五年间换了三代，底层思想却一脉相承。今天我们把这套“给嗓子建模型”的手艺拆开看。

## 二、压缩之前，先给声音定档

讨论编码之前要分清两个容易混淆的维度：**带宽**和**保真度**。带宽由采样率决定，决定了你能听到多大范围的声音；保真度由比特率决定，决定了频带内的声音有多“细腻”。

| 等级 | 频带范围 | 采样率 | 代表编码 | 大众叫法 |
|---|---|---|---|---|
| 窄带 NB | 300–3400 Hz | 8 kHz | G.711、AMR-NB | 传统"电话音" |
| 宽带 WB | 50–7000 Hz | 16 kHz | AMR-WB | "高清语音" |
| 超宽带 SWB | 20–14000 Hz | 32 kHz | EVS | "超高清" |
| 全频带 FB | 20–20000 Hz | 48 kHz | EVS | 接近CD听感 |

有两个反直觉的点值得记住。第一，传统电话音的上限3400Hz是人声“最省比特”的区间——辅音的咬字信息大多在3kHz以下，所以窄带语音虽然闷，但可懂度并不差。第二，“高清语音”（运营商的HD Voice营销名）指的是**宽带**，即AMR-WB把低频的浑厚感（50Hz起）和中高频的临场感（到7kHz）补了进来，提升最大的其实不是“高音”，而是自然度。

AMR-NB每20毫秒处理一帧（160个样本），一帧只要95~244比特；折算下来就是4.75~12.2kbps。这244比特是怎么省出来的？答案在下面这个模型里。

## 三、发声的物理模型：一根管子和两种激励

人的发声系统可以粗暴地拆成两部分：**激励源**和**声道滤波器**。

- **激励源**：声带振动产生准周期性的脉冲串（发“啊”时喉咙的嗡嗡声，基频男声约100Hz、女声约200Hz），语言学上叫**浊音**；气流擦过牙齿、嘴唇缝隙产生近似白噪声的湍流（“嘶”“呲”“服”），叫**清音**。
- **声道滤波器**：从声带到嘴唇的一根“可变形状的管子”，包括喉腔、口腔、鼻腔。它对激励做滤波，在某些频段形成谐振峰，即**共振峰**（Formant）。你之所以听得出“啊”和“依”的区别，正是因为舌头位置不同改变了共振峰的分布。

```mermaid
flowchart TD
    A["肺部气流"] --> B["激励源二选一"]
    B -->|"声带振动：浊音"| C["准周期脉冲串"]
    B -->|"气流擦音：清音"| D["随机白噪声"]
    C --> E["声道共振腔滤波"]
    D --> E
    E --> F["共振峰染色后的话音"]
    F --> G["麦克风输出"]
```

这个“激励—滤波”模型是语音编码的奠基性假设。它的威力在于：**声道形状在20毫秒内几乎不变**。你说话时舌头、嘴唇的物理运动以几十毫秒为单位，远慢于声音波形本身（几毫秒就振荡一个周期）。于是波形里就藏着大量冗余——相邻样本高度相关，相邻帧参数几乎相同。

压缩的全部艺术，就是把这两层冗余彻底挤干：帧内的冗余交给**线性预测**，激励的冗余交给**码本**。

## 四、线性预测：声道是个“惯性系统”

既然声道形状短时不变，那么下一个声音样本和前几个样本就必然高度相关。**线性预测**（LPC, Linear Predictive Coding）把这层关系写成一句话：

$$\hat{s}(n) = \sum_{k=1}^{p} a_k \, s(n-k)$$

即用过去p个样本的加权和来预测当前样本。预测得准，说明声道惯性稳；预测不准的地方，恰恰是激励（声门脉冲、清音噪声）“出格”的时刻。预测残差为：

$$e(n) = s(n) - \hat{s}(n)$$

于是语音被解耦成两部分：

- **A(z)**：预测多项式，代表声道滤波器（慢变，几十毫秒更新一次，量化后只要几十比特）；
- **e(n)**：残差信号，代表激励（这才是每帧真正“新鲜”的信息）。

解码端反过来，用残差去激励声道滤波器：

$$H(z) = \frac{1}{A(z)} = \frac{1}{1-\sum_{k=1}^{p} a_k z^{-k}}$$

直觉上，A(z)就是那段“管子”的频率响应。窄带语音用10阶预测就能把共振峰描绘得八九不离十；宽带语音频带翻倍，需要16阶。LPC系数本身还要再“瘦身”一次——工程上不直接量化系数，而是转换成更稳健的LSP（线谱对）参数再量化，因为LSP的量化误差不会引起滤波器剧烈波动，这是教科书里“参数稳健性”的经典案例。

到这里，编码器已经能以几十比特描述“管子”了。剩下的麻烦是激励：残差信号虽然“新鲜”，但直接传波形还是太贵。怎么把激励也压到几十比特？答案是语音编码史上最优雅的设计——闭环搜索。

## 五、CELP：先试装，再发货

CELP（码激励线性预测）的核心动作叫**合成-分析**（Analysis-by-Synthesis）：编码器里内嵌一个解码器，把候选激励逐个“试播”一遍，用与接收端完全相同的算法合成出语音，跟原始语音比误差，哪个候选误差最小就传哪个的**编号**。发一个编号，远比发一段波形便宜。

候选激励存在两本“字典”里：

- **自适应码本**：存着上一帧及更早的激励，按音调周期循环取用——因为浊音激励是准周期的，本周期的脉冲大概率能拿上个周期的旧素材复制粘贴。它本质上就是长时预测，负责捕捉“嗡嗡”的周期性。
- **固定码本**：存一组预先设计好的、结构稀疏的残差形状（代数码本ACELP，用几个脉冲位置和符号的组合编码，只需极少的比特描述索引）。

但比较误差时不能直接比波形。人耳对不同频段的失真敏感度不同——在共振峰附近，耳朵的分辨力反而最钝（掩蔽效应），共振峰之间的能量空隙才是失真最刺耳的地方。于是搜索目标改成**感知加权误差**最小：

$$W(z) = \frac{A(z/\gamma_1)}{A(z/\gamma_2)}, \quad 0 < \gamma_2 < \gamma_1 < 1$$

它故意把失真往共振峰里赶——那里耳朵听不清。这就是语音编码“骗过耳朵”的关键一招：**不是让误差最小，而是让耳朵感觉到的误差最小**。

```mermaid
flowchart TD
    A["输入话音帧"] --> B["LPC分析：提取声道包络"]
    B --> C["LSP量化：几十比特"]
    A --> D["闭环搜索最佳激励"]
    C --> D
    D --> E["自适应码本：管音调周期"]
    D --> F["固定码本：管残差形状"]
    E --> G["本地试合成"]
    F --> G
    G --> H["误差过感知加权滤波"]
    H -->|"选耳朵最满意的一组"| D
    D --> I["只传索引和增益"]
```

12.2kbps的AMR帧，就是这样一个“包裹”：LPC参数 + 音调滞后 + 码本索引 + 增益，合计244比特。解码端按索引从同样的字典里取素材、过同样的滤波器，重建出听感几乎无差的语音。**字典两端各存一份，信道上只传页码**——这句话就是CELP家族全部的秘密。

## 六、AMR：会看路况的八档变速箱

单有压缩还不够。无线信道时好时坏：信号强时可以奢侈一点传高码率，小区边缘误码飙升时，再高的码率也是徒劳——比特错一个，整帧语音就毁一片。AMR（自适应多速率）的解法朴素而聪明：**准备8档码率，随时换挡**。

| 特性 | AMR-NB | AMR-WB | EVS |
|---|---|---|---|
| 标准年代 | 1999 | 2003（ITU编号G.722.2） | 2014 |
| 采样率 | 8 kHz | 16 kHz | 8–48 kHz |
| 频带 | 300–3400 Hz | 50–7000 Hz | 最高20 kHz |
| 码率档位 | 8档：4.75–12.2 kbps | 9档：6.6–23.85 kbps | 5.9–128 kbps |
| 编码模式 | ACELP | ACELP | CELP＋MDCT＋通道感知 |
| 典型场景 | 2G/3G/VoLTE | 3G/VoLTE高清 | VoNR/VoLTE |

换挡的依据是对信道质量的实时测量，形成一条闭环：

```mermaid
flowchart TD
    A["接收端周期上报信道质量"] --> B["网络综合评估质量"]
    B -->|"信道变差"| C["降一档码率"]
    B -->|"信道变好"| D["升一档码率"]
    C --> E["省下的比特给纠错冗余"]
    D --> F["更多比特花在音质上"]
    E --> G["下一帧20ms即生效"]
    F --> G
    G --> A
```

注意这个换挡的本质是**信源与信道的联合分配**：总比特数大致不变，音质和可靠性此消彼长。站在小区边缘，你的通话自动降档到6.7甚至4.75kbps——声音变“薄”了，但断线的风险换成了可懂度。这就是为什么你走进电梯时电话往往“音质变差但没断”：变速箱在悄悄降挡。

AMR还有一个省流量的隐藏开关：**VAD/DTX**。人说话天然有约一半时间是停顿（听对方讲、喘气、换行）。VAD（语音激活检测）判断当前帧是否含语音；静音期间，编码器只发极低速率的SID帧（每约160毫秒一次）描述背景噪声参数，其余时间不发言。接收端根据SID参数**合成**一段相似的背景噪声——所谓**舒适噪声**。不做这一步，对方会以为电话断了；做了这一步，上下行的静音流量省下近一半。你在深夜通话时听到的对方那头轻微的“沙沙”声，就是解码器合成出来的噪声，不是真实的电流声。

顺便说一段趣史：AMR设计8档时，其中12.2kbps档直接沿用GSM的增强全速率编解码（EFR），6.7kbps档对应日本的PDC制式——它从出生起就是一部“多制式兼容变速箱”，为的是让2G/3G网络过渡时无需重新设计。这解释了为什么AMR的档位数字看起来毫无规律：那些数字是从各代现网“继承”来的。

## 七、EVS：5G话音的三副面孔

到了VoNR时代，AMR家族的两个短板暴露了：一是宽带封顶23.85kbps，撑不起全频带；二是只会说话，来一段彩铃、一段hold音乐就原形毕露——CELP的发声模型对音乐根本不成立。2014年定稿的EVS（Enhanced Voice Services）一次解决三件事：

**第一，带宽与码率双扩展。**EVS一套编解码覆盖窄带到全频带（48kHz采样），码率从5.9kbps到128kbps连续可档。低码率区间它与AMR-WB听感持平或更好，高码率区间可达透明音质——同一通电话，从“省流量模式”到“录音室模式”全覆盖。

**第二，双模型切换。**EVS内置两种编码核：语音走CELP（用发声模型），音乐和混合内容切到MDCT变换编码（与AAC同族的频域编码，用掩蔽效应）。编码器逐帧判断当前是说话还是唱歌，自动换核。这也是为什么用支持EVS的手机打VoNR电话时，运营商播放的彩铃终于不再“糊”了。

**第三，也是最工程化的一笔：通道感知模式（channel-aware mode）。**传统思路里，丢包靠接收端的错误隐藏（丢了帧就“脑补”一帧）硬扛。EVS干脆在编码时就掺入**部分冗余**——把上一帧的关键参数降低精度复制一份，藏进当前帧。网络正常时这些冗余是浪费的少量比特；一旦某帧丢了，解码端从下一帧里挖出它的“备份残影”重建，听感损失骤降。这相当于把纠错从“事后补救”前移到“事前埋伏”，代价是牺牲一小部分净码率。在丢包率5%量级的真实网络上，通道感知模式对MOS分的改善远比单纯升档码率划算——**丢包多的现网，这是比“调高码率”正确得多的调优方向**。

## 八、现网里你在哪里会撞见它

- **VoLTE呼叫协商**：主被叫建立媒体通道时的SDP应答里，你会看到AMR/AMR-WB的档位清单与带宽参数的协商行。被叫终端支持哪些档、网络允许哪些档，取交集后由网络逐帧下发放挡命令。排查“通话音质突然变差”，第一步就是确认当前生效的编码档位是否被降到了边缘档。
- **MOS值与码率的关系**：路测工具报的语音MOS分，是解码后波形与参考模型的比对结果。低MOS时先分清三件事：是丢包（查传输与通道感知是否启用）、是低档位（查无线覆盖与换挡记录）、还是抖动过大（查媒体缓冲）。三者的处理方向完全不同。
- **话单里的流量疑云**：开启DTX后，静音期几乎不产生媒体流。若你按“码率×通话时长”估算话音流量，结果会明显偏小——不是统计错了，是舒适噪声在替你省流量。
- **音质评测的坑**：把支持宽带的话音按窄带评估，MOS天花板被硬生生压低两档；反之用对高码率EVS的音乐段做语音评测，模型也会失真。评测前先核对编码档与评测算法的适配范围。

最后留一个常见误解：**采样率升级不等于音质必然提升**。窄带话音升宽带，提升来自补进来的频带；但若信道差到只能跑最低档，宽带低档的听感未必好过窄带高档——比特永远不够分，带宽只是“分法的候选”。音频编码的世界里没有免费的高清。

## 九、结语

从AMR到EVS，二十五年三代技术，变的是档位、带宽和抗丢包的花样，不变的是同一个洞察：**语音不是任意波形，而是一根管子在两种激励下的受迫响应**。先把发声模型建出来，再把耳朵的弱点算进去，最后让编码器自己在无数候选里挑一个“耳朵最满意”的答案——比特数就再也压不下去了吗？不，是再也不需要那么多了。

下一次听到“高清语音”“通话保真”，你知道那背后不是玄学：是244比特一帧的包裹里，装着一副建模的嗓子。

## 常见问题

**Q: AMR和AMR-WB到底差在哪，为什么运营商叫它“高清语音”？**
A: 两处根本差别。采样率从8kHz提到16kHz，频带从300–3400Hz扩展到50–7000Hz，补上了人声的低频浑厚感和中高频自然度；码率上限从12.2提到23.85kbps，9档比8档分得更细。因为听感明显提升，运营商营销上称"HD Voice"，本质就是AMR-WB。

**Q: 为什么微信语音比打电话清晰，它们用的编码不一样吗？**
A: 是的。微信这类OTT应用走互联网，常用通用音频编码（如Opus/SILK）且没有无线信道的严苛比特预算，码率可以更宽裕；蜂窝通话走AMR/EVS，为适应无线信道专门设计，强调低码率下的话音可懂度和快速换挡。代价是微信语音对网络抖动更敏感——它没有无线专用的信源信道联合设计兜底。

**Q: EVS的通道感知模式和普通抗丢包（如FEC）有什么区别？**
A: 通道感知模式把“上一帧的低精度冗余”直接织进当前帧的编码流程里，冗余与主信息联合优化，编码端知道网络会丢包并为之定价；传统FEC多是编码完成后的外层包裹，粒度粗、效率低。EVS的方案在同等冗余开销下恢复质量更好，且只在检测到丢包风险时才加大冗余比例。

**Q: 语音为什么固定20毫秒一帧，不更短或更长？**
A: 这是三方折中。帧越短，时延越低（通话要求端到端单向时延约150ms内），但帧头开销占比越大、LPC参数估计越不稳；帧越长，压缩效率越高，时延却不可接受。20ms正好落在"参数稳定"与"时延可控"的交点上，人耳几乎察觉不到这一粒度的延迟。

**Q: 舒适噪声的“沙沙声”是哪来的，能关掉吗？**
A: 它是接收端根据SID帧里的噪声参数合成的假背景声，为的是让静音期不至于“死寂”让你以为掉线。它是DTX机制的组成部分，关掉它等于关掉DTX——静音省流量的好处就没了。现网中它是特性不是故障。

## 参考来源

1. [Adaptive Multi-Rate audio codec - Wikipedia](https://en.wikipedia.org/wiki/Adaptive_Multi-Rate_audio_codec) — AMR八档码率、20ms帧长与多制式继承关系的权威条目
2. [Adaptive Multi-Rate Wideband - Wikipedia](https://en.wikipedia.org/wiki/Adaptive_Multi-Rate_Wideband) — AMR-WB九档码率、16kHz采样与G.722.2编号
3. [Enhanced Voice Services - Wikipedia](https://en.wikipedia.org/wiki/Enhanced_Voice_Services) — EVS码率范围、带宽等级与通道感知模式
4. [Code-excited linear prediction - Wikipedia](https://en.wikipedia.org/wiki/Code-excited_linear_prediction) — CELP合成-分析与码本机制
5. [Comfort noise - Wikipedia](https://en.wikipedia.org/wiki/Comfort_noise) — VAD/DTX与舒适噪声生成原理

---
> 本文由「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学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
