作者|陈莉从视频会议到远程医疗,从连麦到社交陪伴,疫情的常态化加速了线下活动线上化,逐渐改变着人们的生产方式和生活方式。其中,音质对通话体验的影响很大,而噪音很大程度上决定了音质。例如,在居家办公场景中,流传着“居家办公必须由邻居装修”的法则。也正因为装修的声音会极大的影响参与效率,所以对在家办公的同学影响很大。火山引擎RTC集成了自主研发的深度学习降噪方案,应对游戏、互动娱乐、会议等实时音视频通信场景中噪声的影响。下面来看看RTCAI降噪在会议、游戏、家居场景下的降噪效果对比。会议场景、游戏场景、家居场景通过以上对比效果可以清晰的看到不同噪音对线上生产生活场景的影响,以及通过AI降噪实现的降噪效果。RTCAI音频降噪采用经典的CRN网络结构[参考文献1]作为降噪框架。CRN网络结构由三部分组成:Encoder、RecurrentLayer和Decoder。这种结构结合了CNN的深度特征提取能力和递归网络的记忆能力,表现出比纯CNN网络或纯GRU网络更好的降噪能力。在将CRN网络结构实现到产品的过程中,我们在上述基础模型中解决了实际场景中的五个主要问题:如何应对各种复杂的设备,以及如何在低延迟下提升各种环境的性能状况。如何在低计算量的情况下提高模型效果如何平衡强降噪和高保真在损坏的情况下,最大程度地抑制噪声,实时音视频中的交互体验场景,尤其是会议、音乐等复杂场景,可以得到提升。下面详细说一下我们是如何解决以上五个问题的。1.训练数据增强在我们的现实生活中,降噪算法需要面对的场景非常复杂多样。以“会议”场景为例。会议环境的多样性给降噪算法带来了诸多挑战:当在座位上开会时,设备会收集相邻座位的声音。这时,我们期望算法能够去除一定的噪声。背景发言;在会议室开会,由于发言者与麦克风的距离不同,降噪算法面临多声、远距离拾音、混响等问题;如果是在公交车、地铁、高铁上开会,除了人声之外,还会引入车辆信号、车站广播等语音。还有在室内玩游戏时使用游戏语音的例子。这时候,除了环境噪音,还有敲击屏幕或键盘、敲桌子等各种声音。这时候降噪算法就需要能够抑制足够多的多类噪声。不仅如此,不同环境下常用的设备也不同。常用的设备主要可以分为以下几类:除了使用场所的不同,另一个主要的区别在于不同设备的采集特性不同,音频预处理算法不同。以目前主流的安卓手机为例,出厂时往往自带很强的抑制降噪算法,但是在实际体验中还是存在较多的噪音和人声受损的问题,这时就需要我们的降噪算法来适应这个“二手”音频数据类型,包括需要覆盖残留形式的噪声数据和损坏形式的人声数据。此外,个人外接设备也需要格外小心。例如,有线耳机可能会产生高频噪音,而蓝牙耳机可能会引入不稳定的连接,降噪耳机还带有额外的音频处理能力。我们将在数据扩充过程中关注这些类型的问题。可以通过标记增强中的噪声类型并针对不同场景使用不同的增强配置文件来配置不同的训练增强方案。下面简单介绍一下我们常用的训练数据增强方法。基本的增广方法包括:体积调整:现实生活中采集的体积往往不同,用于模拟不同采集体积的情况;高低通滤波:不同设备的有效频率不同,比如蓝牙耳机往往只有4k的有效频段;削波模拟:模拟爆音后的音频效果;房间冲击响应:模拟不同房间的混响场景;破解音信号模拟:增加丢帧信号的模拟;模拟噪声变化:模拟不同的噪声环境,比如常见场景的噪声叠加和变化;我们最近关注的是语音中啸叫信号的模拟和处理。通过离线采集和在线模拟,生成大量不同啸叫周期和频率范围的啸叫声音,融合成信噪比较低的原始声音。我们在将上述啸叫数据添加到啸叫声在线模拟的基础上,对啸叫声单独应用了一个抑制性很强的损失函数,消除了大部分啸叫声。我们在各种设备和场景下测试了500+种噪音,均能达到理想的抵消效果。2.压缩模型计算实时率(RealTimeFactor)是衡量算法CPU消耗的指标。在实时通信场景中,对模型算力的要求极为苛刻。为了让模型在移动端流畅运行,我们主要做了三个方面的改进:特征压缩、模型简化、引擎加速。(1)特征压缩CRN原文章中使用了短时傅里叶(STFT)特征,比如WebRTC默认使用的257维STFT特征。但是STFT在高频处包含的信息较少,基于人类听觉特性的频谱压缩已经是一种常见的方案,比如RNNoise中使用的ERB方案。我们使用根据Mel的听觉特性设计的滤波器用于频谱压缩方案。通过将高维特征压缩为低维特征,计算量可以减少到原来的1/3。(2)模型缩减如前所述,我们使用CRN结构作为主要结构。为了进一步压缩整体模型的计算量,我们尝试了很多策略,主要包括:将卷积或转置卷积模块替换为depth-wiseseparableconvolution或separabletransposeconvolutionusingholes卷积,使用更少的层数得到更长的receptivefield用分组的GRU模块替换GRU模块使用稀疏工具进一步压缩通道数的大小通过以上一系列的优化,将模型的计算量压缩到几十兆MACS的计算级别,模型参数量在100K以内。(3)引擎加速最后,在字节跳动的推理引擎ByteNN上,我们与智创的语音团队和AI平台团队合作,增加了适配音频算法的流式推理能力,以提高设备端的计算效率。主要包括:架构支持子图推理/提前退出等流式推理能力,节省算力包括卷积/GRU等流式算子支持ARM/X86等平台汇编级优化加速通过以上手段,端到端end48K降噪机型的RTF指标在所有机型上都控制在1%以内。3.减少延迟AINR为了保证端到端的延迟处于低水平,直接利用AEC输出的频域特性作为输入,减少了1个ISTFT和1个STFT的计算时间和引入了(窗口长度-步长)Delay(一般在20ms左右)。但是在实验中我们发现,由于AEC的非线性处理操作是直接对频谱进行操作,导致了STFT的不一致性,即经过ISTFT后的原始STFT值与原始值不一致。因此,直接使用AEC的频域输出(频域特征1)作为模型输入和使用频域特征2作为模型输入的处理结果略有不同,前者在某些场景下可能会造成语音损伤.我们通过一系列工程手段解决了这种不一致,使得处理过程可以绕过上述的ISTFT和STFT过程,节省了20多毫秒的时间。这样节省下来的时间可以用来增加模型的延迟,但是保证系统整体的延迟不会增加。增加模型的延迟对于区分清辅音和噪声有很大帮助。如左边和中间的例子所示,清辅音在频谱和听感上都非常接近噪声,在不了解上下文的情况下,模型很难做出准确的判断。所以我们引入较短的20-40ms的延迟,利用未来的信息帮助模型对当前帧做出判断。如右图所示,加入延迟后的非语音段明显比优化前更干净。4、降噪与保真度的平衡在降噪效果中,强降噪和高保真度往往是平衡的两端,尤其是对于小机型。强大的降噪往往会对一些声音造成伤害,高保真声音往往会留下一些细小的噪音。比如在针对babble的降噪实验中,发现如果使用强力降噪模型,办公室里所有的babble噪音都可以被非常干净的消除,但是会议室的远场语音会造成伤害.为了平衡两者,我们主要采用了以下策略来改进:Eliminationnoisedirtysamples:去除含有“说话声音”的噪声样本,避免噪声中出现清晰的声音,导致远场人声在推理时被误解.判断为噪声。输入特征的幅度正则化:保证从不同幅度的语音中提取的特征值非常接近,消除幅度的影响。在无声部分使用了抑制性强的损失函数,在人声部分使用了保护性更强的损失函数。保证非语音段降噪强,语音段高保真。对于小的语音片段,在计算损失函数时增加语音损失的惩罚。我们将PESQ指标用于轻微嘈杂的语音作为语音保真度的指标。以纯噪声部分残余噪声的平均分贝数作为噪声抑制指标。下表列出了几次迭代中会议场景的指标提升情况。第一版,第二版,第三版,语音保护3.723.763.85噪声残差(dB)-75.88-105.99-111.03从几个版本降噪机型的客观指标来看,语音保护指标小幅波动,并且噪音残留继续减少。可以看出,RTCAI降噪模型在更大程度保护语音的前提下,不断提升噪声抑制。5、实时音乐识别在互动娱乐场景中,往往会有更多的音乐场景。由于一些音乐元素和噪音的特性非常接近,如果直接应用深度学习降噪模型,音乐会被压得很卡。如果在模型训练中加入音乐保护,会影响其他语料的噪声抑制效果。因此,准确识别声音是音乐还是噪音非常重要。识别音乐后,可以关闭降噪,不影响正常场景下的降噪。我们的音乐识别模型与[参考文献2]非常相似。它们都是基于PANNS[参考文献3]中的527种语音检测,并使用三种类型的数据进行微调:语音、音乐和噪声。考虑这类方法的主要原因之一是利用CNN对长时语音(4秒窗长)进行建模,输出0.33秒步长的判别结果,替代模型的帧级输出例如GRU,从而提高识别的准确率。效果和稳定性。与原论文相比,我们进一步对模型进行了压缩和裁剪,实现了4MFLOPS的计算量和20KB的参数大小,保证了它可以在低端移动设备上运行。同时,加入了进入音乐时延迟2秒的多帧融合判断和离开音乐时延迟4秒的多帧融合判断,进一步提升了音乐识别的稳定性.音乐误识别率为0%,召回率达到99.6%。下图显示了SIP场景中的音乐共享场景示例。因为在SIP场景下,共享音乐和采集信号混合后传输,共享信号和采集信号使用相同的处理路径。在实际测试中,我们发现即使使用非常轻量级的传统降噪方案,也会对音乐造成损害。通过音乐检测来保护相应的音乐片段,可以有效缓解损坏问题。六、效果及指标对比通过以上几点的改进,火山引擎RTC中的降噪算法无论是主观听感还是客观指标都已经处于行业领先地位。我们在高、中、低三种情况下,在白噪声、键盘声、牙牙学语、空调噪声四种噪声环境下测试了火山引擎RTC及业内同类产品的降噪结果POLQA评分SNR,以及Windows和MAC设备。从表中可以看出,我们的降噪算法无论是在这四种噪声场景还是在不同的设备上都优于同类产品。期待应用AI降噪后,我们可以消除环境噪音的各种影响。但是,除了噪声的影响,语音质量的影响还包括采集硬件的损坏、硬件处理算法的损坏、传输通道的损坏。实现类似于录音棚的高品质音效。参考文献【1】TanK,WangDL.Aconvolutionalrecurrentneuralnetworkforreal-timespeechenhancement[C]//Interspeech.2018,2018:3229-3233.【2】ReddyCKA,GopaV,DubeyH,etal.MusicNet:用于实时背景音乐检测的紧凑型卷积神经网络[J]。arXiv预印本arXiv:2110.04331,2021.【3】KongQ,CaoY,IqbalT,etal.Panns:用于音频模式识别的大规模预训练音频神经网络[J]。IEEE/ACM音频、语音和语言处理交易,2020年,28:2880-2894。
