在NodeJS中将Raw转换为Wav Streams

Cip*_*her 8 c++ audio portaudio node.js

我正在使用nodeJS库naudio- 链接 - 来记录来自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);
Run Code Online (Sandbox Code Playgroud)

.raw我试图将其转换为两个单独的文件,而不是.wav文件.有了上面的编码和信息,最好的方法是什么?我试图四处寻找解除交织和获取的简单方法,.wav但似乎正在撞墙.

小智 6

插件是C++库的包装器portaudio,根据其文档支持写入WAV文件.

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

如果你想要的东西更容易,你可以查找该做的转换和从您的脚本中调用他们事业ex


A S*_*ANI 0

看起来类似于这个问题

您还可以查看此处以了解如何从 javascript 创建 wav 文件。