在 NodeJS 中将原始流转换为 WAV 流

Convert Raw to Wav Streams in NodeJS

本文关键字:转换 WAV 原始 NodeJS      更新时间:2023-10-16

我正在使用 nodeJS 库naudio -link— 来录制来自 2 个麦克风的声音(总共 4 个声道音频,每个麦克风都是立体声(。此库在以下规格中吐出.raw文件:16 BIT, 48000Hz Sample Rate, Channel Count 4

// var portAudio = require('../index.js');
var portAudio = require('naudiodon');
var fs = require('fs');
//Create a new instance of Audio Input, which is a ReadableStream
var ai = new portAudio.AudioInput({
  channelCount: 4,
  sampleFormat: portAudio.SampleFormat16Bit,
  sampleRate: 48000,
  deviceId: 13
});
ai.on('error', console.error);
//Create a write stream to write out to a raw audio file
var ws = fs.createWriteStream('rawAudio_final.raw');
//Start streaming
ai.pipe(ws);
ai.start();
process.once('SIGINT', ai.quit);

我尝试将其转换为两个单独的.wav文件,而不是.raw文件。有了上述编码和信息,最好的方法是什么?我试图四处寻找简单的方法来去交错和获得.wav但似乎碰壁了。

该插件是一个名为 portaudio 的C++库的包装器,根据其文档,该库支持写入 WAV 文件。

您可以做的是扩展插件并将NodeJS函数绑定到写入WAV的底层C++函数。如果这是一个问题,这将为您提供良好的性能。

如果你想要更简单的东西,你可以查找执行转换的实用程序,并使用这样的ex从脚本中调用它们

看起来和这个问题类似。

你也可以看看这里,了解如何从javascript创建wav文件。