python处理wav数据

最近需要将.wav文件中的数据抽离出来 效果是:

 

使用python中的wave模块

具体的代码如下:

'''
2020-6-1
从wav文件中剥离出pcm数据
将数据转换为十六进制输出

wave的操作说明

'''

import wave

filename = "C:\\Users\\JamesWu\\Desktop\\wave\\female.wav"
f = wave.open(filename,'rb')
params = f.getparams()

print("wav params is : ", params)

fdata = open("C:\\Users\\JamesWu\\Desktop\\wave\\data.txt",'w')

for i in range(1500):
    data = f.readframes(16)
    ldata = list(data)
    sdata = str(ldata)
    '''
    [237, 255, 238, 255, 235, 255, 235, 255, 241, 255, 240, 255, 245, 255, 242, 255, 247, 255, 254, 255, 251, 255, 247, 255, 249, 255, 242, 255, 249, 255, 244, 255]
    '''
    temp = sdata[1:-1]
    temp1 = temp.split(',')
    temp2 = "";
    for x in range(len(temp1)):
        temp2 += hex(int(temp1[x]))
        if x != len(temp1)-1:
            temp2 += ","
    fdata.writelines(temp2)
    fdata.write(",\n")


f.close()
fdata.close()
print("数据解析完成")

通过这种方式 可以很容易获取到wav中的pcm数据

Guess you like

Origin blog.csdn.net/Wuzm_/article/details/106710317