基于深度学习的单通道语音增强实现(一)

  其实这个系列是我的毕业设计,很早就准备写了,一直拖延症比较严重,终于在今天有机会总结总结了。首先描述一下要做的工作。

一、工作描述

  用于语音增强的基于纯DNN的mask预测。(其实纯DNN的效果确实不是特别好,当初看到了最简单的一篇文章就直接用他的结构做了。

二、环境描述

  深度学习框架:PyTorch
  数据集:上传百度网盘中…(其实就是TIMIT和NOISE-92的噪声混合的数据

三、实验设计

3.1 实验总体设计

  如图,实验可以分成两个阶段,训练阶段和测试阶段。训练阶段使用我们自己混合好的带噪语音对模型进行训练;测试阶段使用测试数据评估模型的性能。
实验设计图

3.2 训练阶段
3.2.1 数据合成

  训练阶段我们需要根据需要合成不同信噪比的数据,合成过程见利用纯净语音和噪声合成不同信噪比的训练数据
  训练数据可以在这里获取。

3.2.2 短时傅里叶变换(STFT)

  对于短时傅里叶变换,这里有一些小坑需要注意:

  • 加窗时候的窗函数必须统一。切忌训练网络时一种窗函数,预测语音时使用另一种窗函数
  • STFT方法必须一致。STFT的方法众多,比如librosa的stft()方法以及网上一些大神自己写的STFT方法,对于一个实验,所有用到的STFT的地方必须使用同一个STFT方法,这样才能让你的结论更有说服力。
  • 对于数据进行stft然后再进行istft(逆傅里叶变换)是无法恢复到原来数据大小的,因为在STFT过程中进行了对齐处理,可能会进行丢弃/补齐操作
3.2.3 扩帧

  本次实验是使用纯DNN实现,如果不进行扩帧,网络就是161特征预测161特征(STFT之后是共轭复数,所以取一半也就是161维即可,这个操作库函数一半都会自动操作,无需手动截取161),这样就是纯粹的线性预测线性,就丢失了语音的时间序列特性。因此我们对输入帧进行帧扩展,从STFT的结果(T,F)扩展为(T,F * 11)即向前向后各扩5,使用11特征预测1特征。

3.2.4 训练目标

  本次实验是采用mask的方法进行降噪,因此我们的目标为 I R M ( t , f ) IRM(t,f) IRM(t,f)
(3.1) I R M ( t , f ) = ∣ S ( t , f ) ∣ 2 ∣ S ( t , f ) ∣ 2 + ∣ N ( t , f ) ∣ 2 IRM(t,f)= \sqrt {\frac{\lvert S(t,f)\lvert^2}{\lvert S(t,f)\lvert^2 + \lvert N(t,f)\lvert^2}} \tag{3.1} IRM(t,f)=S(t,f)2+N(t,f)2S(t,f)2 (3.1)
其中 ∣ S ( t , f ) ∣ 2 \lvert S(t,f)\lvert^2 S(t,f)2为纯净语音的能量谱, ∣ N ( t , f ) ∣ 2 \lvert N(t,f)\lvert^2 N(t,f)2为噪声的能量谱。

3.3 评价标准

  本次实验使用短时客观可懂度(Short-Time Objective Intelligibility, STOI)和主观语音质量评估(Perceptual Evaluation of Speech Quality, PESQ)来衡量预测语音的优劣。

评论 34
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值