首页 › deep-tech › 6kbps听得清:语音编码原理

6kbps听得清:语音编码原理

从一条64kbps的"水管"说起

打固定电话时,你的声音在电话网里是这样传输的:话筒把声波变成电信号,电信号每秒钟被采样8000次,每次采样值用8个比特记录,乘起来就是一条64kbps的专用数字通道。这个速率从上世纪70年代用到今天,有线网络养得起——一根光纤里塞几千条64kbps都不费劲。

但无线网络养不起。一个20MHz的5G载波,全部空口资源加起来也就百兆到千兆比特每秒的量级,还要分给小区里几百个用户,同时留大量开销给信令、导频、纠错。如果一通电话要占用双向各64kbps的"硬管道",资源很快就见底了。语音若想在蜂窝网上活下去,必须先把自身"瘦身"。

瘦身到什么程度?今天蜂窝网络上的语音,单路码率普遍在6~25kbps之间,5G上新一代编解码器最低可以压到约6kbps,而听感质量不输固定电话。一边是64kbps,一边是6kbps,压缩比超过10倍,凭什么还听得清?

答案藏在一句话里:语音编码记录的不是声音本身,而是"人的发声器官在做什么"。它不逐字抄写演讲稿,而是记一份"要点提纲"——因为播放对象是人耳和大脑,大脑会自动补全细节。这份提纲能有多短,取决于语音信号里到底有多少冗余可挖。

一、挖冗余之前,先看人声是怎么发出来的

所有语音编解码器(AMR、AMR-WB、EVS)的底层假设,都来自同一个模型——源-滤波器模型。它把人说话拆成两件事:

flowchart TD
    A["肺部气流"] --> B["声带:声门激励"]
    B -->|浊音:准周期脉冲| C["声道管道:咽 口 鼻"]
    B -->|清音:摩擦噪声| C
    C --> D["嘴唇辐射出语音波形"]
    E["发音变化时<br/>声道形状缓慢改变"] -.-> C

用乐器类比:声带是吹进笛子的气流,声道就是笛身——同一股气流,进长笛和进短笛,出来的音色天差地别。

这个模型给了编码器两个关键的可乘之机:

第一,激励源极简。浊音就是"每隔一阵子打一个脉冲",清音就是"一段噪声"。描述它们几乎不费比特——只需告诉解码器:脉冲间隔多少(基音周期)、噪声多大、增益多少。

第二,声道是"慢性子"。口腔舌头的肌肉运动,物理上不可能在一二十毫秒内剧烈变化。所以语音波形在20毫秒的窗口内高度相似——相邻两帧的"管道参数"几乎不变,只需要每隔20毫秒更新一次滤波器描述,帧内根本不用重复说。

二、线性预测:用过去的样本猜现在的样本

"声道是滤波器"这句话,在数学上就是线性预测编码(LPC):当前的语音样本,大致等于前面若干个样本的加权叠加。

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

其中 $\hat{s}(n)$ 是预测值,$a_k$ 是预测系数(描述声道管道的共振特性),$p$ 通常取10~16。预测不可能完美,真实值减去预测值剩下的误差叫残差:

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

现在编码的账可以这样算:描述声道,只需要每20毫秒传十几个滤波器系数(压缩编码后约几十比特);剩下的问题全部集中在残差上——残差携带了激励的信息,必须想办法塞进尽量少的比特里。

如果把LPC理解成"给声道拍照",那么残差就是"声带在怎么使劲"。照片20毫秒更新一次就够了;而"怎么使劲"这件事,才是压缩的主战场。

三、CELP:在编码器里造一个"试音室"

早期编码器(如GSM第一代全速率13kbps)走的是开环路线:直接对残差做粗量化,波形失真较大。上世纪80年代中期成型的CELP(码激励线性预测)换了个思路,一举成为此后三十年所有蜂窝语音编解码器的骨架,直到今天AMR家族和EVS仍在用它。

CELP的核心洞察有两个。

