zoukankan      html  css  js  c++  java
  • python 音频通道分离的源码实现

    一 前记

      作为一个音频工程师,仅仅依靠鼠标点击,没有一些自己的小工具的话,肯定是不合格的了。 最近用到了一个音频通道分离的功能,这里就用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

  • 相关阅读:
    Beetl模板 [记录]
    wx 小程序开发 [记录]
    高德定位获取省市区[记录]
    vue 学习记录 [记录]
    正则表达+验证 [记录]
    倒计时60s短信 [记录]
    @media [记录]
    JSON + Ajax [记录]
    Webstorm [记录]
    JQ 组合代码 [记录]
  • 原文地址:https://www.cnblogs.com/dylancao/p/12787560.html
Copyright © 2011-2022 走看看