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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM