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可以用于語音文本轉換數據源。