2017-07-13 28 views
2

對於一個項目,我解碼wav文件並使用數據通道中的值。我正在使用節點包「node-wav」。從我所理解的數值應該是成千上萬,但我看到的值在-1和1之間。如果我想要實際值,我是否需要將縮放值乘以某個數字?WAV頻道數據值如何縮放?

我問的部分原因是我還沒有完全理解WAV文件如何存儲必要的數據。

回答

3

我不知道究竟如何Node.js的是,但通常的音頻數據存儲在浮點值,因此它是有道理的,看看它在-1和1

我從網站上拉到什麼之間縮放:

數據格式

數據總是返回Float32Arrays。在支持讀寫64位浮點WAV文件的同時,數據被截斷爲32位浮點數。

和比特序,如果你需要它的一些原因:

字節序

該模塊假定小端的CPU,這對於幾乎每一個處理器這些天是真(特別是英特爾和ARM)。

如果您需要將其從浮點數縮放到固定點整數,則需要將該值乘以位數。例如,如果你想轉換爲16位整數, y = (2^15 - 1) * x,其中x是數據值,y是縮放值。