Python对wav格式文件操作最常用的库为“wave”,但使用时发现其API和用法不如MATLAB方便简洁,比如其中涉及到字节转换等操作。
为了方便读写wav文件,本文基于“wave”库,封装编写了更高一级的API,主要包括文件读、写、查看文件信息,使用方法同matlab类似。API及调用方式比较简单,示例如下:
- 查看wav文件信息
import ltwavelib
lw = ltwavelib.LtWave()
lw.audio_info('test.wav')
输出结果:
Audio Information:
--channels number: 2
--bits of sample: 16
--sample rate: 48000
--duration: 5.0s
- 读取wav数据(默认会将声道数据绘图显示)
'''
返回单声道或双声道数据(默认返回浮点类型1D Array,可指定为整型1byte或2byte)
双声道数据排列:左右左右……
'''
audio_data = lw.audio_read('test.wav')
- 保存wav文件
# 接口传入数据类型:1D array(单声道或双声道)
# 数据范围[-1, 1],超过会被依据最大值进行Scale并warning
# 双声道数据默认排列规则:左右左右……
# 写入数据类型:默认16Bit,可指定为8Bit
test_data = np.array([1, 0.1, 0.9])
lw.audio_write('test2.wav', test_data)
以上具体实现代码,如有需要,请移步至:https://download.csdn.net/download/cshy2013/12858880