<!-- title: 人声变比特：语音编码进化史 -->

# 人声变比特：语音编码进化史

你有没有想过一个问题：一条 20MHz 的 LTE 载波能跑 150Mbps 的数据，可你打一通 VoLTE 电话，只占了大约 25kbps 上下的资源——连数据业务的千分之一都不到。一部高清电影要几个 GB，而你一小时通话的声音，如果原样录下来也不过几十 MB。**为什么人声可以被压缩到如此“离谱”的程度，而音乐和视频却不行？**

答案藏在一个容易被工程师忽略的角落：语音编码器（Speech Codec）。调制、信道、信令讲的是“怎么把比特运过去”，而语音编码回答的是更上游的问题——**“这些比特从哪来，为什么是这么多比特”**。理解了它，你才能看懂 VoLTE 抓包里 AMR-WB 是什么、SDP 协商在争什么、为什么两台“高清手机”打出来还是电话味的窄带音质。这一篇，我们就从声波到比特，把语音编码这条链路彻底讲透。

## 一、为什么人声是“最好压缩”的信号

先建立一个直觉：压缩的空间来自**冗余**，而人声恰好是冗余极其丰富的信号，丰富到近乎“作弊”的程度。

**第一重冗余：发声的物理规律。** 人类发不出任意波形的声波。你的声道是一根十几厘米长的、截面缓慢变化的声管，肺气流冲击声带或通过口腔摩擦产生激励，再经声道共鸣整形后辐射出来。物理规律决定了这个系统输出的波形必然是“平滑的、有惯性的、可预测的”——当前时刻的样值和前几个样值高度相关。换句话说，**人声波形的很大一部分信息，用“前几个样值”就能猜出来**。能被猜出来的信息，就不需要逐个传送。

**第二重冗余：人耳的感知局限。** 语音编码的终极裁判不是示波器，而是对面那个人的耳朵和大脑。人耳对不同频率的敏感度不同（对 2~4kHz 最敏感，对低频次之），响的声音会掩盖邻近频率上轻的声音（掩蔽效应），而且**人耳对波形的逐点误差并不敏感——只要听感一致，波形差一点完全无所谓**。

这两重冗余决定了语音编码的独特哲学，也是它和音乐编码（MP3/AAC）的根本分野：

> **语音编码不是“记录波形”，而是“重建一个听起来一样的新波形”。**

它干脆不忠实记录波形，而是建了一个“人的发声模型”，把你说的话翻译成**模型的控制参数**，接收端用同样的模型把声音“重新演一遍”。这就是“声码器”（Vocoder，voice + coder）思想的起点。既然只传参数不传波形，码率自然可以低到令人发指。

## 二、带宽决定音质：一切从采样说起

在谈压缩之前，先要明确“我们要保住哪些频率”。采样定理告诉我们，采样率必须高于信号最高频率的两倍，才能无损还原。电话音质的全部历史，几乎就是“保住多宽的频带”的历史：

```mermaid
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 全都通了。

### 3.1 CELP 的两个核心零件

**零件一：线性预测（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 的做法粗暴而有效：预先准备一个巨大的“候选激励码本”，每个码字是一段激励波形。编码时逐个尝试，看哪个码字激励出来的合成语音最像原始语音，把**码字的编号**传过去——接收端查同一本字典，取出同一段激励。

### 3.2 精髓所在：合成分析（Analysis-by-Synthesis）

CELP 最聪明的设计来了。前两代编码器的思路是“编码端压缩，解码端解压，各干各的”。CELP 说：**编码器里直接内置一个迷你解码器**。对码本里的每个候选激励，编码端都当场跑一遍解码流程，合成出语音，和原始语音比误差，选失真最小的那个编号发出去：

```mermaid
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 比特都不多花，听感却更好。这是“感知冗余”变现的地方。

## 四、那个"A"：AMR 的自适应到底在自适应什么

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 改的是“业务本身产多少比特”（信源码率）**。一个在信道层自适应，一个在信源层自适应，两者配合构成完整的质量闭环：

