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

你可能感兴趣的:(使用pydub处理音频文件)