神经网络编码实现更高效的丢失音频包恢复
数据包丢失是互联网实时语音通信面临的主要问题。当网络不可靠导致大量数据包丢失时,用户往往难以听清对方说话内容。
冗余音频技术现状
现有对抗数据包丢失的方法主要通过冗余机制实现,即每个新数据包包含先前数据包的信息。但现有冗余方案要么范围有限(如仅包含前一包信息),要么扩展效率低下。
所有现代编解码器都配备了包丢失隐藏算法,这些算法适用于不频繁的短时丢失,但无法预测对话中的下一个音素或单词。
深度冗余技术突破
深度冗余技术通过神经网络声码器从信息稀疏的频谱快照中重建信息丰富的语音信号,并利用神经编码器进一步压缩这些快照。采用这种方法,单个数据包可包含多达50个先前数据包的信息,而带宽增加极小。
神经声码器
声码器是接收描述短时语音频谱声学特征并生成相应语音信号的算法。像WaveNet这样的神经声码器改变了游戏规则,随后出现了更低复杂度的声码器如LPCNet。
DRED架构
DRED的核心思想是在确保恢复语音可懂的前提下,尽可能压缩特征。当多个数据包丢失时,系统等待第一个到达的数据包,解码其中包含的特征,然后将这些特征发送给声码器重新合成丢失的语音。
编码器每20毫秒生成一个新向量,包含最后40毫秒语音信息。由于这种重叠,只需一半向量即可重建完整语音。为避免冗余本身冗余,在给定20毫秒数据包中仅包含每隔一个的冗余编码向量。
率失真优化变分自编码器
采用视频编码领域广泛使用的率失真优化方法,同时降低比特率和语音失真。在率失真优化变分自编码器中,不是限制表示的维度,而是直接限制编码该表示所需的比特数。
通过改变率失真权衡,可以训练速率可控的量化器。最终使用约500比特/秒的平均比特率,仍保有足够信息重建可懂语音。
性能评估
在完整数据集上的评估结果显示,深度冗余技术单独使用即可将数据包丢失的影响减少约一半。当与低比特率冗余技术结合使用时,数据包丢失的影响变得非常小,与原始未压缩语音相比仅退化0.1平均意见得分。
这项工作是改进音频编解码器的众多贡献之一,相关开源实现已可供开发使用,目标是以完全兼容的方式更新音频编解码器标准。