Python中音頻處理庫pydub的使用教程,pythonpydub
前言
pydub是Python中使用者處理音頻檔案的一個庫。本文主要介紹了關於Python音頻處理庫pydub使用的相關內容,分享出來供大家參考學習,下面來看看詳細的介紹:
安裝:
1、安裝pip工具:sudo apt-get install python-pip
2、安裝pydub:sudo pip install pydub
3、pydub依賴於ffmpeg,所以還需要安裝ffmpeg,由於Ubunbtu14.04官方源移除了ffmpeg,因此通過ppa源安裝:
sudo apt-add-repository ppa:mc3man/trusty-media sudo apt-get update sudo apt-get install ffmpeg
使用:
AudioSegment方法能夠將一個音頻檔案開啟成AudioSegment樣本,並使用各種方法處理音頻,使用前先調用from pydub import AudioSegment
開啟音頻:
sound1 = AudioSegment.from_file("/path/to/sound.wav", format="wav") //預設mp3格式sound2 = AudioSegment.from_file("/path/to/another_sound.mp3", format="mp3")等價於sound1 = AudioSegment.from_mp3("/path/to/sound.mp3")
音量處理:
louder = sound1 + 6 //sound1 聲音提高6dBquieter = sound1 - 6 //sound1 聲音降低6dBcombined = sound1 + sound2 //sound1 和sound2疊加duration_in_milliseconds = len(sound1) //擷取sound的時間長度beginning = sound1[:5000] //擷取sound1的前5秒音頻資料end = sound1[-5000:] //擷取sound1的後5秒音頻資料
注意:
1、對於多個音訊計算,需要多個音頻之間的通道數、幀數、採樣率以及位元數都一樣,否則低品質的音頻會向高品質的轉換,單聲道會向立體聲轉換,低幀數向高幀數轉換。
2、AudioSegment原生就支援wav和raw,如果其他檔案需要安裝ffmpeg。raw還需要,sample_width,frame_rate,channels三個參數。
組建檔案:
export()
方法可以使一個AudioSegment對象轉化成一個檔案。
sound = AudioSegment.from_file("/path/to/sound.wav", format="wav") file_handle = sound.export("/path/to/output.mp3", format="mp3") //簡單輸出file_handle = sound.export("/path/to/output.mp3", format="mp3", bitrate="192k", tags={"album": "The Bends", "artist": "Radiohead"}) //複雜輸出
AudioSegment.empty():
AudioSegment.empty()
用於產生一個長度為0的AudioSegment對象,一般用於多個音訊合并。
sounds = [ AudioSegment.from_wav("sound1.wav"), AudioSegment.from_wav("sound2.wav"), AudioSegment.from_wav("sound3.wav"), ]playlist = AudioSegment.empty()for sound in sounds: playlist += sound
AudioSegment.silent():
ten_second_silence = AudioSegment.silent(duration=10000) //產生一個期間為10s的無聲AudioSegment對象
擷取參數:
此外,還能通過AudioSegment擷取音訊參數,同時還能修改原始參數。
具體詳見:https://github.com/jiaaro/pydub/blob/master/API.markdown
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的協助,如果有疑問大家可以留言交流,謝謝大家對幫客之家的支援。