Python中音頻處理庫pydub的使用教程
前言
pydub是Python中用戶處理音頻文件的一個(gè)庫。本文主要介紹了關(guān)于Python音頻處理庫pydub使用的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面來看看詳細(xì)的介紹:
安裝:
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方法能夠?qū)⒁粋€(gè)音頻文件打開成AudioSegment示例,并使用各種方法處理音頻,使用前先調(diào)用from pydub import AudioSegment
打開音頻:
sound1 = AudioSegment.from_file("/path/to/sound.wav", format="wav") //默認(rèn)mp3格式
sound2 = AudioSegment.from_file("/path/to/another_sound.mp3", format="mp3")等價(jià)于sound1
= AudioSegment.from_mp3("/path/to/sound.mp3")音量處理:
louder = sound1 + 6 //sound1 聲音提高6dB quieter = sound1 - 6 //sound1 聲音降低6dB combined = sound1 + sound2 //sound1 和sound2疊加 duration_in_milliseconds = len(sound1) //獲取sound的時(shí)長 beginning = sound1[:5000] //獲取sound1的前5秒音頻數(shù)據(jù) end = sound1[-5000:] //獲取sound1的后5秒音頻數(shù)據(jù)
注意:
1、對于多個(gè)音頻的計(jì)算,需要多個(gè)音頻之間的通道數(shù)、幀數(shù)、采樣率以及比特?cái)?shù)都一樣,否則低質(zhì)量的音頻會(huì)向高質(zhì)量的轉(zhuǎn)換,單聲道會(huì)向立體聲轉(zhuǎn)換,低幀數(shù)向高幀數(shù)轉(zhuǎn)換。
2、AudioSegment原生就支持wav和raw,如果其他文件需要安裝ffmpeg。raw還需要,sample_width,frame_rate,channels三個(gè)參數(shù)。
生成文件:
export()方法可以使一個(gè)AudioSegment對象轉(zhuǎn)化成一個(gè)文件。
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"}) //復(fù)雜輸出AudioSegment.empty():
AudioSegment.empty()用于生成一個(gè)長度為0的AudioSegment對象,一般用于多個(gè)音頻的合并。
sounds = [
AudioSegment.from_wav("sound1.wav"),
AudioSegment.from_wav("sound2.wav"),
AudioSegment.from_wav("sound3.wav"),
]
playlist = AudioSegment.empty()
for sound in sounds:
playlist += soundAudioSegment.silent():
ten_second_silence = AudioSegment.silent(duration=10000) //產(chǎn)生一個(gè)持續(xù)時(shí)間為10s的無聲AudioSegment對象
獲取參數(shù):
此外,還能通過AudioSegment獲取音頻的參數(shù),同時(shí)還能修改原始參數(shù)。
具體詳見:https://github.com/jiaaro/pydub/blob/master/API.markdown
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
Python設(shè)計(jì)模式之狀態(tài)模式原理與用法詳解
這篇文章主要介紹了Python設(shè)計(jì)模式之狀態(tài)模式原理與用法,簡單描述了狀態(tài)模式的概念、原理并結(jié)合實(shí)例形式分析了Python實(shí)現(xiàn)與使用狀態(tài)模式的相關(guān)操作技巧,需要的朋友可以參考下2019-01-01
使用Python設(shè)置Excel單元格數(shù)字的顯示格式
Python語言可以幫助我們靈活設(shè)置Excel單元格的數(shù)字格式,保證數(shù)據(jù)的一致性與專業(yè)標(biāo)準(zhǔn),本文將介紹如何使用Python對Excel工作表中單元格的數(shù)字格式進(jìn)行設(shè)置,文中通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下2024-06-06
python中pandas.DataFrame對行與列求和及添加新行與列示例
pandas是python環(huán)境下最有名的數(shù)據(jù)統(tǒng)計(jì)包,而DataFrame翻譯為數(shù)據(jù)框,是一種數(shù)據(jù)組織方式,這篇文章主要給大家介紹了python中pandas.DataFrame對行與列求和及添加新行與列的方法,文中給出了詳細(xì)的示例代碼,需要的朋友可以參考借鑒,下面來一起看看吧。2017-03-03
10個(gè)Python中python_docx庫的實(shí)用案例分享
在日常辦公和文檔處理中,Word文檔是我們最常用的格式之一,Python通過python?-?docx庫能夠?qū)崿F(xiàn)對Word文檔的各種自動(dòng)化操作,本文為大家準(zhǔn)備了10個(gè)常用的案例,希望對大家有所幫助2025-02-02
舉例講解Python中的list列表數(shù)據(jù)結(jié)構(gòu)用法
這篇文章主要介紹了Python中的list列表數(shù)據(jù)結(jié)構(gòu)用法,列表是Python內(nèi)置的六種集合類數(shù)據(jù)類型中最常見的之一,需要的朋友可以參考下2016-03-03
Python三元運(yùn)算實(shí)現(xiàn)方法
這篇文章主要介紹了Python三元運(yùn)算實(shí)現(xiàn)方法,通過if else語句實(shí)現(xiàn)了三元運(yùn)算的功能,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-01-01

