RNNoise

RNNoise中denoise.c的功能说明

从denoise.c的main()中看程序。对于定义的变量不要太刻意的却了解它是干什么的,不论数组还是变量都是为了存数据或者暂存数据。

​ 要点:
1)通过随机函数生成语音增益和噪声增益来模拟不同的SNR,这些增益都是直接应用在时域帧上的。此时的语音信号并没有加上Vorbis window,仅仅是取出480个点。

​2)biquad滤波器设置合适的系数可以去除高频噪音,随机系数可以模拟各种声学场景

​3)vad的值通过信号的的能量大小给出

​4)frame_analysis加窗–>FFT–>计算band能量

​5)compute_frame_features对嘈杂的信号提取特征,具体特征参考Google浏览器RNNoise的特侦提取blog。注意该函数的返回是什么含义?在denoise_demo.c中的rnnoise_process_frame()函数中会使用到。
6)增益标签的定义在main()函数尾部。输入特征与标签都会写入到stdout这个标准输出流文件内中,通过 > training.f32从映射到training.f32文件中

​7)bin2hdf5.py将training.f32文件转化为h5文件

​8)在数据处理的过程中每一帧的数据是 42输入特征+22增益标签+22对数谱+1vad标签。一共有5000000(自定义的),所以在rnn_training.py中all_data = hf[‘data’] [:]不管列,取出5000000行数据,将其分为2500个样本,每个样本分为2000个序列,每个序列有 44+22+22+1个输入或者特征。

​9)训练出的weights.hdf5文件通过dump_rnn.py写到rnn_data.c文件中。在c环境下应用这些权值,对于测试的数据,固定这些权值,直接过网络输出增益,并在c下应用处理,恢复信号。

Python rnnoise 是一个用于语音降噪的 Python 库。rnnoise 的全称是 Recurrent Neural network for noise reduction,它基于递归神经网络的原理来实现语音信号的降噪。通过 rnnoise,我们可以对含有噪音的语音进行处理,使其变得更加清晰,更容易理解。 rnnoise 的工作原理是通过训练大量的噪音和干净语音对来构建降噪模型。模型输入的是包含噪音的语音信号,输出则是降噪后的语音信号。通过训练,模型可以学习到如何从噪音信号中分离出干净的语音信号。当使用 rnnoise 处理新的语音数据时,模型会根据训练得到的经验对语音进行降噪处理。 在 Python 中使用 rnnoise,我们需要导入相应的库文件,并使用合适的语音数据作为输入。首先,我们需要将输入的语音信号转换为适当的格式,例如使用 numpy 将其表示为数组。然后,我们可以使用 rnnoise 提供的降噪函数来对语音信号进行处理。最后,我们可以将降噪后的语音信号保存到文件中或进行其他后续操作。 Python rnnoise 的优点之一是其易用性。由于 rnnoise 封装在一个 Python 库中,我们可以在 Python 环境中直接调用相应的函数进行降噪处理,而无需编写大量的代码。此外,Python 还提供了丰富的科学计算和信号处理库,可以方便地与 rnnoise 结合使用。 综上所述,Python rnnoise 是一个用于语音降噪的方便易用的 Python 库,通过使用递归神经网络来实现语音信号的降噪处理。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值