读取音频:
- librosa库
- scipy库
- wave库
wave库是python的标准库,对于python来说相对底层,wave不支持压缩/解压,但支持单声道/立体声语音的读取。
注意⚠️:标准库与第三方库的区别是标准库是python自带的,可以直接import导入, 第三方库需要pip安装下载之后使用
wave.open():打开一个文件以读取/写入音频数据
两个参数:文件名,模式(写入“ wb” /读取“ rb”)
- 模式“ rb”返回Wave_read对象
- 模式“ wb”返回Wave_write对象
Wave_write对象:
close() | 如果文件是通过wave打开的,则将其关闭。 |
setnchannels() | 设置频道数。1单声道2个立体声通道 |
setsampwidth() | 将样本宽度设置为n个字节。 |
setframerate() | 将帧频设置为n。 |
setnframes() | 将帧数设置为n。 |
setcomptype() | 设置压缩类型和描述。目前,仅支持压缩类型NONE(无压缩)。 |
setparams() | 接受参数元组(nchannel,sampwidth,framerate,nframe,comptype,compname) |
tell() | 检索文件中的当前位置 |
writeframesraw() | 编写音频帧,而不进行校正。 |
writeframes() | 编写音频帧,并确保它们正确。 |
注意:请注意,在调用writeframes()
或writeframesraw()
之后设置任何参数都是无效的,任何try都会引发wave.Error。
Wave_read对象:
close() | 如果流是通过wave模块打开的,则将其关闭。 |
getnchannels() | 返回音频通道的数量(单声道为1,立体声为2)。 |
getsampwidth() | 返回以字节为单位的样本宽度。 |
getframerate() | 返回采样频率。 |
getnframes() | 返回音频帧数。 |
getcomptype() | 返回压缩类型(“ NONE”是唯一受支持的类型)。 |
getparams() | 返回一个namedtuple()(nchannels,sampwidth,framerate,nframe,comptype,compname),它等于get *()方法的输出。 |
readframes(n) | 作为字节对象读取和返回最多n帧音频。 |
rewind() | 将文件指针倒退到音频流的开头。 |