UNPKG

mic-ts

Version:

A simple stream wrapper for arecord (Linux (including Raspbian)) and sox (Mac/Windows). Returns a Passthrough stream object so that stream control like pause(), resume(), pipe(), etc. are all available.

63 lines (50 loc) 1.38 kB
import fs from "fs"; import mic from "./index.js"; const micInstance = mic({ rate: "16000", channels: "1", debug: false, exitOnSilence: 6, }); const micInputStream = micInstance.getAudioStream(); const outputFileStream = fs.createWriteStream("output.raw"); micInputStream.pipe(outputFileStream); let chunkCounter = 0; micInputStream.on("data", function (data: Buffer) { console.log( "Received Input Stream of Size %d: %d", data.length, chunkCounter++, ); }); micInputStream.on("error", function (error) { console.log("Error in Input Stream: " + error); }); micInputStream.on("startComplete", function () { console.log("Got SIGNAL startComplete"); setTimeout(function () { micInstance.pause(); }, 5000); }); micInputStream.on("stopComplete", function () { console.log("Got SIGNAL stopComplete"); }); micInputStream.on("pauseComplete", function () { console.log("Got SIGNAL pauseComplete"); setTimeout(function () { micInstance.resume(); }, 5000); }); micInputStream.on("resumeComplete", function () { console.log("Got SIGNAL resumeComplete"); setTimeout(function () { micInstance.stop(); }, 5000); }); micInputStream.on("silence", function () { console.log("Got SIGNAL silence"); }); micInputStream.on("processExitComplete", function () { console.log("Got SIGNAL processExitComplete"); }); micInstance.start();