神经网络编码实现更高效的音频丢包恢复
实时语音通信中,数据包丢失会导致通话质量严重下降。传统冗余方案要么覆盖范围有限,要么带宽效率低下。
深度冗余(DRED)技术通过神经声码器重建信息丰富的语音信号,使用神经编码器进一步压缩频谱快照。单个数据包可包含多达50个先前数据包的信息(相当于1秒语音),带宽增加极小。
冗余音频方案现状
所有现代编解码器都包含丢包隐藏(PLC)算法,但仅适用于短时丢失。25年前制定的RED标准虽灵活简单但效率低下。Opus音频编解码器推出的低比特率冗余(LBRR)方案虽降低比特率开销,但仅支持一帧冗余。
深度冗余技术突破
近年来出现的神经语音编解码器能以不足3kb/s的比特率产生高质量语音。DRED专为传输大量冗余设计,具有以下特点:
- 不同数据包间的冗余保持独立
- 编码有意义的声学特征而非抽象特征
- 利用连续冗余包间的高度重叠
- 解码复杂度不随冗余量增加而改变
- 与Opus解码器无缝切换
神经声码器工作原理
声码器从描述短时语音频谱的声学特征生成连续语音信号。LPCNet等自回归神经声码器能根据先前样本生成最佳音频样本,这一特性对丢包恢复至关重要。
DRED架构设计
DRED尽可能压缩声学特征同时保持语音可懂度。编码器每20毫秒生成包含前40毫秒语音信息的新向量。通过交替包含冗余编码向量,确保冗余覆盖非重叠的过往语音段。
解码时选择最新数据块作为初始状态,向后时间解码,优先恢复最近音频。通过控制每个数据包包含的数据块数量,可灵活调整冗余度。
率失真优化变分自编码器
采用率失真优化(RDO)方法同时降低比特率和语音失真。在率失真优化变分自编码器(RDO-VAE)中,直接限制表示编码所需的比特数,通过量化拉普拉斯分布的熵编码估计实际比特率。
训练过程自动优化特征表示,通过设零值自动丢弃无用维度。通过调整率失真权衡,实现速率可控量化:对近期语音使用更高质量,对远期语音使用较低质量。最终以约500bps的平均比特率重建可懂语音。
结合丢包隐藏技术
当数据包丢失且无DRED数据时,采用神经PLC算法预测声学特征,使用LPCNet填充缺失音频。该神经PLC算法在Interspeech 2022音频深度丢包隐藏挑战赛中获第二名。
性能评估结果
在原始PLC挑战赛完整数据集上使用平均意见得分(MOS)评估显示:
- 单独使用DRED可比先前神经PLC减少约一半丢包影响
- DRED与LBRR结合使用时,丢包影响变得极小
- 与原始未压缩语音相比,仅产生0.1 MOS下降
该技术已在该机构开发分支开源,正与国际标准化组织合作以完全兼容方式更新Opus标准。