使用Python实现音频双通道分离
某些音频是双方对话,有可能需要对音频作通道的分离。
示例代码如下:
#!/usr/bin/envpython #-*-coding:utf-8-*- """ 音频双通道分离 """ importsys importnumpyasnp fromscipy.ioimportwavfile fromconverterimportmp3_to_wav defsplit_channel(wav_path,left_wav_path,right_wav_path): """ 通道分离 :paramwav_path:wav音频的路径 :paramleft_wav_path:左声道的wav音频路径 :paramright_wav_path:右声道的wav音频路径 :returnNone: """ try: sample_rate,wav_data=wavfile.read(wav_path) left=[] right=[] foriteminwav_data: left.append(item[0]) right.append(item[1]) wavfile.write(left_wav_path,sample_rate,np.array(left)) wavfile.write(right_wav_path,sample_rate,np.array(right)) exceptIOErrorase: print('erroris%s'%str(e)) except: print('othererror',sys.exc_info()) if__name__=='__main__': mp3_to_wav('input/test.mp3','tmp/tmp.wav') split_channel('tmp/tmp.wav','output/left.wav','output/right.wav')
其中调用了一个自定义的库,converter.py加入了代码:
frompydubimportAudioSegment defmp3_to_wav(source,destin): """ mp3转wav :paramsource: :paramdestin: :returnNone: """ data=AudioSegment.from_mp3(source) data.export(destin,format='wav')
本代码示例可以生成两个通道分离后的wav文件。
注意:如果源文件的格式是wav文件,可以省掉转换格式的过程。
以上就是使用Python实现音频双通道分离的详细内容,更多关于python音频分离的资料请关注毛票票其它相关文章!