Package Exports
- node-audiorecorder
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (node-audiorecorder) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Audio recorder
Audio recorder for Node.js, delivers a 16-bit signed-integer linear pulse modulation WAV stream. Based of Gilles De Mey's node-record-lpcm16.
Installation
npm install --save node-audiorecorderDependencies
This module requires you to install SoX and it must be available in your $PATH.
For Linux
sudo apt-get install sox libsox-fmt-allFor MacOS
brew install soxFor Windows
Usage
Constructor
// Import module.
const AudioRecorder = require('node-audiorecorder');
// Options is an optional parameter for the constructor call.
// If an option is not given the default value, as seen below, will be used.
const options = {
program: `rec`, // Which program to use, either `arecord`, `rec`, or `sox`.
device: null, // Recording device to use, e.g. `hw:1,0`
bits: 16, // Sample size. (only for `rec` and `sox`)
channels: 1, // Channel count.
encoding: `signed-integer`, // Encoding type. (only for `rec` and `sox`)
format: `S16_LE`, // Encoding type. (only for `arecord`)
rate: 16000, // Sample rate.
type: `wav`, // Format type.
// Following options only available when using `rec` or `sox`.
silence: 2, // Duration of silence in seconds before it stops recording.
thresholdStart: 0.5, // Silence threshold to start recording.
thresholdStop: 0.5, // Silence threshold to stop recording.
keepSilence: true // Keep the silence in the recording.
};
// Optional parameter intended for debugging.
// The object has to implement a log and warn function.
const logger = console;
// Create an instance.
let audioRecorder = new AudioRecorder(options, logger);If you can't capture any sound with 'arecord' try to running 'arecord -l' to which devices are available.
See the arecord documentation for more detail on its options.
See the sox documentation for more detail on the rec and sox options.
Methods
// Creates and starts the recording process.
audioRecorder.start();
// Stops and removes the recording process.
audioRecorder.stop();
// Returns the stream of the recording process.
audioRecorder.stream();Examples
See the examples directory for example usage.
For another example see the node-hotworddetector module, or Electron-VoiceInterfaceBoilerplate's input.js.
Troubleshooting
Windows continues recording
If you have issues with continues recording on Windows 10 with SoX 14.4.2 or later, install version 14.4.1 instead.