第一,残差也不是杂乱无章的。浊音的残差保留了基音的周期性——声带的脉冲会在残差里"漏"出来。于是CELP用两级码本来拼装激励:自适应码本负责模仿基音脉冲(本质上是从历史激励里"复制粘贴"一个周期前的内容),固定码本负责补充随机成分。每个候选激励向量加上增益系数,就是一份完整的"用力方案"。

第二,挑哪份方案,不能开环拍脑袋,要闭环试。编码器内部内置了一个和接收端一模一样的解码器。对码本里的每个候选激励,都在本地真实合成一遍语音,与原始语音对比,选出"合成结果听起来最接近"的那个,最后只把码本索引和增益写进码流。这个流程叫分析-通过-合成(Analysis-by-Synthesis)。

 flowchart TD
    IN["输入语音:20ms一帧"] --> LPC["LPC分析:提取声道系数"]
    IN --> W["感知加权滤波"]
    LPC --> CB["码本搜索<br/>自适应码本+固定码本"]
    CB --> SY["本地合成:模拟解码"]
    LPC --> SY
    SY --> ERR["合成结果与原语音比对"]
    ERR -->|误差更小:暂存该候选| BEST["记录最优索引与增益"]
    ERR -->|还有候选:继续试| CB
    BEST --> OUT["全部候选试完:输出码流"]

类比一下:这像配音演员对着原片逐条试戏——把候选台词一句句演出来,选演得最像的那条,最后只把"第几条"写进剧本。代价是编码端计算量大,但解码端极简(照着索引查表、滤波、输出),恰好符合"手机省电、基站有钱"的不对称需求。

还有一笔点睛之笔:感知加权。CELP在比较误差时,并不是让波形误差的绝对值最小,而是套上一个按声道共振特性整形的加权滤波器——在共振峰附近、以及强信号掩蔽区内,人耳对失真不敏感,就允许更大的误差;人耳敏感的频段则严防死守。相当于把量化噪声"赶到"听不见的地方去。同样6kbps,按波形逐比特对齐去压缩会很糟糕,按"人耳怎么听"去压缩就能以假乱真——感知编码是低码率可行性的另一半支柱。

四、不说话就不花钱:VAD与舒适噪声

CELP解决的是"说话时怎么压得更狠",而另一项技术解决的是"不说话时干脆别传"。

统计一下日常通话:大约六成时间是单向静默——你在听,对方在说。这些时间段如果还在按语音码率发送"编码得很好的寂静",纯属烧钱。于是编解码器内置话音活动检测(VAD):判定当前帧无话音时,只以极低的频率(约每160毫秒一次)发送一个SID帧(静默描述帧),告诉对端"这里的背景噪声大概是什么颜色和音量";对端据此合成一段柔和的随机噪声持续播放,称为舒适噪声。

为什么要"伪造"噪声而不是彻底静音?因为人耳对"绝对无声"的解读是断线了。轻微的、与发送端环境一致的背景声,是"线路还通着"的心理凭证。你打电话时听到的对方那头轻微的沙沙声,多半就是合成出来的。

DTX(不连续传输)带来的收益是数量级的:静默期码率从十几kbps跌到接近零,整通电话的平均码率近乎减半。这也是为什么语音承载的实际空口占用,远比标称码率看起来轻。

五、AMR:给编码器装上"自动变速箱"

前面所有技术解决的是"怎么压"。蜂窝语音还有第三层设计:编码速率随无线信道实时浮动。这就是AMR(自适应多速率)名字里"自适应"三个字的分量。

AMR-NB提供8种码率模式,从4.75到12.2kbps;关键在于:每一帧(20毫秒)都可以换挡。谁在换挡?不是手机自己,而是基站。空口调度器持续监测每个用户的信道质量(信号强度、干扰、误块率),当某用户走进电梯、信号骤降,基站就下令编码器降到低码率模式——省出来的比特预算,全部转给信道编码做更强的前向纠错。信号恢复后,再升回高码率换回好音质。

