| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
node-microphone provides microphone input in Node.js by spawning platform tools:
It returns the underlying PCM stream and also exposes info, error, and optional data events through an EventEmitter API.
The current 0.2.0 release also improves a few rough edges from 0.1.6:
Install the audio capture tool for your platform before using the package.
npm install node-microphoneTypeScript declarations are bundled with the package. The package now targets Node.js 12+.
Compared with 0.1.6, version 0.2.0 adds and changes:
const Microphone = require('node-microphone');
const mic = new Microphone({
rate: '16000',
channels: '1',
fileType: 'raw',
});
const micStream = mic.startRecording();
if (micStream) {
micStream.pipe(myWritableStream);
}
mic.on('info', (info) => {
console.log(info.toString());
});
mic.on('error', (error) => {
console.error(error);
});
setTimeout(() => {
mic.stopRecording();
}, 3000);If useDataEmitter is enabled, audio chunks are also emitted through mic.on('data', chunk) in addition to being available from the returned stream. Invalid option values throw synchronously from the constructor with a TypeError.
Creates a new microphone instance.
| Option | Value | Default |
|---|---|---|
| endian | 'big' or 'little' | 'little' |
| bitwidth | 8, 16, 24, or any value supported by the backend tool | '16' |
| encoding | 'signed-integer', 'unsigned-integer', or backend-specific value | 'signed-integer' |
| rate | Sample rate supported by the backend tool | '16000' |
| channels | Channel count supported by the backend tool | '1' |
| fileType | Output container or stream type supported by the backend tool | 'raw' |
| device | Input device identifier | Linux: 'plughw:1,0', Windows: 'default', macOS: SoX/CoreAudio device name |
| additionalParameters | Raw string arguments appended to the spawn command | false |
| spawnOptions | Options object passed to child_process.spawn() except stdio | undefined |
| useDataEmitter | Emit audio chunks through the data event | false |
Notes:
Starts the recording process and returns the spawned process stdout stream. If recording is already active, it returns undefined.
Stops the spawned recording process and clears the internal process reference.
import Microphone = require('node-microphone');
const mic = new Microphone({
rate: 16000,
channels: 1,
fileType: 'wav',
});
mic.on('close', (code, signal) => {
console.log(code, signal);
});npm testThe test suite covers Linux, macOS, and Windows command construction using mocked child processes.
Thanks to ashishbajaj99 and vincentsaluzzo for related microphone modules that helped shape this package.
MIT. See LICENSE.
| Back | FazBrowse Home | New Git URL |