使用paInt16
用pyaudio录制音频时,它为我提供了16位整数,表示为两个字节。经过研究,我得出结论,它必须是-32768到32767之间的数字。
我将音频另存为wav文件,并用librosa.core.load
重新加载。
我确实检索了浮点值* 32767,看看它是否生成原始的16位整数,但根本不匹配。
我的问题是
floating point time series
的答案 0 :(得分:1)
研究和探索librosa代码后,这是我的发现。
不匹配是由于wav字节数组为低端字节
该表示形式称为Pulse-code modulation(PCM)。每个样本(单个整数)代表缩放到预定位范围(通常为16位)范围内的音频大小。请参阅audio bit depth了解详情
鉴于PCM是16位表示形式,每个样本的范围为[-32768,32767]。 librosa只需将16位转换为有符号的short,然后除以32768(不是32767!)就可以缩小到[-1,1]范围。请参考my sample code进行准确转换