我想在Python中将wave函数的读取函数的结果标准化。我想,应该把它除以32767。但是当我将结果与MATLAB的结果进行比较时,将其除以32768,可以得到更好的结果。理想情况下,它应该除以32768吗?
Python代码:
a = read('male 1.wav')
data = np.array(a[1],dtype=float)
dataDivide32768 = data/32768
dataDivide32767 = data/32767
print(dataDivide32768)
print(dataDivide32767)
结果:
dataDivide32768:
[ -3.05175781e-05 6.10351562e-05 9.15527344e-05 ..., ]
dataDivide32767:
[ -3.05185095e-05 6.10370190e-05 9.15555284e-05 ..., ]
MATLAB代码:
filename = 'male 1.wav';
[y,Fs] = wavread(filename);
结果:
[-3.05175781250000e-05 6.10351562500000e-05 9.15527343750000e-05 ...]
答案 0 :(得分:1)
假设wav文件是16位整数,范围是[-32768,32767],因此除以32768(2 ^ 15)将得到适当的二进制补码范围[-1,2-2 ^ -15]