近些年,随着实时通信技术的发展,在线会议逐渐成为人们工作中不可或缺的重要办公工具,据不完全统计,线上会议中约有 75% 为纯语音会议,即无需开启摄像头和屏幕共享功能,此时会议中的语音质量和清晰度对线上会议的体验便至关重要。
作者|七琦
审校|泰一
前言
在现实生活中,会议所处的环境是极具多样性的,包括开阔的嘈杂环境、瞬时非平稳的键盘敲击声音等,这些对传统的基于信号处理的语音前端增强算法提出了很大的挑战。与此同时伴随着数据驱动类算法的快速发展,学界 [1] 和工业界 [2,3,4] 逐渐涌现出了深度学习类的智能语音增强算法,并取得了较好的效果,AliCloudDenoise 算法在这样的背景下应运而生,借助神经网络卓越的非线性拟合能力,与传统语音增强算法相结合,在不断的迭代优化中,针对实时会议场景下的降噪效果、性能消耗等方面进行了一系列的优化与改进,最终可以在充分保证降噪能力的同时保有极高的语音保真度,为阿里云视频云实时会议系统提供了卓越的语音会议体验。
语音增强算法的发展现状
语音增强是指干净语音在现实生活场景中受到来自各种噪声干扰时,需要通过一定的方法将噪声滤除,以提升该段语音的质量和可懂度的技术。过去的几十年间,传统单通道语音增强算法得到了快速的发展,主要分为时域方法和频域方法。其中时域方法又可以大致分为参数滤波法 [5,6] 和信号子空间法 [7],频域方法则包括谱减法、维纳滤波法和基于最小均方误差的语音幅度谱估计方法 [8,9] 等。
传统单通道语音增强方法具有计算量小,可实时在线语音增强的优点,但对非平稳突发性噪声的抑制能力较差,比如马路上突然出现的汽车鸣笛声等,同时传统算法增强后会有很多残留噪声,这些噪声会导致主观听感差,甚至影响语音信息传达的可懂度。从算法的数学理论推导角度来说,传统算法还存在解析解求解过程中假设过多的问题,这使得算法的效果存在明显上限,难以适应复杂多变的实际场景。自 2016 年起,深度学习类方法显著提升了许多监督学习任务的性能,如图像分类 [10],手写识别 [11],自动语音识别 [12],语言建模 [13] 和机器翻译 [14] 等,在语音增强任务中,也出现了很多深度学习类的方法。
图一 传统单通道语音增强系统的经典算法流程图
基于深度学习类的语音增强算法根据训练目标的不同大致可分为以下四类:
• 基于传统信号处理的混合类语音增强算法(Hybrid method)
这类算法多将传统基于信号处理的语音增强算法中的一个或多个子模块由神经网络替代,一般情况下不会改变算法的整体处理流程,典型代表如 Rnnoise[15]。
• 基于时频掩模近似的语音增强算法(Mask_based method)
这类算法通过训练神经网络来预测时频掩模,并将预测的时频掩模应用于输入噪声的频谱来重构纯净语音信号。
常用的时频掩模包括 IRM[16],PSM[17], cIRM[18] 等,训练过程中的误差函数如下式所示:
• 基于特征映射的语音增强算法(Mapping_based method)
这类算法通过训练神经网络来实现特征的直接映射,常用的特征包括幅度频谱、对数功率频谱和复数频谱等,训练过程中的误差函数如下式所示:
• 基于端到端的语音增强算法(End-to-end method)
这类算法将数据驱动的思想发挥到了极致,在数据集分布合理的前提下,抛却频域变换,直接从时域语音信号进行端到端的数值映射,是近两年广泛活跃在学术界的热门研究方向之一。
AliCloudDenoise 语音增强算法
一、算法原理
在综合考虑业务使用场景,对降噪效果、性能开销、实时性等诸多因素权衡后,AliCloudDenoise 语音增强算法采用了 Hybrid 的方法,将带噪语音中噪声能量和目标人声能量的比值作为拟合目标,进而利用传统信号处理中的增益估计器如最小均方误差短时频谱幅度 (MMSE-STSA) 估计器,求得频域上的去噪增益,最后经逆变换得到增强后的时域语音信号。在网络结构的选择上,兼顾实时性和功耗,舍弃了 RNN 类结构而选择了 TCN 网络,基本网络结构如下图所示:
二、实时会议场景下的算法优化
1、开会时旁边人多很吵怎么办?
问题背景
在实时会议场景中,有一类较为常见的背景噪声是 Babble Noise,即多个说话者的交谈声组成的背景噪声,此类噪声不仅仅是非平稳的,而且和语音增强算法的目标语音成分相似,导致在对这类噪声的抑制过程中算法处理的难度增大。以下列举了一个具体的实例:
问题分析与改进方案
经过对数十小时含有 Babble Noise 的办公室场景音频进行分析,同时结合人类的语音发声机制,发现这类噪声具有类长时平稳存在特性,众所周知,在语音增强算法中,上下文信息(contextual information)对算法效果有着非常重要的影响,所以针对 Babble Noise 这种对上下文信息更加敏感的噪声类型,AliCloudDenoise 算法通过空洞卷积(dilated convolutions)系统性地聚合模型中的关键阶段性特征,显式的增大感受野,同时额外的融合了门控机制(gating mechanisms),使得改进后的模型对 Babble Noise 的处理效果有了明显的改善。下图展示了改进前(TCN)与改进后(GaTCN)的关键模型部分的对比图。
在语音测试集上的结果表明,所提 GaTCN 模型在 IRM 目标下语音质量 PESQ[19] 较 TCN 模型提升了 9.7%,语音可懂度 STOI[20] 较 TCN 模型提升了 3.4%;在 Mapping a priori SNR[21] 目标下语音质量 PESQ 较 TCN 模型提升了 7.1%,语音可懂度 STOI 较 TCN 模型提升了 2.0%,且优于所有的 baseline 模型,指标详情见表一和表二。
表一 客观指标语音质量 PESQ 对比详情
表二 客观指标语音可懂度 STOI 对比详情
改进效果展示:
2、关键时刻怎能掉字?
问题背景
在语音增强算法中,吞字或特定字词消失如语句尾音消失的现象是影响增强后语音主观听感的一个重要因素,在实时会议场景中,因涉及到的语种多样,语者说话内容多样,这种现象更为常见,以下列举了一个具体的实例:
问题分析与改进方案
在分类构建的 1w+ 条语音测试数据集上,通过对增强后吞字、掉字现象发生的时机进行统计,并可视化其对应的频域特征,发现该现象主要发生在清音、叠音及长音等几类特定的音素或字词上;同时,在以信噪比为维度的分类统计中发现低信噪比情况下的吞字、掉字现象显著增多,据此,进行了以下三方面的改进:
• 数据层面:首先进行了训练数据集中特定音素的分布统计,在得出占比较少的结论后,针对性的丰富了训练数据集中的语音成分。
• 降噪策略层面:降低低信噪比情况,在特定情况下使用组合降噪的策略,即先进行传统降噪,再进行 AliCloudDenoise 降噪,此方法的缺点体现在以下两方面,首先组合降噪会增加算法开销,其次传统降噪不可避免的会出现频谱级音质损伤,降低整体的音质质量。此方法经实测确实会改善吞字、掉字现象,但因其缺点明显,并未在线上使用。
• 训练策略层面:在针对性的丰富了训练数据集中的语音成分后,确实会改善增强后吞字、掉字的现象,但仍存在该现象,进一步分析后,发现其频谱特征与某些噪声的频谱特征高度相似,导致网络训练局部收敛困难,基于此,AliCloudDenoise 算法采用了训练中辅助输出语音存在概率,而推演过程中不采纳的训练策略,SPP 的计算公式如下:
在语音测试集上的结果表明,所提双输出的辅助训练策略在 IRM 目标下语音质量 PESQ 较原模型提升了 3.1%,语音可懂度 STOI 较原模型提升了 1.2%;在 Mapping a priori SNR 目标下语音质量 PESQ 较原模型提升了 4.0%,语音可懂度 STOI 较原模型提升了 0.7%,且优于所有的 baseline 模型,指标详情见表三和表四。
表三 客观指标语音质量 PESQ 对比详情
表四 客观指标语音可懂度 STOI 对比详情
改进效果展示:
三、如何让算法的适用设备范围更广
对于实时会议场景来说,AliCloudDenoise 算法的运行环境一般包括 PC 端、移动端以及 IOT 设备等,尽管在不同运行环境中关于能耗的要求不同,但 CPU 占用、内存容量及带宽、电量消耗等都是我们关注的关键性能指标,为了使 AliCloudDenoise 算法能够广泛地为各个业务方提供服务,我们采用了一系列能耗优化手段,主要包括模型的结构化裁剪、资源自适应策略、权值量化与训练量化等,并通过一些辅助收敛策略在精度降低 0.1% 量级的情况下最终得到了约 500KB 的智能语音增强模型,极大地拓宽了 AliCloudDenoise 算法的应用范围。
接下来我们首先对优化过程中涉及到的模型轻量化技术做简单的回顾,然后对资源自适应策略和模型量化展开介绍,最后给出 AliCloudDenoise 算法的关键能耗指标。
1、采用的模型轻量化技术
针对深度学习模型的轻量化技术,一般指对模型的参数量及尺寸、运算量、能耗、速度等 “运行成本” 进行优化的一系列技术手段。其目的是便于模型在各类硬件设备的部署。同时,轻量化技术在计算密集型的云端服务上也有广泛的用途,可以帮助降低服务成本、提升相应速度。
轻量化技术的主要难点在于:在优化运行成本的同时,算法的效果与泛化性、稳定性不应受到明显的影响。这对于常见的 “黑箱式” 神经网络模型来说,在各方面都具有一定的难度。此外,轻量化的一部分难点也体现在优化目标的差异性上。
比如模型尺寸的降低,并不一定会使得运算量降低;模型运算量的降低,也未必能提高运行速度;运行速度的提升也不一定会降低能耗。这种差异性使得轻量化难以 “一揽子” 地解决所有性能问题,需要从多种角度、利用多种技术配合,才能达成运行成本的综合降低。
目前学术界与工业界常见的轻量化技术包括:参数 / 运算量子化、剪枝、小型模块、结构超参优化、蒸馏、低秩、共享等。其中各类技术都对应不同的目的与需求,比如参数量化可以压缩模型占用的存储空间,但运算时依然恢复成浮点数;参数 + 运算全局量子化可以同时降低参数体积,减少芯片运算量,但需要芯片有相应的运算器支持,才能发挥提速效果;知识蒸馏利用小型的学生网络,学习大型模型的高层特征,来获得性能匹配的轻量模型,但优化存在一些难度且主要适合简化表达的任务(比如分类)。
非结构化的精细剪裁可以将最多的冗余参数剔除,达成优良的精简,但需要专用硬件支持才可以减少运算量;权重共享可显著降低模型尺寸,缺点是难以加速或节能;AutoML 结构超参搜索能自动确定小型测试结果最优的模型堆叠结构,但搜索空间复杂度与迭代估计的优良度限制了其应用面。下图展示了 AliCloudDenoise 算法在能耗优化过程中主要采用的轻量化技术。
2、资源自适应策略
资源自适应策略的核心思想是模型可以在资源不充足的情况下自适应的输出满足限定条件的较低精度的结果,在资源充足时就做到最好,输出最优精度的增强结果,实现此功能最直接的想法是训练不同规模的模型存放在设备中,按需使用,但会额外增加存储成本,AliCloudDenoise 算法采用了分级训练的方案,如下图所示:
将中间层的结果也进行输出,经联合 loss 最终进行统一约束训练,但实际验证中发现存在以下两个问题:
• 比较浅层的网络抽取的特征比较基础,浅层网络的增强效果较差。
• 增加了中间层网络输出的结构后,最后一层网络的增强结果会受到影响,原因是联合训练过程中会希望浅层网络也可以输出较为不错的增强结果,破坏了原有网络结构抽取特征的分布布局。
针对以上两个问题,我们采用了多尺度 Dense 连接 + 离线超参预剪枝的优化策略,保证了模型可动态按需输出精度范围不超过 3.2% 的语音增强结果。
3、模型量化
在模型所需的内存容量及带宽的优化上,主要采用了 MNN 团队的权值量化工具 [22] 和 python 离线量化工具 [23] 实现了 FP32 与 INT8 之间的转换,方案示意图如下:
4、AliCloudDenoise 算法的关键能耗指标
如上图所示,在 Mac 平台的算法库大小上,竞品为 14MB,AliCloudDenoise 算法目前主流输出的算法库为 524KB、912KB 和 2.6MB,具有显著优势;在运行消耗上,Mac 平台的测试结果表明,竞品的 cpu 占用为 3.4%,AliCloudDenoise 算法库 524KB 的 cpu 占用为 1.1%,912KB 的 cpu 占用为 1.3%,2.6MB 的 cpu 占用为 2.7%,尤其在长时运行条件下,AliCloudDenoise 算法有明显优势。
四、算法的效果技术指标评测结果
针对 AliCloudDenoise 算法的语音增强效果的评估目前主要集中在两个场景上,通用型场景和办公室会议场景。
1、通用场景下的评测结果
通用型场景的测试集中,语音数据集由中文和英文两部分组成(共计约 5000 条),噪声数据集则包含了常见的四类典型噪声,平稳噪声(Stationary noise)、非平稳噪声(Non-stationary noise)、办公室噪声(Babble noise)和室外噪声(Outdoor noise),环境噪声强度设置在 - 5 到 15db 之间,客观指标主要通过 PESQ 语音质量与 STOI 语音可懂度来衡量,两项指标都是值越大表示增强后的语音效果越好。
如下表所示,在通用型场景的语音测试集上的评测结果表明,AliCloudDenoise 524KB 算法库较传统算法在 PESQ 上分别有 39.4%(英文语音)和 48.4%(中文语音)的提升,在 STOI 上分别有 21.4%(英文语音)和 23.1%(中文语音)的提升,同时和竞品算法基本持平。而 AliCloudDenoise 2.6MB 算法库较竞品算法在 PESQ 上分别有 9.2%(英文语音)和 3.9%(中文语音)的提升,在 STOI 上分别有 0.4%(英文语音)和 1.6%(中文语音)的提升,展现出了显著的效果优势。
2、办公室场景下的评测结果
结合实时会议的业务声学场景,我们针对办公室场景做了单独的评测,噪声为实际录制的真实办公场景下的嘈杂噪声,共构建了约 5.3h 的评测带噪语音。下图展示了 AliCloudDenoise 2.6MB 算法库和竞品 1、竞品 2、传统 1 及传统 2 ,这四种算法在 SNR、P563、PESQ 和 STOI 指标上的对比结果,可以看到 AliCloudDenoise 2.6MB 算法库具有明显优势。
未来展望
在实时通信场景下,AI + Audio Processing 还有很多待探索和落地的研究方向,通过数据驱动思想与经典信号处理算法的融合,可以给音频的前端算法(ANS、AEC、AGC)、音频的后端算法(带宽扩展、实时美声、变声、音效)、音频编解码及弱网下的音频处理算法(PLC、NetEQ)带来效果上的升级,为阿里云视频云的用户提供极致的音频体验。
参考文献
[1] Wang D L, Chen J. Supervised speech separation based on deep learning: An overview[J]. IEEE/ACM Transactions on Audio, Speech, and Language Processing, 2018, 26(10): 1702-1726.
[2] venturebeat.com/2020/04/09/microsoft-teams-ai-machine-learning-real-time-noise-suppression-typing/
[3] venturebeat.com/2020/06/08/google-meet-noise-cancellation-ai-cloud-denoiser-g-suite/
[4] medialab.qq.com/#/projectTea
[5] Gannot S, Burshtein D, Weinstein E. Iterative and sequential Kalman filter-based speech enhancement algorithms[J]. IEEE Transactions on speech and audio processing, 1998, 6(4): 373-385.
[6] Kim J B, Lee K Y, Lee C W. On the applications of the interacting multiple model algorithm for enhancing noisy speech[J]. IEEE transactions on speech and audio processing, 2000, 8(3): 349-352.
[7] Ephraim Y, Van Trees H L. A signal subspace approach for speech enhancement[J]. IEEE Transactions on speech and audio processing, 1995, 3(4): 251-266.
[8] Ephraim Y, Malah D. Speech enhancement using a minimum-mean square error short-time spectral amplitude estimator[J]. IEEE Transactions on acoustics, speech, and signal processing, 1984, 32(6): 1109-1121.
[9] Cohen I. Noise spectrum estimation in adverse environments: Improved minima controlled recursive averaging[J]. IEEE Transactions on speech and audio processing, 2003, 11(5): 466-475.
[10]Ciregan D, Meier U, Schmidhuber J. Multi-column deep neural networks for image classification[C]//2012 IEEE conference on computer vision and pattern recognition. IEEE, 2012: 3642-3649.
[11]Graves A, Liwicki M, Fernández S, et al. A novel connectionist system for unconstrained handwriting recognition[J]. IEEE transactions on pattern analysis and machine intelligence, 2008, 31(5): 855-868.
[12]Senior A, Vanhoucke V, Nguyen P, et al. Deep neural networks for acoustic modeling in speech recognition[J]. IEEE Signal processing magazine, 2012.
[13]Sundermeyer M, Ney H, Schlüter R. From feedforward to recurrent LSTM neural networks for language modeling[J]. IEEE/ACM Transactions on Audio, Speech, and Language Processing, 2015, 23(3): 517-529.
[14]Sutskever I, Vinyals O, Le Q V. Sequence to sequence learning with neural networks[C]//Advances in neural information processing systems. 2014: 3104-3112.
[15] Valin J M. A hybrid DSP/deep learning approach to real-time full-band speech enhancement[C]//2018 IEEE 20th international workshop on multimedia signal processing (MMSP). IEEE, 2018: 1-5.
[16] Wang Y, Narayanan A, Wang D L. On training targets for supervised speech separation[J]. IEEE/ACM transactions on audio, speech, and language processing, 2014, 22(12): 1849-1858.
[17] Erdogan H, Hershey J R, Watanabe S, et al. Phase-sensitive and recognition-boosted speech separation using deep recurrent neural networks[C]//2015 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2015: 708-712.
[18] Williamson D S, Wang Y, Wang D L. Complex ratio masking for monaural speech separation[J]. IEEE/ACM transactions on audio, speech, and language processing, 2015, 24(3): 483-492.
[19] Recommendation I T U T. Perceptual evaluation of speech quality (PESQ): An objective method for end-to-end speech quality assessment of narrow-band telephone networks and speech codecs[J]. Rec. ITU-T P. 862, 2001.
[20] Taal C H, Hendriks R C, Heusdens R, et al. A short-time objective intelligibility measure for time-frequency weighted noisy speech[C]//2010 IEEE international conference on acoustics, speech and signal processing. IEEE, 2010: 4214-4217.
[21] Nicolson A, Paliwal K K. Deep learning for minimum mean-square error approaches to speech enhancement[J]. Speech Communication, 2019, 111: 44-55.
[22] www.yuque.com/mnn/cn/model_convert
[23]github.com/alibaba/MNN/tree/master/tools/MNNPythonOfflineQuant