```mermaid
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 的两个“省比特副产物”，它们在现网里随处可见：

- **VAD/DTX（不连续传输）**：你打电话时大约有 60% 的时间在听对方说——本端是静默的。VAD（语音激活检测）发现静默后，编码器不输出正常语音帧，只在参数变化时发一个极低速的 SID（静音描述帧）告诉解码器“现在是什么背景噪声”，其余时间彻底停发。好处是三重的：省手机电量、降上行干扰、省空口资源。**在 VoLTE 抓包里看到 RTP 流有规律地断流，别急着报丢包故障，先确认是不是 DTX 在工作**。
- **PLC（丢包隐藏）**：解码端收不到某帧时（RTP 丢包），不是简单静音，而是根据前后帧参数“脑补”一帧——通常是重复上一帧的激励并衰减。PLC 让偶发丢包在听感上只是轻微的“沙沙”而非咔哒断音。这也是语音比视频“抗造”的重要原因。

## 五、从 AMR-WB 到 EVS：高清语音的两级跳

### 5.1 AMR-WB：高清语音的开山之作

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 的算法——保留这个模式是为了向下兼容，让系统能平滑过渡。

### 5.2 EVS：为 VoNR 而生的新一代

EVS（Enhanced Voice Services）是 3GPP 在 Rel-12 阶段完成的新一代编码器，目标很明确：在 VoNR（5G 新空口语音）时代提供“通信级”的音质，同时把抗丢包能力做到体系里。它的关键设计：

- **超宽带与全频带**：支持从窄带一路到 48kHz 采样的全频带（20kHz 带宽），高码率档位下听感逼近音乐级；
- **宽码率范围**：约 5.9 到 128kbps 连续覆盖，低档保兼容，高档拼音质；
- **信道感知模式（channel-aware mode）**：在码流里主动加入冗余描述，专治丢包——即使丢掉一部分包，解码端仍能合成出可听的语音，把“抗丢包”从解码端的被动脑补升级为编码端的主动布防；
- **与 AMR-WB 互操作**：EVS 内置 AMR-WB 兼容模式，双方能力协商后若只支持 AMR-WB，就自动落到旧编码上——这保证了 5G 手机打 4G 手机不会哑火。

**但这里有一个工程师必须刻在脑子里的铁律：语音编码是端到端协商的，音质取木桶的最短板。** 5G 手机打 5G 手机才可能 EVS 全频带；5G 手机打 2G 老人机，对方只有 AMR-NB，你这头再先进也得降到窄带窄码率。现网投诉“5G 手机打电话音质差”，第一件事不是查空口，而是**看这通话两端的编码协商结果**——很可能问题在对面那部十年前的手机上。

## 六、一条 RTP 包的旅程：把原理落到现网

最后把所有零件装回一条完整的链路，看看一帧语音从嘴到耳经历了什么：

```mermaid
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
```

落到日常工作，这套原理至少在四处直接派上用场：

1. **看懂 SDP 协商**：VoLTE 呼叫建立的 SIP INVITE 里，SDP 会列出编码候选（EVS、AMR-WB、AMR…）及模式（octet-align 还是 band-efficient、mode-set 限定）。**音质投诉先看协商结果**——两端最终落在哪个编码、哪档码率，决定了音质天花板。
2. **读懂 RTP 流**：20ms 一包（50 pps）、载荷几十字节，有规律停流是 DTX 而非故障；载荷尺寸随码率变化对应 AMR 换档。
3. **MOS 优化的抓手**：语音质量差的排查优先级——编码协商结果 → 丢包率（触发 PLC）→ 抖动缓冲溢出 → 码率是否被压到低档。编码器选错档是“通话像机器人”的常见根因之一。
4. **容量与干扰账本**：一个 VoLTE 用户占多少资源取决于码率档位，DTX 开启率直接影响上行干扰底噪——做无线容量规划时这是基本输入。

## 常见问题

**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 信道”的预算账，只是这次是编码器自己内部记账。

## 参考来源

> 说明：本次编写环境的联网抓取工具均未获授权放行，以下链接为长期稳定的权威条目入口（标准参数以正式发布的标准文本为准），未能在线逐字核验，引用时请注意。

1. [Enhanced Voice Services - Wikipedia](https://en.wikipedia.org/wiki/Enhanced_Voice_Services) — EVS 标准背景、码率档位与带宽支持概览
2. [Adaptive Multi-Rate audio codec - Wikipedia](https://en.wikipedia.org/wiki/Adaptive_Multi-Rate_audio_codec) — AMR/AMR-WB 模式列表与历年网络应用
3. [G.722.2: Wideband coding of speech at around 16 kbit/s - ITU-T](https://www.itu.int/rec/T-REC-G.722.2) — AMR-WB 的 ITU 标准文本入口
4. [3GPP Speech Codec specifications](https://www.3gpp.org/specifications-groups/sa-plenary/sa4-codec) — 3GPP SA4 编码器工作组官方页面
5. [Opus Codec - Wikipedia](https://en.wikipedia.org/wiki/Opus_(audio_format)) — 互联网侧同类感知编码器，可用于对照理解设计取舍

---
> 本文由「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)
