pydub是一個(gè)Python模塊,用于處理音頻腻菇,它有一個(gè)簡(jiǎn)單易用的高層接口作岖,底層依賴于ffmpeg或者avconv工具。
下面介紹pydub的一些使用胁住。
打開(kāi)一個(gè)音頻文件
import StringIO
from pydub import AudioSegment
audio = AudioSegment.from_file(StringIO.StringIO(audio_data))
audio = AudioSegment.from_file("audio_file")
from_file方法還有一個(gè)默認(rèn)參數(shù)format趁猴,用于指定音頻格式刊咳。
設(shè)置采樣率
比如將采樣率設(shè)置為16KHz
audio.set_frame_rate(16000)
單通道
audio.set_channels(1)
按時(shí)間長(zhǎng)度分段
from pydub.utils import make_chunks
chunks = make_chunks(audio, length)
轉(zhuǎn)成Raw PCM
綜上,如果要將一段音頻轉(zhuǎn)成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中保存的即是轉(zhuǎn)換后的Raw PCM
sio.getvalue()
轉(zhuǎn)好的Raw PCM可以用于語(yǔ)音文本轉(zhuǎn)換數(shù)據(jù)源捕犬。