INTERSPEECH 2022 | 钉钉蜂鸣鸟音频实验室论文入选国际顶会,创新提出窄带滤波网络架构
Posted 阿里技术
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了INTERSPEECH 2022 | 钉钉蜂鸣鸟音频实验室论文入选国际顶会,创新提出窄带滤波网络架构相关的知识,希望对你有一定的参考价值。
利用深度学习来提升语音增强效果和鲁棒性,已成为实时音视频通信领域研究的热点之一。钉钉蜂鸣鸟音频实验室提出了一种新的窄带滤波网络架构,可大幅提升去噪和去混响联合语音增强效果,提升音频质量,相关论文已被语音领域顶会INTERSPEECH 2022收录。
INTERSPEECH是由国际语音通讯协会(ISCA)创办的顶级学术会议,也是全球最大的综合性语音领域的科技盛会,在国际上享有极高盛誉并具有广泛的学术影响力,历届INTERSPEECH会议都倍受全球各地语音研究领域人士的关注。
以下为论文节选:
一、摘要
本文由 阿里巴巴钉钉蜂鸣鸟音频实验室(Hummingbird Audio Lab) 与 西湖大学音频信号与信息处理实验室 合作,提出了一种 基于频-时调制谱的改进型窄带滤波网络(spectro-temporal SubNet,STSubNet),在保留之前提出的窄带滤波网络(SubNet)[1] 对于语音去噪优势的前提下,进一步提升实时的单通道去噪和去混响联合语音增强效果。在每个频带里,为了得到足够丰富的频-时调制谱感受区(spectro-temporal receptive fields,STRFs),我们提出基于二维卷积网络与双向频域方向的长短期记忆网络组成的频-时调制谱感受区提取方法,以提高窄带滤波网络对于想保留的语音部分和想去除的干扰部分(噪声和混响)的鉴别力,并能在同一模型下同时进行去噪和去混响功能。尽管很多研究是把这两项任务分开进行处理,但由于计算量的限制,我们认为用一个神经网络模型进行多项任务是可行的。 实验表明,在两个公开的测试集里 [2] [3],相比于SubNet,STSubNet方案在参数更少的情况下得到更好的实时单通道语音增强效果(网络参数量减少72%,语音质量提升20%),并对齐于目前最高水平的(state-of-the-art SOTA)其他模型方法。
实验效果:音频对比
二、研究目的
近年来,使用深度学习监督下的语音增强技术受到了极大的关注。训练数据的可用性和丰富性,以及深度神经网络架构实时性的进步,使深度学习框架提供了比传统去除干扰声的方法更高效的性能。尽管这几年这个研发方向有着巨大的创新和改进,实时语音增强技术仍存在很大的现实挑战,包括但不限于不同类型噪音的消除,混响的消除,计算量能否降低,算法延迟能否减小,模型大小能否用于不同端侧等等。不同于经典的以全频带语音信息作为输入的神经网络框架,窄带滤波网络(SubNet)专注于每个频带信息作为输入,并让每个频带共享网络参数。其原理在于基于本地频谱模式下提取的频带的信号特征能否有效的区分开语音和非语音信息。为了进一步提高窄带滤波网络效能,本质上是如何提高输入的频带信息对于语音和非语音的鉴别力(discrimination)。受到听觉处理研发方向的启发,即哺乳动物听觉感知系统对于声音的特征值提取在于频-时调制谱感受区(STRFs)的感知,听觉感知神经突触的触发对应特定感受区里面的调制信息,本文提出一种更高效地提取STRF的信息的方法用作窄带滤波网络的输入以提高窄带滤波网络对于消除噪音和混响的效能。
具体来说,对于每个频带,为了得到足够丰富的频-时调制谱信息,一个二维的卷积网络被用于去提取特定频-时调制谱信息。由于每个频带对于不同频-时调制谱信息敏感度不同,为了扩展 STRF 的频谱维度的提取以及避免使用过多不同的二维卷积网络,一个双向频谱方向的长短期记忆网络被用在二维卷积之后。特别指出的是,不同于之前窄带滤波网络只用于去噪功能,本文提出的 STSubNet 会在一个模型里同时达到去噪和去混响功能,而且我们认为窄带滤波网络可能对于去混响更适用,因为混响效应本身是在不同频带发生的,相较于全频带输入,对于每个频带的输入,窄带滤波对于混响的泛化性会得到进一步提高。
三、研究方法
上图概述了我们提出的 STSubNet 的去噪去混响的架构:
- 短时傅立叶变换 STFT 框架下的实时语音处理;
- 深度学习神经网络结构,即STRF提取(二维卷积网络+双向频谱方向的长短期记忆网络)+ 窄带滤波网络SubNet,网络输出为复数域的掩码(mask);
- 损失函数 Loss function 为时域里的signal-to-distortion ratio (SDR) loss,通过我们的消融实验验证此损失函数比常用的scale-invariant SDR (SI-SDR) loss 或 mean square error (MSE) 都要好;
- 实时推理 online inference,通过一个递归函数来实时得到频谱归一化的均值;
- 网络参数的设定以及对于网络大小,计算量(real time factor RTF 值)的影响见如下表格:
该表格的计算量是在 Intel Xeon CPU E5-2682 v4 (2.50 GHz) 运行得到的
四、实验
为了充分理解本文提出的 STRF 频-时调制谱感受区对于窄带滤波网络的改善,根据数据集 NOISEX92 [4] 和 REVERB challenge [3],我们仿真出了 6 组不同的噪音测试集和 6 组不同的混响测试集;训练集是用 DNS challenge 提供的公开的干净语音数据,噪音数据,以及基于 image method [5] 生成的空间冲击响应(room impulse responses)生成出的。频谱计算用到了 future 一帧,即向前看一帧,并保证算法的总延迟不超过 40ms。
上述实验结果表明,双向频谱方向的长短期记忆网络(biLSTM)对于 STRF 频-时调制谱感受区信息的提取至关重要。时调制谱维度的增加对于去噪效果影响不大,但对于去混响相对来说重要的多。
为了验证所提方案的去噪和去混响实际效果,测试集用了DNS challenge [2] 的噪声测试集,并跟SOTA其他方案对比,以及REVERB challenge [3] 的混响真实录音测试集,并跟SOTA其他方案对比。
去噪任务用到了客观评估指标 PESQ(wideband),STOI,和 SI-SDR(三个系数都是越高代表效果越好),去混响任务由于真实录音缺乏参考的标准音频,只用了客观评估指标SRMR(越高代表效果越好)。
样例试听:https://github.com/ffxiong/stsubnet
五、结论
为了进一步提升窄带滤波网络 SubNet 的效能,本文提出了基于频-时调制谱的改进型窄带滤波网络 STSubNet。在充分分析频-时调制谱感受区提取对于窄带滤波网络提升的前提下,实验结果也验证了 STSubNet 在窄带滤波网络基础上性能有了大幅改善。对比于目前SOTA方法,STSubNet不仅能有效进行去噪和去混响两个功能的同时实现,并在很小的网络参数量的情况下(0.36M)达到有竞争力的语音增强表现。
六、参考文献
[1] X. Li and R. Horaud, “Online monaural speech enhancement using delayed subband LSTM,” in Interspeech, 2020, pp. 2462-2466.
[2] C. K. A. Reddy, V. Gopal, R. Cutler, E. Beyrami, R. Cheng, H. Dubey, S. Matusevych, R. Aichner, A. Aazami, S. Braun, P. Rana, S. Srinivasan, and J. Gehrke, “The INTERSPEECH2020 deep noise suppression challenge: Datasets, subjective testing framework, and challenge results,” in Interspeech, 2020, pp. 2492–2496.
[3] K. Kinoshita, M. Delcroix, S. Gannot, E. A. P. Habets, R. Haeb-Umbach, W. Kellermann, V. Leutnant, R. Maas, T. Nakatani, B. Raj, A. Sehr, and T. Yoshioka, “A summary of the REVERB challenge: State-of-the-art and remaining challenges in reverberant speech processing research,” EURASIP Journal on Advances in Signal Processing, no. 7, 2016
[4] A. Varga and H. Steeneken, “Assessment for automatic speech recognition: II. NOISEX-92: A database and an experiment to study the effect of additive noise on speech recognition systems,” Speech Communication, vol. 12, no. 3, pp. 247–251, 1993.
[5] J. B. Allen and D. A. Berkley, “Image method for efficiently simulating small-room acoustics,” J. of the Acoustical Society of America, vol. 64, no. 4, p. 943, 1979.
51单片机学习笔记4 -- 蜂鸣器控制
蜂鸣器控制
1.蜂鸣器简介
蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示
1.分类
- 按其驱动方式的原理分,可分为:有源蜂鸣器(内含驱动线路,也叫自激式蜂鸣器)和无源蜂鸣器(外部驱动,也叫他激式蜂鸣器);
- 按构造方式的不同,可分为:电磁式蜂鸣器和压电式蜂鸣器;
- 按封装的不同,可分为:DIP BUZZER(插针蜂鸣器)和SMD BUZZER(贴片式蜂鸣器);
- 按电流的不同,可分为:直流蜂鸣器和交流蜂鸣器,其中,以直流最为常见压电式蜂鸣器,用的是压电材料,即当受到外力导致压电材料发生形变时压电材料会产生电荷。同样,当通电时压电材料会发生形变。
2.有源蜂鸣器和无源蜂鸣器
下面有绿色电路板的一种是无源蜂鸣器,没有电路板而用黑胶封闭的一种是有源蜂鸣器
这里的“源”不是指电源。而是指震荡源。
也就是说有源蜂鸣器内部带震荡源,所以只要一通电就会叫;而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫,必须用2K~5K的方波去驱动它
有源蜂鸣器往往比无源的贵,就是因为里面多个震荡电路。无源蜂鸣器的优点是:1。便宜,2。声音频率可控,可以做出“多来米发索拉西”的效果。3。在一些特例中,可以和LED复用一个控制口;有源蜂鸣器的优点是:程序控制方便 。
3.区分有源蜂鸣器和无源蜂鸣器
判断有源蜂鸣器和无源蜂鸣器,可以用万用表电阻档Rxl档测试:用黑表笔接蜂鸣器"+"引脚,红表笔在另一引脚上来回碰触,如果触发出咔、咔声的且电阻只有8Ω(或16Ω)的是无源蜂鸣器,如果能发出持续声音的,且电阻在几百欧以上的,是有源蜂鸣器
4.蜂鸣器驱动电路
由于蜂鸣器的工作电流比较大,以单片机的I/O 口是无法直接驱动的,所以要利用放大电路来驱动,一般使用三极管来放大电流
2.电路图绘制
先看看蜂鸣器的原理图,单片机的蜂鸣器控制引脚串联1k电阻经三极管连接到蜂鸣器
在Protues中找出来三极管和蜂鸣器,三极管直接搜PNP即可,不用找详细型号,需要做水平镜像翻转,接地与按键并到一起,其他的参照原理图接
3.蜂鸣器控制
51开发板上搭载的蜂鸣器是有源蜂鸣器,只需要高低电平来控制即可,也就是和LED的控制方式一样,参考程序如下
#include <reg52.h>
#define ON 0
#define OFF 1
sbit BUZZER = P0^7;
void delay_ms(unsigned int nms)
unsigned int i,j;
for(i=nms;i>0;i--)
for(j=113;j>0;j--);
void main()
BUZZER = ON;
delay_ms(200);
BUZZER = OFF;
delay_ms(200);
while(1);
蜂鸣器在protues上不能做仿真,也就是不能看到蜂鸣器是否有响应控制,只能找开发板进行蜂鸣器测试
4.程序补充
学习了蜂鸣器控制后,可以结合前面的LED和按键,如下面代码可做参考
#include <reg52.h>
#include <intrins.h>
#define ON 0
#define OFF 1
sbit KEY1 = P3^3;
sbit KEY2 = P3^4;
sbit KEY3 = P3^6;
sbit KEY4 = P3^7;
sbit BUZZER = P0^7;
void delay_ms(unsigned int nms)
unsigned int i,j;
for(i=nms;i>0;i--)
for(j=113;j>0;j--);
void main()
unsigned int i;
P1 = 0xff;
while(1)
if(KEY1 == ON)
delay_ms(10);
if(KEY1 == ON)
BUZZER = ON;
while(KEY1 == ON);
if(KEY2 == ON)
delay_ms(10);
if(KEY2 == ON)
BUZZER = OFF;
while(KEY2 == ON);
if(KEY3 == ON)
delay_ms(10);
if(KEY3 == ON)
P1 = 0xfe;
for(i=8;i>0;i--)
delay_ms(150);
P1 = _crol_(P1,1);
while(KEY3 == ON);
if(KEY4 == ON)
delay_ms(10);
if(KEY4 == ON)
P1 = 0x7f;
for(i=8;i>0;i--)
delay_ms(150);
P1 = _crol_(P1,-1);
while(KEY4 == ON);
以上是关于INTERSPEECH 2022 | 钉钉蜂鸣鸟音频实验室论文入选国际顶会,创新提出窄带滤波网络架构的主要内容,如果未能解决你的问题,请参考以下文章
2022年10月 .Net Core使用cpolar内网穿透功能实现钉钉回调事件的监听
BSP视频教程STM32H7视频教程第10期:STM32H7的GPIO专题,非阻塞式驱动编程思想,按键FIFO,蜂鸣器驱动的新式玩法(2022-03-23)
苹果一夜蒸发约4431亿元,市值濒临跌破2万亿大关;钉钉用户数突破6亿;Windows成2022年恶意软件主要攻击对象|极客头条
苹果一夜蒸发约4431亿元,市值濒临跌破2万亿大关;钉钉用户数突破6亿;Windows成2022年恶意软件主要攻击对象|极客头条...