人声抑制 深度学习_RNNoise: Learning Noise Suppression(深度学习噪声抑制)(2)

https://blog.csdn.net/dakeboy/article/details/88065399这篇文章主要介绍如何进行RNNoise的训练和测试1、网络结构RNNoise分为三层嵌入式网络,由全连接层,GRU网络构成包含了215个units4个hidden layersLargest:96 unitsGRU VS LSTMGRU容易执行去噪任务,需要更少的计算资源,较少参数,...
摘要由CSDN通过智能技术生成

https://blog.csdn.net/dakeboy/article/details/88065399

这篇文章主要介绍如何进行RNNoise的训练和测试

1、网络结构

RNNoise分为三层嵌入式网络,由全连接层,GRU网络构成

包含了215个units

4个hidden layers

Largest:96 units

GRU VS LSTM

GRU容易执行去噪任务,需要更少的计算资源,较少参数,训练快

RNN可以对时间序列建模,而噪声抑制需要在时域获得良好的噪声估计。很长时间以来,RNN的能力受到很大的限制,因为它们长期不能保存信息,并且由于当通过时间反向传播时涉及的梯度下降过程是非常低效的(消失的梯度问题)。门控单元(LSTM和GRU)解决了简单RNN不能长期保存信息和梯度消失的问题。与简单RNN相比,GRU有两个额外的门。复位门决定是否将状态(记忆)用于计算新状态,而更新门决定状态将根据新输入改变多少。当更新门关闭时,GRU可以长时间地记住信息。

网络顺序

首先对语音数据分帧,每帧10ms,160个数据点,对这个数据点提取42维的特征,输入网络,经过第一层GRU,输出24维与原始输入42维concate进入第二层GRU,输出48维与原始输入concate,进入第三层GRU,最终输出22维的点(每个点是语音还是噪声的概率),将这个结果作为权重对原始输入进行加权,最后拟合出256的频谱用于恢复时域语音信号,这个信号就是降噪后的结果。

2、数据集

需要准备好训练集,在本项目中可以很简单的准备训练数据和label,只需要两个长文件,一个是仅包含噪声的文件,noise_only.wav,一个是仅包含语音的文件speech_only.wav,在训练开始前,需要将噪声加入到语音,合成含噪语音noisy.wav,

将这个noisy.wav的特征送入到网络。

噪声Noise_only:人群噪声(30min),街道汽车噪声(20min),路面噪声(10min), 16k

语音Speech_only : Haitian_data 60min, 16k (可以尝试各种开源语音数据集,讯飞有很多)

需要去噪的语音Noisy:lumian,tingche, gaojia 16k(用于测试)

3、更改采样率

工程的音频限制为单声道,16bit,采样率48k,需要修改训练数据

**下载语音转换工具:

~/rnnoise$ git clone https://github.com/smallmuou/wavutils

~/rnnoise/wav$ …/wavutils/bin/wavinfo speech_only.wav**

1

2

3

运行以下脚本

xx@ubuntu::~/bin$ wavinfo no_music.wav1

+

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值