分离歌曲中的人声和背景音乐(tensorflow).docx
《分离歌曲中的人声和背景音乐(tensorflow).docx》由会员分享,可在线阅读,更多相关《分离歌曲中的人声和背景音乐(tensorflow).docx(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、分离歌曲中的人声和背景音乐(tensorflow)#混合了背景音乐以及人声的数据self.x_mixed_srctf.placeholder(tf.float32,shapeNone,None,num_features,namex_mixed_src)#背景音乐数据self.y_music_srctf.placeholder(tf.float32,shapeNone,None,num_features,namey_music_src)#人声数据self.y_voice_srctf.placeholder(tf.float32,shapeNone,None,num_features,namey_
2、voice_src)#keepdropout用于RNN网络的droupoutself.dropout_ratetf.placeholder(tf.float32)#初始化神经网络self.y_pred_music_src,self.y_pred_voice_work_init()#设置损失函数self.lossself.loss_init()#设置优化器self.optimizerself.optimizer_init()#创立会话self.sesstf.Session()#需要保存模型所以获取saverself.savertf.train.Saver(max_to_keep1)设置变量、占位
3、符初始化神经网络设置损失函数设置优化器创立会话保存模型是不是都是很熟悉的那一套啊顺着上面的代码我们来看看初始化神经网络的函数network_init的实现#构建神经网络defnetwork_init(self):rnn_layer#根据num_hidden_units的长度来决定创立几层RNN每个RNN长度为sizeforsizeinself.num_hidden_units:#使用GRU同时加上dropoutlayer_celltf.nn.rnn_cell.GRUCell(size)layer_celltf.contrib.rnn.DropoutWrapper(layer_cell,inpu
4、t_keep_probself.dropout_rate)rnn_layer.append(layer_cell)#创立多层RNNmulti_rnn_celltf.nn.rnn_cell.MultiRNNCell(rnn_layer)outputs,statetf.nn.dynamic_rnn(cellmulti_rnn_cell,inputsself.x_mixed_src,dtypetf.float32)#全连接层y_dense_music_srctf.layers.dense(inputsoutputs,unitsself.num_features,activationtf.nn.rel
5、u,namey_dense_music_src)y_dense_voice_srctf.layers.dense(inputsoutputs,unitsself.num_features,activationtf.nn.relu,namey_dense_voice_src)y_music_srcy_dense_music_src/(y_dense_music_srcy_dense_voice_srcnp.finfo(float).eps)*self.x_mixed_srcy_voice_srcy_dense_voice_src/(y_dense_music_srcy_dense_voice_s
6、rcnp.finfo(float).eps)*self.x_mixed_srcreturny_music_src,y_voice_src上面就是我们神经网络构造的核心了N层RNN网络再加一个全连接层接着来看损失函数#损失函数defloss_init(self):withtf.variable_scope(loss)asscope:#求方差losstf.reduce_mean(tf.square(self.y_music_src-self.y_pred_music_src)tf.square(self.y_voice_src-self.y_pred_voice_src),nameloss)ret
7、urnloss然后就是优化器#优化器defoptimizer_init(self):ottimizertf.train.AdamOptimizer(learning_rateself.learning_rate).minimize(self.loss)returnottimizer保存以及加载模型的函数#保存模型defsave(self,directory,filename,global_step):#假如目录不存在那么创立ifnotos.path.exists(directory):os.makedirs(directory)self.saver.save(self.sess,os.path
8、.join(directory,filename),global_stepglobal_step)returnos.path.join(directory,filename)#加载模型假如没有模型那么初始化所有变量defload(self,file_dir):#初始化变量self.sess.run(tf.global_variables_initializer()#没有模型的话就重新初始化kpttf.train.latest_checkpoint(file_dir)print(kpt:,kpt)startepo0ifkpt!None:self.saver.restore(self.sess,k
9、pt)indkpt.find(-)startepoint(kptind1:)returnstartepo然后就是训练、验证、测试模型的函数#保存模型defsave(self,directory,filename,global_step):#假如目录不存在那么创立ifnotos.path.exists(directory):os.makedirs(directory)self.saver.save(self.sess,os.path.join(directory,filename),global_stepglobal_step)returnos.path.join(directory,filen
10、ame)#加载模型假如没有模型那么初始化所有变量defload(self,file_dir):#初始化变量self.sess.run(tf.global_variables_initializer()#没有模型的话就重新初始化kpttf.train.latest_checkpoint(file_dir)print(kpt:,kpt)startepo0ifkpt!None:self.saver.restore(self.sess,kpt)indkpt.find(-)startepoint(kptind1:)returnstartepo代码写完了在终端执行pythontrain.py就开场训练了可
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分离 歌曲 中的 人声 背景音乐 tensorflow
限制150内