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可以用于语音文本转换数据源。
网友评论