如何从原始字节重建 PCM 样本?
How to reconstruct PCM samples from raw bytes?
我正在使用包 react-native-audio-record 录制音频。我想使用临时数据来可视化东西。如此处的 example (函数 AudioRecord.on) 所示:
const options = {
sampleRate: 16000,
channels: 1,
bitsPerSample: 16,
wavFile: 'test.wav'
};
AudioRecord.init(options);
AudioRecord.on('data', data => {
const chunk = Buffer.from(data, 'base64');
console.log('chunk size', chunk.byteLength);
// do something with audio chunk
});
如何将变量块解码为 PCM?据另一个论坛所述,此块不包括 .wav 文件的 headerBytes。
如评论中所述,在纯 JavaScript 中重建 PCM 是乏味的。因此,我使用 node-package node-wav(仅在包含 header 时有效)如下:
存储特定wav选项的header:
const header = Buffer.from([82, 73, 70, 70, 248, 167, ... ])
并按如下方式连接数据:
import wav from 'node-wav';
AudioRecord.on('data', data => {
const chunks = [header]
const chunk = Buffer.from(data, 'base64');
chunks.push(chunk)
const pcm = wav.decode(Buffer.concat(chunks)).channelData
});
此方法只有在您可以重建 header 时才有效。另一方面,包 node-wave 表示为 high performance WAV decoder and encoder .
我正在使用包 react-native-audio-record 录制音频。我想使用临时数据来可视化东西。如此处的 example (函数 AudioRecord.on) 所示:
const options = {
sampleRate: 16000,
channels: 1,
bitsPerSample: 16,
wavFile: 'test.wav'
};
AudioRecord.init(options);
AudioRecord.on('data', data => {
const chunk = Buffer.from(data, 'base64');
console.log('chunk size', chunk.byteLength);
// do something with audio chunk
});
如何将变量块解码为 PCM?据另一个论坛所述,此块不包括 .wav 文件的 headerBytes。
如评论中所述,在纯 JavaScript 中重建 PCM 是乏味的。因此,我使用 node-package node-wav(仅在包含 header 时有效)如下:
存储特定wav选项的header:
const header = Buffer.from([82, 73, 70, 70, 248, 167, ... ])
并按如下方式连接数据:
import wav from 'node-wav';
AudioRecord.on('data', data => {
const chunks = [header]
const chunk = Buffer.from(data, 'base64');
chunks.push(chunk)
const pcm = wav.decode(Buffer.concat(chunks)).channelData
});
此方法只有在您可以重建 header 时才有效。另一方面,包 node-wave 表示为 high performance WAV decoder and encoder .