概述
为了给用户提供更好的语音体验,噪声抑制(Noise Suppression)作为语音增强技术(Speech Enhancement)的一种被广泛地用于电信网络,线上音视频会议,语音转写等系统中。它通过各种技术手段,识别并去除输入音频信号中的非目标信号,从而达到降噪的目的。传统的做法是对输入音频进行数字信号处理(如Wiener滤波器,Kalman滤波器等),估计出噪声信号的统计学特征并予以去除。近年来,随着人工智能的快速发展,深度学习(Deep Learning)技术,尤其是神经网络架构(Neural Network Architectures)在处理非平稳噪声(non-stationary)方面展现出巨大的潜力。RNNoise将上述两种方法结合使用,取得了不错的效果。
RNNoise简介
RNNoise是由Xiph.Org基金会推出的一个噪声抑制开源项目,可以以库文件的方式对外提供。它结合了循环神经网络(RNN)和传统信号处理技术,旨在为用户提供低成本,高性能,跨平台的实时降噪解决方案。RNNoise在普通配置的硬件上即可正常运行,目前已集成到多个开源软件(如webrtc,OBS Studio,LV/VST2/LADSPA plugin,ALSA plugin等)中。
RNNoise的总体框架如下图所示。通过循环神经网络计算出输入音频信号在各个频段上的增益,对其做类似语音均衡式的处理,从而达到噪声抑制的目的。
RNNoise评测
RNNoise的最新版本v0.2于2024年4月发布,使用公开的音频数据训练模型,并基于不同CPU架构做了性能优化。我们在x86 windows平台上对其进行了初步评测,直接使用RNNoise预训练模型,在有背景噪音的办公室,音频信号经RNNoise处理前后的波形图对比如下:
频谱图对比如下:
测试发现RNNoise能够实现音频信号的实时处理,输入音频中的背景噪声也能够得到一定抑制,但目标声音信号也受到了一些影响,导致输出声音的音质跟原始信号有差别,听起来有些发闷。所以在实际工程使用中,RNNoise需要和整个音频处理系统进行审慎的适配。某些集成了RNNoise的软件(如ALSA plugin)还提供了额外的控制选项(如wet_dry_control),用原始音频信号对RNNoise的处理结果进行补偿。
总之,利用神经网络进行噪声估计,将AI技术与传统降噪算法相结合,在最近AI爆发式发展的背景下,非常值得我们进一步学习研究。
开源地址:
参考文献
- J.-M. Valin, “A Hybrid DSP/Deep Learning Approach to Real-Time Full-Band Speech Enhancement,” International Workshop on Multimedia Signal Processing, 2018.
- C. C. Doumanidis, C. Anagnostou, E.-S. Arvaniti, and A. Papadopoulou,”RNNoise-Ex: Hybrid Speech Enhancement System based on RNN and Spectral Features“,arXiv preprint arXiv:,2021.