sequenceDiagram
    participant U as 手机
    participant B as 基站
    participant P as 对端手机
    U->>B: 周期上报信道测量
    B->>U: 信道变差:改用低码率模式
    Note over U,B: 省下的比特转给纠错码
    U->>P: 低码率语音帧照常发送
    Note over P: 按新模式解码<br/>音质略降但不断线

这套机制的哲学是:源编码和信道编码共享同一个比特预算,信道说了算。信道是老板,随时调整"音质"和"抗错"之间的分成比例。这也是蜂窝语音和互联网语音在底层设计上的分野——互联网语音(OPUS一类)把网络当黑盒,靠丢包隐藏和抖动缓冲硬扛;蜂窝语音则让编码器直接参与无线资源博弈。

AMR的宽带版本AMR-WB把采样率从8kHz提到16kHz,传输带宽从传统电话的300~3400Hz扩展到50~7000Hz——低频多了浑厚感,高频多了齿音和临场感。业界从它开始使用"高清语音(HD Voice)"这个商业名词,通话主观质量跨上一个台阶。它同样提供从6.6到23.85kbps共9档码率,支持同样的信道自适应。

六、EVS:为5G准备的继任者

AMR-WB统治了4G VoLTE时代,但它的天花板明显:只能编码语音,铃声、等待音乐、视频通话里的背景音乐传出来都失真;再往低码率压,质量滑坡;对丢包的抵抗力也有限。

5G时代主流的EVS(增强语音服务)在三个方面换代:

其一,同码率更优,同质量更省。据标准制定方公布的主观测试结果,EVS在约6kbps就能达到AMR-WB中档码率相当的听感,为 crowded 网络里的语音承载省出真金白银的空口资源。

其二,语音与音频统一。EVS内置语音模式和音频模式并能自动切换:说话时按语音模型高效压缩;检测到音乐(彩铃、_hold_音乐、视频通话背景音)时切换为类通用音频编码,码率可上探到最高128kbps。所以EVS通话里对方的彩铃不再"电闪雷鸣",这是用户能直接感知的升级。

其三,内建抗丢包冗余。EVS可在码流里携带部分前一帧的冗余信息,丢一个包,下一帧里藏着的内容能补上大半,配合解码端的丢包隐藏,通话的"断字感"显著减轻。这对时好时坏的无线链路是刚需。

把五代蜂窝语音编解码放在一张表里看:

制式 启用年代 核心算法 码率范围 音频带宽 采样率 代表网络
GSM全速率 1990s初 RPE-LTP规则脉冲激励 13kbps 300~3400Hz 8kHz 2G
GSM增强全速率 1990s末 ACELP 12.2kbps 300~3400Hz 8kHz 2G
AMR-NB 2000s初 ACELP+信道自适应 4.75~12.2kbps(8档) 300~3400Hz 8kHz 2G/3G/4G VoLTE
AMR-WB 2000s末 ACELP宽带版 6.6~23.85kbps(9档) 50~7000Hz 16kHz 3G/4G高清语音
EVS 2010s中 ACELP+音频模式混合 5.9~128kbps 20~14000Hz及以上 8/16/32/48kHz 4G/5G VoNR

值得注意的规律:算法骨架(CELP)三十年没换,换的是外围——带宽一路拉宽、码率档位越来越细、与信道和丢包的联动越来越深。通信工程里很多"换代"都是这种"内核稳定、外延扩张"的形态,理解了CELP,就拿到了读懂整个家族的钥匙。

七、一通电话的音质,是在建立时刻决定的

编解码器再好,也要双方"说同一种话"。通话建立时有一轮能力协商:主叫手机在呼叫请求里列出自己支持的编解码清单(如EVS、AMR-WB、AMR-NB及各自模式集),被叫侧和网络从中挑一个双方都支持的"最大公约数"。EVS对AMR家族做了向下兼容,所以EVS手机打给老旧终端时,会自动降级到AMR-WB甚至AMR-NB通话。

