A NEURAL NETWORK-BASED HOWLING DETECTION METHOD
FOR REAL-TIME COMMUNICATION APPLICATIONS
第一章 语音增强之《基于神经网络的实时通信啸叫检测方法》
文章目录
前言
语音新手入门,学习读懂论文。
本文作者机构是网易通讯音频实验室,中国浙江杭州2网易成长实验室,中国浙江杭州
一、做了什么
我们提出了一种基于crnn的嚎叫检测器,该检测器具有优化的二进制交叉熵损失,以获得出色的虚警率,并针对设备相关问题进行了一些正则化修改。此外,收集并标记了一个嚎叫数据集,包括基于不同移动设备的52小时实际录音。
二、动机
传统的公共广播系统和助听器使用传统的嚎叫特征来检测和抑制嚎叫。然而,在实时通信(RTC)中,传统的嚎叫特征受到非线性和不确定性的影响,如各种扬声器/麦克风响应、多重非线性音频处理、不稳定的网络传输抖动、声路径变化和环境影响。在嚎叫检测中,使用特定时频特征的信号处理方法对RTC场景无效。
三、挑战
(i)假警报的要求在实际情况下受到限制,因为假警报经常会中断对话。
(ii)嚎叫检测器需要在不同的硬件中具有鲁棒性和泛化性,因为嚎叫特征依赖于设备。
(iii)实时应用方面,需要一个轻量级的模型。
四、方法
1.模型图
该模型通常遵循带有特定任务修改的CRNN架构。该模型由四个模块组成:stem、recurrent、full connect和attention。
stem块由三个卷积块组成,分别有16、32和32个核。每个卷积块都有(3×3)步长为(1×1)的核,然后是批处理归一化、Relu激活和平均池化层,分别沿着频率维度5、4和3。在每个卷积块的末尾使用额外的dropout层来缓解过拟合和设备依赖问题。
循环记忆块由两个双向长短期记忆块组成,用于学习时间上下文信息。
完整连接块使用前向层作为过渡,最后一个具有sigmoid激活的注意块输出嚎叫概率。
一个const阈值在帧级得到最终的啸叫检测结果。
2.模型优化
在RTC应用中,嚎叫检测主要考虑三个问题。
首先,为了降低虚警率,设计了加权二值交叉熵损失来引导背景传播;
其中,L为加权二值交叉熵损失,p为目标(嚎叫为1,无嚎叫为0),q为预测结果,α为权重(0< α<2)。当α= 1时,L等于二元交叉熵。当α< 1时,虚警误差对损失的贡献更大,这有助于我们的任务。α指示检测率和虚警率的平衡。
其次,应用正则化方法缓解设备依赖问题。
第三,对于实时应用,选择32帧(1.28秒)的有限序列长度,而不是在复音事件检测任务[16]中使用的10s音频片段。
3.数据集
考虑到RTC应用中啸叫检测任务的特殊性,传统的啸叫检测任务需要实时记录数据,而不是合成数据。建立了实时记录系统。在30多个移动设备中捕获了嚎叫和其他信号数据,不同的设备有不同的声学结构和音频处理。收集52h左右的数据,48h的数据用于训练和验证,4h的数据用于测试。所有数据都是手动标记的,并切割成1.28秒的音频剪辑。
4.实验设置
我们使用Adam优化器训练了500个epoch的模型,权重衰减到0.01,小批大小为32,学习率从0.02开始,如果验证损失在10个epoch内没有减少,学习率将衰减一半。损失函数采用加权二值交叉熵损失,α值默认为1。设置0.5的阈值来决定系统输出中的主动嚎叫。
5.模型压缩
对数据增强的效果、参数正则化的重要性、dropout层的使用以及加权二元交叉熵损失中不同alpha值的结果进行了四项测试。
为了压缩模型,我们采用了模型剪枝和量化方案。剪枝是基于基于L1滤波器的一次剪枝方法。额外的微调是用来提高修剪模型的性能。
我们还使用量化感知训练(QAT)方法对剪枝模型进行量化,以压缩模型大小。
五、实验评价
1.客观评价
数据增强对声音事件的检测率有显著的帮助,提高了3.87%左右,而误检率则降低了近3.5倍。我们具体的嚎叫检测任务中,数据增强并不可取。
六、结论
首先,设计加权二值交叉熵损失来平衡检测率和虚警率。其次,采用参数正则化、dropout层等正则化方法,缓解设备依赖问题,降低虚警率。最后,将剪枝和量化方法用于实时应用。并建立了基于多台设备的约52h嚎叫数据集,为该领域的研究提供了便利。