使用pydub處理音頻文件

pydub是一個Python模塊,用于處理音頻,它有一個簡單易用的高層接口,底層依賴于ffmpeg或者avconv工具。

下面介紹pydub的一些使用。

打開一個音頻文件

import StringIO
from pydub import AudioSegment
audio = AudioSegment.from_file(StringIO.StringIO(audio_data))
audio = AudioSegment.from_file("audio_file")

from_file方法還有一個默認參數format,用于指定音頻格式。

設置采樣率

比如將采樣率設置為16KHz

audio.set_frame_rate(16000)

單通道

audio.set_channels(1)

按時間長度分段

from pydub.utils import make_chunks
chunks = make_chunks(audio, length)

轉成Raw PCM

綜上,如果要將一段音頻轉成16KHz、單聲道、小端的Raw PCM格式,可以這么做:

import StringIO
from pydub import AudioSegment
audio = AudioSegment.from_file("audio_file")
mono = audio.set_frame_rate(16000).set_channels(1)
sio = StringIO.StringIO()
mono.export(sio, format="s16le")
# sio中保存的即是轉換后的Raw PCM
sio.getvalue()

轉好的Raw PCM可以用于語音文本轉換數據源。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容