NNOM神经网络语音降噪

目录

1. 问题记录和解决

2. C工程建立和运行

1. 问题记录和解决

(1)python语音处理依赖库soundfile

在miniconda的powershell中执行指令:

pip install soundfile –i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

(2)numpy的版本过高

Numpy的版本过高,会出错:

TypeError: 'float' object cannot be interpreted as an integer

过低又会引起不兼容某些库(比如:matplotlib),所以在降低numpy版本的时候,注意看打印的信息,这里我选择了一个合适自己的版本:

pip install numpy==1.17.3 -i https://pypi.douban.com/simple/

(3) 屏蔽GPU加速

编译模型的过程中会出错,可根据提示信息进行定位。由于GPU加速部分没有调通,所以注释掉这部分,不需要GPU加速。

文件:\nnom-master\examples\rnn-denoise\main.py

 如下:

2. C工程建立和运行

工程目录结构如下:

 运行结果:

 对比原始带噪语音文件和降噪语音文件:

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
目前,语音降噪算法有很多种。频谱减法有原理简单、容易实现的优点,是 语音降噪的常用算法。但是频谱减法也有如下两个缺点:一是频谱减法性能的好 坏主要依赖于噪声估计,而噪声估计又依赖于端点检测算法。在噪声水平强度高 时,一般的端点检测算法会失效,无法检测出信号中噪声帧的具体位置,从而影 响了噪声估计值的准确性;二是带噪信号经过频谱减法降噪后,由于在谱减时减 去的是同一噪声估计值,就使得信号会随机出现分离的谱区,这些谱区就形成了 容易让人耳听觉疲惫的“音乐噪声”。 针对频谱减法上述的两个缺点,本文对其进行了改进。第一:为了使得噪声 端点检测算法在噪声水平高时也能获得正确的检测,我们求带噪信号的幅度值均 值,并根据这个均值与带噪信号开始数帧的幅度均值大小来判断带噪信号是以噪 声开始还是以带噪语音信号开始。然后根据连续两帧信号的差值的变化来判断噪 声帧和语音帧的起始位置,同时我们在判断的同时把得到的均值做为噪声估计值, 这样既考虑到了连续前后两帧信号的相关性又能够衰减噪声。除此之外,基于本 文改进的噪声端点检测方法的噪声估计值能够在整个带噪语音信号上快速的更新 噪声估计值,提高频谱减法的实时处理能力。第二:为了减少频谱减法所引入的 音乐噪声,我们实现了用 LMS 算法在时域上进行语音增强,来处理谱减后的降噪 信号。LMS 算法能够在降低噪声水平的同时把音乐噪声转换为能量更低的白噪声, 减少了音乐噪声对人耳的刺激,有助于提高处理后的音频的语音质量,提高主客 观评价效果。
由于这是一个较为复杂的问题,我们逐步来回答。 1. 在Simulink中建立调速系统的动态结构图 根据传递函数1/s3+18s2+72s,我们可以使用Simulink中的Transfer Fcn模块来建立传递函数模型。建立模型的步骤如下: 1. 打开Simulink并创建一个新模型。 2. 在模型中添加Transfer Fcn模块,并将传递函数输入到模块中。 3. 添加一个Sum模块,并将输入连接到该模块中。 4. 在Sum模块中添加反馈,即连接输出到Transfer Fcn模块中。 5. 添加一个Step模块,该模块代表输入信号。 6. 连接Step模块到Sum模块中。 7. 运行模型并观察输出结果。 2. 计算额定磁通下电机电动势转速比 电机电动势常数K_E等于额定磁通下电机电动势与转速之比。因此,我们可以使用以下公式来计算电动势转速比: K_E = V_RMS / (2 * pi * f * n) 其中,V_RMS是电源电压,f是电网频率,n是电机转速。 3. 求闭环系统的闭环放大倍数 系统调速范围为D=20,静差率为s=5%。因此,我们可以使用以下公式来计算闭环放大倍数: K_P = (D / 100) * (1 / s) 4. 求拖动系统测速反馈系数 给定信号un*=12V时,n=nnom=1000r/m。因此,我们可以使用以下公式来计算测速反馈系数: K_S = un* / (K_E * nnom) 5. 求满足调速范围和静差率的比例调节器放大系数KP 我们已经求得了闭环放大倍数K_P和测速反馈系数K_S。因此,我们可以使用以下公式来计算比例调节器放大系数K_P: K_P = K_P / K_S 6. 系统稳定性分析 要确定系统是否稳定,我们需要计算系统的临界开环放大倍数,并将其与闭环放大倍数进行比较。系统的临界开环放大倍数等于系统传递函数的分母中最大的实部。如果闭环放大倍数大于临界开环放大倍数,则系统不稳定。 7. 设计控制器参数以满足相角裕度要求 为了满足相角裕度要求,我们可以使用控制器设计工具箱中的根轨迹法来设计控制器。具体步骤如下: 1. 打开MATLAB并创建一个新的脚本文件。 2. 在脚本文件中使用Control System Designer打开调节器设计工具箱。 3. 在工具箱中输入系统传递函数,并设置相角裕度要求。 4. 使用根轨迹法来设计控制器参数。 5. 在脚本文件中编写代码来实现控制器。 以上是对问题的回答,根据具体情况可能还需要进一步的调整和完善。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值