最近需要将.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数据