某些音频是双方对话,有可能需要对音频作通道的分离。
示例代码如下:
1 #!/usr/bin/env python 2 -*- Coding: utf-8 -*- 3 """ 4 音频双通道分离 5 6 import sys 7 numpy as np 8 from scipy.io wavfile 9 from converter mp3_to_wav10 11 12 def split_channel(wav_path,left_wav_path,right_wav_path):13 14 通道分离15 :param wav_path: wav音频的路径16 :param left_wav_path: 左声道的wav音频路径17 :param right_wav_path: 右声道的wav音频路径18 :return None:19 20 try:21 sample_rate,wav_data = wavfile.read(wav_path)22 left = []23 right =24 for item in wav_data:25 left.append(item[0])26 right.append(item[1])27 wavfile.write(left_wav_path,sample_rate,np.array(left))28 wavfile.write(right_wav_path,np.array(right))29 except IOError as e:30 print('error is %s' % str(e))31 32 other error',sys.exc_info())33 34 35 if __name__ == __main__36 mp3_to_wav(input/test.mp3',tmp/tmp.wav)37 split_channel(output/left.wavoutput/right.wav')
其中调用了一个自定义的库,converter.py 加入了代码:
from pydub AudioSegment 2 3 4 mp3_to_wav(source,destin): 5 6 mp3 转 wav 7 :param source: 8 :param destin: 9 10 11 data = AudioSegment.from_mp3(source)12 data.export(destin,format=wav')
本代码示例可以生成两个通道分离后的 wav 文件。
注意:如果源文件的格式是 wav 文件,可以省掉转换格式的过程。
总结
以上是内存溢出为你收集整理的使用Python音频双通道分离全部内容,希望文章能够帮你解决使用Python音频双通道分离所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)