训练语音降噪模型的一些感想

 

当前基于深度学习的语音降噪方法主要分为两个类:

  1. 基于TF时频域的方法 (有两大类:基于mask和非基于mask的方法)
  2. 基于时域的方法,就我自己的实验结果来说,基于时域的方法比基于TFmask的方法要差一些,可能这样方法的trick更多一些吧。

   基于时频域方法中的基于mask的方法更常见一些,主要的是对语音提取频域特征,通过计算干净音频和对应的加噪音频的频域特征计算一个频域的mask。然后用加噪音数据训练以mask作为label训练。

   基于时频域方法中的非基于mask的方法,主要是对语音提取频域特征,通过噪声数据的频谱特征作为输入特征,以干净音频的频谱特征作为label进行训练。

   (注:此处实验中使用的频域特征是stft短时傅里叶变换)

   这两种方式中基于mask的方法试验结果相对较好,因此我们再详细看一下基于mask的方法。那mask的方式其实有很多中:

  1. Irm ideal ratio mask. 只考虑幅频,不考虑相频: square(abs(stft(clean)))/square(abs(stft(noise))+abs(stft(clean))) 在论文中也有别的表示方式,特点是取值范围是0-1
  2. smm Spectral Magnitude Mask : abs(stft(clean))/abs(stft(noise)+stft(clean)) 更结合音频频域特征相加的性质,取值范围(0- )取值范围较大,相对于irm更难训练一点
  3. psm Phase-Sensitive Mask 考虑phase相位谱:(abs(stft(clean))/abs(stft(noise)+stft(clean)))*cos(theta) theta 是相角。考虑了相位谱,语音通过mask 重建出来更完整,失真更少。

      试验中发现一般情况下irm 更好训练,容易收敛,Psm 训练结果的指标更好一些。说到指标论文里一般使用:

  1. PESQ (衡量失真)-0.5 ~ 4.5 模拟mos值
  2. STOI(衡量可理解读)0 ~ 1 
  3. SNR 
  4. 也有的用ASR识别结果对比,pesq/STOI github 上现成的代码,可以直接用。 主要是计算干净音频和噪声音频在频域上的差别。

基于时域的方法,我试了类似wavenet/tcnn 的方法,直接输入wav的采样点,有个前面加了二维卷积类似 stft频域变换, 输出采样点的值。更简单明了一些。但是模型大小更大,耳机训练过程中的参数设置影响较大。 

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值