数学之路(3)-机器学习(3)-机器学习算法-神经网络[18]

发布时间:2016-12-10 14:54:48 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"数学之路(3)-机器学习(3)-机器学习算法-神经网络[18]",主要涉及到数学之路(3)-机器学习(3)-机器学习算法-神经网络[18]方面的内容,对于数学之路(3)-机器学习(3)-机器学习算法-神经网络[18]感兴趣的同学可以参考一下。

编写线性神经网络 的python代码,目标是通过输入在混杂噪声的语音中前面预留的待拟合的背景音乐,以供线性神经网络拟合背景音乐,输出能与混合后形成声音中的背景音乐尽可能一致的噪声,部分python代码如下: #线性逼近前段噪声 b=1 a0=5e-1 a=0.0 r=1.5 x=[] d=[] ii=0 for audio_i in xrange(0,framerate/2): if fi_wave_data[audio_i]!=0.: x.append([]) x[ii].append(1) x[ii].append(fi_wave_data[audio_i]) d.append(new_wave_data[audio_i]) ii+=1 if ii>100: break x=np.array(x) d=np.array(d) w=np.random.rand(2)*np.mean(x)#np.array([b,0]) expect_e=15 maxtrycount=10000 最后去除噪声,并绘制声音的波形,去除噪声的方式,是直接从混合了背景音乐噪声的声音波形中直接减去线性神经网络拟合后的噪声 #复制并除去背景声音 jg_wave_data=copy.deepcopy(new_wave_data) jg_temp_wavedata=np.hstack((fi_wave_data,fi_wave_data))[:len(new_wave_data)] jg_temp_wavedata=jg_temp_wavedata[:len(new_wave_data)]*w[1]+w[0] jg_wave_data=jg_wave_data-jg_temp_wavedata for jg_i in xrange(0,len(jg_wave_data)): if abs(jg_wave_data[jg_i])<500: jg_wave_data[jg_i]=0 jg_wave_data[:framerate]=0 jg_wave_data =jg_wave_data.astype(wave_data.dtype) jg_str_data=jg_wave_data.tostring() print "save output wav...." fend.setnchannels(nchannels) fend.setframerate(framerate) fend.setsampwidth(sampwidth) fend.writeframes(jg_str_data) # 绘制波形 time = np.arange(0, nframes) * (1.0 / framerate) wave_data.shape = -1, 2 wave_data = wave_data.T pl.subplot(321) pl.plot(time, wave_data[0]) pl.subplot(322) pl.plot(time, wave_data[1], c="g") pl.xlabel("time (seconds)") # 绘制波形 new_wave_data.shape = -1, 2 new_wave_data =new_wave_data.T pl.subplot(323) pl.plot(time,new_wave_data[0]) pl.subplot(324) pl.plot(time, new_wave_data[1], c="g") pl.xlabel("time (seconds)") pl.show() # 绘制波形 jg_wave_data.shape = -1, 2 jg_wave_data =jg_wave_data.T pl.subplot(325) pl.plot(time,jg_wave_data[0]) pl.subplot(326) pl.plot(time, jg_wave_data[1], c="g") pl.xlabel("time (seconds)") pl.show() 通过预先采集一小段噪声信号,来实现后期对语音的除噪,实现将背景音乐去除 本博客所有内容是原创,如果转载请注明来源 http://blog.csdn.net/u010255642

上一篇:网络验证
下一篇:如何在C++中调用C的代码

相关文章

相关评论