一 前记
作为一个音频工程师,仅仅依靠鼠标点击,没有一些自己的小工具的话,肯定是不合格的了。 最近用到了一个音频通道分离的功能,这里就用python敲击了一下,这里做个备忘吧,给有需求的小伙伴抛砖引玉了。
二 python代码实现
其实,这个实现方法使用python有好几种方法,这里先给出比较简单的一种:
直接上源码吧。代码是我运行过的,能够在python3下直接work的:
#!/usr/bin/env python
import sys
import numpy as np
from scipy.io import wavfile
def split_channel(wav_path, left_wav_path,right_wav_path):
try:
sample_rate,wav_data = wavfile.read(wav_path)
left = []
right = []
for item in wav_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))
except IOError as e:
print('error is %s' % str(e))
except:
print('other error',sys.exc_info())
if __name__ == '__main__':
split_channel('./testg.wav','output/left.wav','output/right.wav')
三 命令行实现:
其实,还有一种比较简单的额实现方法,就是直接sox:
sox test.wav -c1 output.wav
四 总结:
python真是太好用了,这里不得不赞一个,后面很多工具看来真是要用python写了啊。需要源码的可以可以到github:
https://github.com/DyLanCao/python_scrpits/tree/master/audio_process/wavdiv
来源:oschina
链接:https://my.oschina.net/u/4363726/blog/4257044