这就是为什么"5G满格"和"高清语音"是两回事:空口信号再好,如果协商落到了窄带AMR-NB,听感依然是隔着棉被的"电话腔"。常见诱因包括:对端是仅支持窄带的终端、通话中一端从4G/5G回落到2G/3G、或者终端的高清语音开关未打开。

工程师排障时,可以按下表把"音质类投诉"先分类再动手:

现象 典型原因 排查方向
声音闷、像隔着棉被 协商到窄带AMR-NB 查双方能力与协商结果、高清语音开通状态
周期性断字、机器音 空口丢帧且冗余不足 查无线环境、丢包率、DTX与丢包隐藏配置
沙沙底噪异常大 舒适噪声参数异常 查SID帧是否正常收发
单向无声 媒体路径不通 这不是编解码问题,查承载与NAT/防火墙
彩铃、背景音乐刺耳 未走EVS音频模式 查端到端编解码协商是否落到AMR

实际抓包验证时也有抓手:看RTP流的载荷类型对应哪个编解码;统计SID帧出现的间隔是否约160毫秒,可以确认DTX是否生效;对比通话两端的模式集,能快速定位"降级"发生在协商环节还是通话中途的模式切换环节。

最后一个工程视角的收益:如果全网终端都支持同一套编解码,核心网里昂贵的转码器就可以退场,语音码流从一端到另一端原样透传,既省设备投资,又省一次编解码引入的时延和音质损耗。这也解释了为什么运营商如此热衷推动新编解码的渗透率——每多一部EVS手机,转码点就少一次介入的机会。

常见问题

Q1:AMR和AMR-WB到底差在哪? A:最本质的差异是采样率:8kHz对16kHz,对应音频带宽300~3400Hz对50~7000Hz。带宽翻倍直接带来"高清"听感,这也是"HD Voice"标志只在AMR-WB及以上才点亮的原因。两者都基于ACELP、都有多档码率可被基站实时调度,工作机制一脉相承。

Q2:EVS和互联网电话常用的Opus,为什么手机网络选了EVS? A:两者设计目标不同。Opus面向开放的互联网,不假设底层网络会配合;EVS则与蜂窝无线深度耦合——码率档位能与基站调度联动、与AMR家族互操作、终端实现功耗受控。蜂窝语音需要的是"编码器参与无线资源博弈"的能力,这是通用音频编码器不具备的。

Q3:为什么视频通话画质已经很卡了,声音却还是清楚的? A:因为语音编码从设计之初就是"听感优先、抗丢优先":单路6~25kbps,每帧自带纠错与冗余,丢包还有丢包隐藏兜底。而视频单路动辄每秒几百上千kbps,丢一块数据就是肉眼可见的花屏。两者占用的承载优先级策略也不同——语音通常是最高保障等级。

Q4:通话两端手机能力不一样,我听到的音质由谁决定? A:由协商出的"最大公约数"决定,短板端说了算。你用支持EVS的5G手机打给仅支持AMR-NB的老终端,全程就是窄带音质。另外注意协商的是"编解码+模式集",通话过程中基站仍可在协商范围内实时调整码率档位,所以弱场下的音质波动是正常机制而非故障。

Q5:为什么语音帧长普遍是20毫秒? A:这是时延与压缩效率的折中。帧长越短,编解码引入的时延越小,通话临场感越好,但每帧要传的头部信息占比越高,压缩效率差;帧长越长越"可压",但时延积累到人耳能感知的量级,对话会像隔空喊话。20毫秒恰好落在两端约束的交集处,也和人声道参数的变化节奏匹配。

参考来源

  1. Enhanced Voice Services — Wikipedia — EVS码率模式、采样率与语音/音频双模式的权威概述
  2. Adaptive Multi-Rate audio codec — Wikipedia — AMR/AMR-WB码率档位、帧长与DTX机制的背景资料
  3. Code-excited linear prediction — Wikipedia — CELP分析-合成闭环与码本结构的原理说明
  4. Comfort noise — Wikipedia — VAD/SID/舒适噪声机制的公开定义

本文由「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学通信知识星球海报-扫码加入