使用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音频分离的资料请关注毛票票其它相关文章!