如何规范化python中的wave读取?

时间:2015-08-19 06:14:56

标签: python matlab

我想在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  ...]

1 个答案:

答案 0 :(得分:1)

假设wav文件是16位整数,范围是[-32768,32767],因此除以32768(2 ^ 15)将得到适当的二进制补码范围[-1,2-2 ^ -15]