【发布时间】:2021-10-18 16:24:07
【问题描述】:
我正在使用 react-native-audio-record 包录制音频。我想使用临时数据来可视化东西。如example (function 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。
【问题讨论】:
-
这可以分为多个步骤,你问如何将base64转换为字节数组stackoverflow.com/questions/21797299/…,然后如何将数组缓冲区转换为音频缓冲区stackoverflow.com/questions/50512436/…
-
感谢您的回复:我刚刚编辑了问题。我相信,我已经通过 Buffer.from(data,"base64") 获得了数组缓冲区。当我使用 react-native 时,我不能使用 BaseAudioContext。有解决办法吗?
-
您的选择是包装原生音频 API(乏味)或在纯 JavaScript 中执行此操作(也很乏味)。这些问题仍然有多个部分。第一个是改变字节为PCM,第二个是how to DFT / FFT in JavaScript
-
fft 部分应该很清楚 - 再次编辑问题。我不知道怎么去 PCM。
-
那么你的问题是:如何从原始字节重构 PCM 样本?
标签: react-native audio base64 wav record