本文有部分演示音视频请移步 字节跳动视频云技术团队微信文章 进行观看
🌟疫情加速了线上生活,从Zoom到 telemedicine,语音通话和陪伴社交全面线上化,音频质量成为关键体验指标!🏠在家办公,装修声成了无声的打扰者,严重影响效率,让人头疼不已。但这不再是问题,火山引擎RTC凭借其自主研发的深度学习降噪技术,如魔法般消除干扰,无论是游戏开黑还是团队会议,都能提供清晰无杂音的声音盛宴。🚀让居家办公也能高效无忧,享受高质量的沟通体验!SEO优化提示:#音频质量 #在线生活 #深度学习降噪 #居家办公 #语音通话体验
让我们看一下 RTC AI 降噪在会议、游戏、居家场景下的降噪效果对比。
会议场景:
游戏场景:
居家场景:
🌟通过直观的对比分析,我们深刻认识到各类噪声对线上生活与工作场景的显著干扰,而RTC AI的AI音频降噪技术则以卓越成效诠释了其强大的去噪实力。💡CRN网络架构,源于文献【1】,是RTC的核心降噪利器——它由Encoder、精巧的Recurrent Layer和Decoder三大模块构成。这种创新设计融合了CNN的深层特征提取与GRU的持久记忆能力,展现出超越传统CNN或GRU的独特优势,显著提升了音频质量。🏆
CRN网络结构
在具体落地到产品的过程中,我们在上述基础模型中,解决了实际场景中出现的五大问题:
1. 如何应对各种复杂的设备,多样的环境
2. 如何在满足低延时条件下,提升模型效果
3. 如何在满足低计算量条件下,提升模型效果
4. 如何平衡强降噪和高保真
5. 如何应对对音乐的损伤
🌟🚀提升算法效能,保障语音纯净与实时交互!📈🎉优化速度与稳定性?秘密在于精准噪声消除算法的升级!🎯我们采用尖端技术,针对各类噪音环境,如会议喧嚣、音乐震耳,实施超乎想象的动态降噪,让声音清晰流畅,每一字句都精准无误。🛡️实时音视频场景?我们的法宝是全面兼容与卓越性能。💻无论是高清视频通话还是音乐会现场直播,都能轻松应对,确保信息传递零延迟,互动无缝衔接。🎶💃复杂场景下的用户体验?我们深知挑战所在,因此特别打造了适应性强的系统,无论环境如何变化,都能稳定运行,为用户提供最流畅、无干扰的音频体验。🌐💪五大问题逐一破解,只为让你的声音在任何场合都如丝般顺滑。🌍🎉让我们一起见证技术的力量,让每一次语音交互都成为享受!👨💻👩💻
一、训练数据增广
在我们实际生活中,降噪算法所需要面临的场景是非常复杂多样的。
会议中的噪音挑战重重:不论是坐在座位上还是身处会议室,设备需要滤除不请自来的背景噪音;会议室的多人声、远距离拾音和混响问题对降噪技术提出了高要求;在移动通勤中开会,如公交、地铁或高铁,噪声来源复杂,包括人声与机械声交织。此外,室内游戏中的语音通信也需要应对屏幕操作声、按键声乃至桌椅碰撞的噪音干扰。对于这些场景,高效的降噪算法需具备强大的多类别噪声抑制能力,以确保清晰的沟通环境。
不仅如此,在不同环境下常用的设备也是不尽相同的。常用设备主要可以归类为以下几类:
🌟了解设备差异,音频处理关键在于!📱主流安卓手机虽内置强降噪,但仍有噪音干扰和人声失真挑战。我们需要针对这些”二手”音频,定制专属的降噪算法。🎯覆盖残留噪音,修复受损人声,每个步骤都精细到极致。这样才能让纯净音质在各种设备上无缝呈现!🎶
🌟💡对于个人外设的安全使用,至关重要的一点是防范潜在风险。无线耳机如蓝牙耳机,虽便捷但可能引发连接难题,时不时地让你耳朵“闹革命”;而有线耳机虽然稳定,却可能带来高频噪音的隐形攻击。降噪耳机更是锦上添花,它们强大的音频处理功能可能会成为隐私泄露的薄弱环节。记得选择信誉良好、技术过硬的产品,保护你的听力和信息安全哦!🛡️💻
下为耳机杂音噪声降噪前后的表现。
降噪前:
降噪后:
我们将在数据增广过程中着重应对这类问题。将增广中噪声的类型打上标签、对不同的场景使用不同的增广配置文件即可配置不同的训练增广方案。下面简单说明一下我们常用的训练数据增广手段。
基本增广手段包括:
音量调整:现实生活中采集到的音量大小往往不同,用于模拟不同采集音量的情况;高低通滤波:不同设备的有效频率不同,如蓝牙耳机往往只有 4k 的有效频段;削波模拟:模拟爆音之后的音频效果;房间冲击响应:模拟不同房间下的混响场景;破音信号模拟:增加对丢帧信号的模拟模拟噪声变化:模拟不同噪声环境,如常见场景的噪声叠加和变化;
我们近期针对语音中的啸叫信号着重进行了模拟和处理。通过线下采集,以及线上仿真模拟的方式生成了大量的不同啸叫周期、频率范围的啸叫语音,并以较低的信噪比融合进原始语音中。
啸叫语音线上模拟
在增加了上述啸叫数据的基础上,我们又单独对啸叫语音施加强抑制的损失函数,消除了大部分的啸叫语音。
我们测试了各种设备、各种场景下的 500+ 种噪声,均能实现理想的消除效果。
二、压缩模型计算量
实时率 (Real Time Factor) 是衡量算法的 CPU 消耗的指标。实时通信下场景,对模型算力要求极为苛刻。为了让模型在移动端可流畅运行,我们主要在特征压缩、模型精简和引擎加速三个方面进行了改进。
(1) 特征压缩
在原始的 CRN 的文章中,使用的是短时傅里叶 (STFT) 特征,如 WebRTC 中默认使用的 257 维的 STFT 特征。但是 STFT 在高频处包含的信息量已经较少,根据人耳听觉特性进行频谱压缩已经是常见的方案,如 RNNoise 中使用 ERB 方案。我们采用根据梅尔听觉特性设计的滤波器进行频谱压缩的方案。
通过将高维特征压缩到低维,能将计算量压缩为原来的 1/3。
(2) 模型精简
如前文所述,我们使用了 CRN 结构作为主要的结构。为了将整体的模型的计算量进行进一步的压缩,我们尝试了很多的策略,主要包括:
将其中的卷积或者转置卷积模块替换为深度可分离卷积或者可分离转置卷积使用空洞卷积,使用更少层数能够获得更长的感受野将 GRU 模块替换为分组 GRU 模块使用稀疏化工具,进一步压缩通道数的大小
通过上述一系列优化,模型的计算量被压缩到数十兆 MACS 的计算量级,模型的参数量在 100K 以内。
(3) 引擎加速
最后我们在字节跳动的推理引擎 ByteNN 上,与智创语音团队和 AI 平台团队合作,新增了适配音频算法的流式推理能力,来提升设备上的计算效率。主要包括:
架构支持子图推理 / 提前退出等流式推理能力节省算力包括卷积 / GRU 等流式算子的支持ARM / X86 等平台汇编级别优化加速
通过上述手段,目前将端到端的 48K 降噪模型的 RTF 指标在各端机型上都控制在 1% 以内。
三、降低延时
为了保证端到端延时在较低水平,AINR 直接使用 AEC 输出的频域特征作为输入,减少了一次 ISTFT 和一次 STFT 的计算时间以及引入的(窗长-步长)的延时(一般在 20ms 左右)。然而在实验中我们发现,由于 AEC 的非线性处理的操作是直接在频谱的操作,导致了 STFT 的不一致性,即原始的 STFT 经过 ISTFT 后再做 STFT 的值与原始值不一致。所以直接使用 AEC 的频域输出(频域特征 1 )作为模型的输入和使用频域特征 2 作为模型输入的处理结果略有不同,前者在个别场景会出现语音损伤。
我们通过一系列的工程手段,解决了这种不一致性,使得处理过程可以绕过上述的 ISTFT 和 STFT 过程,节省了 20 毫秒以上的时间。如此节省下来的时间,可用于增加模型的延时,但保证系统的总体延时不会增加。增加模型的延时对区分清辅音和噪音有很大的帮助。如左、中例子所示,清辅音在频谱和听感上和噪声十分接近,在不知道下文的情况下模型很难做出准确的判断。于是我们引入 20~40ms 不等的较短延时,利用未来的信息帮助模型做当前帧的判断,如右例子所示,加入延时后的非语音段要明显比优化前干净。
四、降噪与保真的平衡
降噪效果中,强降噪和高保真往往是天平的两端,尤其是针对小模型。强力的降噪往往会带来部分语音的损伤,对语音高保真往往会残留部分的小噪声。比如,在针对 babble 的降噪实验过程中发现,如果采用强力降噪模型,能够把办公室的 babble 类噪声都消除的很干净,但是针对会议室的远场语音就会带来损伤。为了平衡这两者,我们主要采取了如下的一些策略来改进:
剔除噪声脏样本:去掉包含“说话声”的噪声样本,避免噪声中包含内容清晰的语音,导致推理时将远场人声误判为噪声。输入特征进行幅度规整:保证不同幅度的语音提取的特征值是非常接近的,剔除幅度的影响。在静音段部分使用抑制力度大的损失函数,而在人声部分使用保护力度更大的损失函数。来保证非语音段强降噪、而语音段高保真的目的。针对小语音段,在计算损失函数时提升对于语音有损的惩罚力度。
我们以轻微带噪语音的 PESQ 指标作为语音保真的指标。以纯噪部分的残留噪声平均分贝作为噪声抑制的指标。下表列出了几次迭代在会议场景下的指标改进。
第一版第二版第三版语音保留3.723.763.85噪声残留(dB)-75.88-105.99-111.03
从几个版本降噪模型的客观指标来看,语音保护指标在较小的范围内波动,噪声残留则不断减少。可以看出 RTC AI 降噪模型在较大程度保护语音的前提下,噪声抑制力度不断提升。
五、实时音乐识别
在互娱场景,往往有较多的音乐场景。由于部分音乐元素和噪声的特点非常接近,如果直接应用深度学习降噪模型,音乐会被压制得很卡顿。如果把音乐保护加入模型训练,其他语料中的噪声压制的效果会受到影响。因此,准确识别出声音是音乐还是噪声就变得非常重要,能在识别出音乐之后关闭降噪,同时也不会影响正常场景下的降噪力度。
我们的音乐识别模型和【参考文献 2 】方法非常相似。都是在 PANNS 【参考文献 3 】的 527 类语音检测的基础上,使用语音、音乐和噪声三类数据进行微调。考虑这类方法的一个主要原因是利用 CNN 对长时语音(4 秒窗长)进行建模,以 0.33 秒为步长输出判别结果,来代替如 GRU 类模型帧级别的输出,从而增强识别的效果和稳定性。相对于原文,我们进一步对模型进行了压缩和裁剪,达到了 4M FLOPS 的计算量 和 20KB 的参数量的尺寸,保证在低端的移动设备上可以运行。同时,在进入音乐时,增加 2 秒延时的多帧融合判断以及离开音乐时 4 秒延时的多帧融合判断,进一步提升了音乐识别的稳定性。在音乐误识别率为 0% 的情况下,召回率达到了 99.6%。
下图展示了 SIP 场景下的音乐共享场景的一个例子。因为 SIP 场景下,共享音乐和采集信号是混合后再传输的,所以共享的信号和采集的信号使用的是同样的处理通路。在实际测试中,我们发现即使用很轻量级的传统降噪方案也会对音乐产生损伤。通过使用音乐检测,保护相对应的音乐段,可以有效缓解该损伤问题。
六、效果和指标的对比
通过上述几点的改进,目前无论是主观听感,还是客观指标,火山引擎 RTC 中的降噪算法已经处于行业领先位置。
我们在高中低三种信噪比条件的白噪声、键盘声、babble 噪声、空调噪声四种噪声环境下以及 Windows 和 MAC 设备中,测试了火山引擎 RTC 和行业同类产品的降噪结果的 POLQA 分数。从表中可以看出,无论是在这四种噪声场景上,还是在不同设备上,我们的降噪算法均优于同类产品。
展望
在应用 AI 降噪之后,我们能够消除环境噪声带来的各种影响。但除了噪声影响之外,影响语音质量的还包括采集硬件的损伤、硬件处理算法的损伤、传输通道的损伤等等,后续我们会进一步在软件算法中缓解这些损伤,以期达到使用任何硬件均能达到类似录音棚的高音质效果。
参考文献
【1】Tan K, Wang D L. A convolutional recurrent neural network for real-time speech enhancement[C]//Interspeech. 2018, 2018: 3229-3233.
【2】Reddy C K A, Gopa V, Dubey H, et al. MusicNet: Compact Convolutional Neural Network for Real-time Background Music Detection[J]. arXiv preprint arXiv:2110.04331, 2021.
【3】Kong Q, Cao Y, Iqbal T, et al. Panns: Large-scale pretrained audio neural networks for audio pattern recognition[J]. IEEE/ACM Transactions on Audio, Speech, and Language Processing, 2020, 28: 2880-2894.
关于我们
火山引擎 RTC 团队,作为全球领先的音视频团队,我们致力于提供全球互联网范围内高品质、低延时的实时音视频通信能力,目前已经支撑了抖音、TikTok、清北网校、字节系游戏,视频会议等多个场景的应用,服务 10 亿用户,遍布全球每一个角落。
我们是 RTC Lab 部门,负责 RTC 产品中音频、视频、网络等基础功能的研发,通过极致的工程和音视频算法,打磨顶级的实时音视频基础体验,期待优秀同学的加入!