使用WaveNetEQ改善Google Duo音频质量

互联网电话已成为数百万人生活中不可或缺的一部分-因此,他们简化了工作流程并与亲人联系。为了通过Internet转移呼叫,呼叫数据被分解成称为“包裹”的小片段。数据包从发送者到接收者通过网络,在网络中被收集回以接收连续的视频和音频流。但是,数据包通常以错误的顺序和错误的时间到达接收者-通常称为抖动。(颤抖)-或完全迷失了。这些问题降低了通话质量,因为收件人必须设法填补空白,这严重影响了音频和视频。例如,通过Google Duo进行的呼叫中有99%发生丢包,抖动过多或网络延迟。其中,有20%的呼叫由于网络问题丢失了3%以上的音频数据,而10%的呼叫丢失了8%以上的数据。


简化的网络问题图

为了使实时通信更加可靠,您必须以某种方式处理尚未到达收件人的必要包裹。例如,如果您不提供连续的音频信号,您会听到中断和卡顿的声音,但是您不能称其为尝试一次又一次重复相同信号的理想解决方案-这会导致失真,并降低总体通话质量。在没有数据包的情况下处理这种情况的技术称为“数据包丢失隐藏”(PLC)。接收器的PLC模块负责创建音频(或视频),以填充由数据包丢失,强烈抖动或网络问题(无论如何导致缺少必要数据)引起的中断。

为了解决这些音频问题,我们在Duo中引入了一个称为WaveNetEQ的新PLC系统。这是一个生成模型基于WaveRNN技术DeepMind,培训了大量的身体语言数据真实地补充语音片段。她能够完全合成语音缺失片段的声音信号。由于对Duo的调用经过端到端加密,因此所有处理都必须在设备本身上进行。WaveNetEQ模型对于电话来说足够快,同时与其他现有系统相比,仍然提供出色的音频质量和听起来更自然的PLC。

用于Duo的新型PLC系统


像许多其他基于Web的通信程序一样,Duo也基于开源WebRTC项目。为了掩盖数据包丢失的后果,NetEQ系统组件使用信号处理方法分析语音并产生连续的连续性-对于较小的丢失(最长20 ms)效果很好,但是当数据包丢失导致60 ms的通信中断时听起来就很糟糕或更长。在这种情况下,语音变得类似于机器人的重复语音-不幸的是,这种特征性声音对于许多通过Internet拨打电话的粉丝来说是众所周知的。

为了提高丢包处理的质量,我们用WaveRNN的修改版替换了NetEQ PLC。这是一个专为语音合成而设计的递归神经网络,由两部分组成-自回归和条件神经网络。自回归神经网络负责信号的连续性,并产生短期和中期语音结构。在其运行过程中,每个生成的片段都取决于网络的先前结果。条件神经网络会影响自回归,因此会产生与较慢的传入数据相对应的音频信号。

但是,WaveRNN与其前身WaveNet一样,其创建目的是将文本转换为语音(文本到语音,TTS)。由于WaveRNN是TTS模型,因此可以得到有关需要说什么以及如何说的信息。空调网络以构成音调的词和特征的音素形式直接在输入端接收此信息(诸如音调或语调之类的非文本信息)。从某种意义上说,空调网络能够“展望未来”,然后将自回归网络重定向到其相应的声音。在PLC系统和实时通讯的情况下,我们将没有这种情况。

为了创建功能性的PLC系统,您既需要从当前语音(即从过去的语音)中提取上下文,又要产生一个可以接受的声音以进行继续。我们的解决方案WaveNetEQ可以同时做到。它使用了一个自动回归网络(在丢包的情况下会继续发声)和一个条件神经网络,该网络模拟长期症状,例如语音特征。之前的音频信号的频谱图被馈送到条件神经网络的输入,从中提取有限数量的信息来描述韵律和文本内容。这种集中的信息被馈入自回归神经网络,将其与最近的音频结合起来以预测下一个声音片段。

这与我们在WaveNetEQ培训期间遵循的过程略有不同。然后,自回归神经网络接收到一个真实的声音样本作为下一步的输入,而不是使用先前的样本。在这种称为教师强迫的过程中,即使模型的预测质量较差,也可以保证该模型即使在训练的早期也能学到有价值的信息。当模型经过全面训练并用于音频或视频通话时,强加训练仅用于在第一个样本上“预热”模型,此后它已经收到了自己的输出。


WaveNetEQ体系结构。在自回归神经网络的操作过程中,我们通过强加训练来“热身”它。之后,她已经拥有了自己的出口到入口。来自音频的较长部分的低频频谱图被用作空调神经网络的输入。

此模型应用于Duo抖动缓冲区中的音频数据。丢包后,当通信恢复并且真实音频信号继续到达时,我们会仔细组合合成和真实音频流。为了最好地组合这两个信号,该模型产生的输出比必要的要多,然后从一个平滑过渡到另一个。这使过渡平滑且几乎无声。


在60毫秒滑动窗口上模拟音频流中的PLC事件。蓝线是真实的音频,包括PLC的过去和将来的部分。在每次测量时,橙色线代表WaveNetEQ系统将预测的声音是否沿垂直的灰色线被剪切的合成音频。

60 ms丢包

[ 注意 perev。:音频示例在外观上太笨拙,因为Habr编辑器不提供嵌入音频文件的功能。这是mp4带有一个音频而没有图片的外观。]

NetEQ


WaveNetEQ


网络均衡器


WaveNetEQ


120毫秒

NetEQ数据包丢失


WaveNetEQ


网络均衡器


WaveNetEQ


我们保证可靠性


PLC中要考虑的重要因素之一是神经网络适应可变输入信号的能力,例如,当有多个说话的人或背景噪声变化时。为了确保该模型对广泛用户的可靠性,我们对WaveNetEQ进行了训练,该方法基于从100多种使用48种不同语言的人那里获取的语音数据。这使模型可以学习人类语音的一般特征,而不是特定语言的特征。为了确保WaveNetEQ在后台出现噪音的情况下的运行,例如,当您在火车或咖啡馆里接听电话时,我们通过将数据与来自广泛数据库的背景噪音进行混合来补充数据。

尽管我们的模型能够学习如何合理地继续您的语音,但它只能在很短的时间内起作用-它可以结束音节,但无法预测单词。在长时间内丢包的情况下,我们会逐渐减小音量,在120 ms之后,该模型只会产生静默状态。另外,为确保模型不会产生错误的音节,我们使用Google Cloud Speech-to-Text API检查了WaveNetEQ和NetEQ的声音样本并发现该模型实际上不会改变结果文本中错误的百分比,即语音识别过程中发生的错误数量。我们在Duo进行了WaveNetEQ的试验,其使用对呼叫质量和用户体验产生了积极影响。WaveNetEQ已经可以在Pixel 4手机上的所有Duo通话中使用,现在我们将其部署在其他手机上。

All Articles