关于rtc:火山引擎-RTC-音频-AI-降噪的应用与实践

35次阅读

共计 5038 个字符,预计需要花费 13 分钟才能阅读完成。

本文有局部演示音视频请移步 字节跳动技术团队微信 进行观看

从视频会议到近程医疗,从连麦开黑到陪伴社交,疫情常态化减速了线下流动线上化,逐步扭转了人们的生产生存形式。其中,音频品质很大水平上影响着通话体验,而噪声又很大水平决定音频品质。比方,居家办公场景,就流传着“居家办公,必有街坊装修”的定律。也是因为装修声会很大水平影响参加效率,所以对居家办公的同学带来了很大的影响。火山引擎 RTC,集成了自研的深度学习降噪计划,来应答游戏、互娱、会议等实时音视频沟通场景下的噪声影响。

让咱们看一下 RTC AI 降噪在会议、游戏、居家场景下的降噪成果比照。

【点击进入原文观看演示音视频】

通过下面的比照成果能够显著看到不同噪声对线上生产、生存场景的影响,以及通过 AI 降噪达到的降噪成果。RTC AI 音频降噪采纳了经典的 CRN 网络结构【参考文献 1】作为降噪框架。CRN 网络结构由 Encoder、Recurrent Layer 和 Decoder 三局部组成。这种构造兼具了 CNN 的深层特色抽取能力和递归网络的记忆能力,体现出了比纯 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 类噪声都打消的很洁净,然而针对会议室的远场语音就会带来伤害。为了均衡这两者,咱们次要采取了如下的一些策略来改良:

  1. 剔除噪声脏样本:去掉蕴含“说话声”的噪声样本,防止噪声中蕴含内容清晰的语音,导致推理时将远场人声误判为噪声。
  2. 输出特色进行幅度规整:保障不同幅度的语音提取的特征值是十分靠近的,剔除幅度的影响。
  3. 在静音段局部应用克制力度大的损失函数,而在人声局部应用爱护力度更大的损失函数。来保障非语音段强降噪、而语音段高保真的目标。
  4. 针对小语音段,在计算损失函数时晋升对于语音有损的惩办力度。

咱们以轻微带噪语音的 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 产品中音频、视频、网络等根底性能的研发,通过极致的工程和音视频算法,打磨顶级的实时音视频根底体验,期待优良同学的退出!

正文完
 0