Python 读取wav文件-本机int16值不加倍

Python 读取wav文件-本机int16值不加倍,python,c++,audio,Python,C++,Audio,是否可以在其库中提取与Python相同的值 例如,我使用C++,并且设法从A.WAV文件中提取double类型的值,但是,当在Python中工作时,这些值为It16格式。以下是我到目前为止的情况: uint16_t c; for(unsigned i=0; (i < size); i++) { c = (unsigned)(data[i]); rawSignal.push_back(c); } 我将显示以下图形: 然而,使用上述方法,我得到以下结果: 注意:使用双

是否可以在其库中提取与Python相同的值

例如,我使用C++,并且设法从A.WAV文件中提取double类型的值,但是,当在Python中工作时,这些值为It16格式。以下是我到目前为止的情况:

 uint16_t c;
 for(unsigned i=0; (i < size); i++)
 {
    c = (unsigned)(data[i]);
    rawSignal.push_back(c);
 }
我将显示以下图形:

然而,使用上述方法,我得到以下结果:


注意:使用双值时,它会正确显示。那么,有没有有效的方法将double转换为“uint16”格式?

little endian/big endian?16位PCM数据是有符号的,请尝试使用int16_t而不是uint16_t。您确定波形格式是16位PCM吗?尽管还有其他可能的编码,但大多数wav文件都是小端、有符号的16位。8位wav文件是无符号的,但它们是令人沮丧的例外,不是规则。@BjornRoche有什么可能的想法吗?
w = wave.open(wavefile,"rb")
p = w.getparams()
s = w.readframes(p[3])
w.close()
sd = np.fromstring(s, np.int16)