
Research
/Security News
Mini Shai-Hulud Campaign Hits Red Hat Cloud Services npm Packages
A mini Shai-Hulud campaign compromised Red Hat Cloud Services npm packages to steal developer and CI/CD secrets during installation.
electron-audio-record
Advanced tools
Record a microphone input stream using SoX binaries for Electron apps
This module is an extension of node-record-lpcm16 to include binaries for ease of usage in Electron apps. Depending on demand, may explore implementing hot word detect given Snowboy's deprecation. This library records audio only using SoX, so there is no extra video data overhead during processing.
Records a 16-bit signed-integer linear pulse modulation code WAV audio file. These audio files are fully compatible with both the @google-cloud/speech and the Wit.ai Speech API.
Note: For MacOS, must enable permissions for utilizing audio devices. Additionally, should asarUnpack this package within node_modules so that the binaries are accessible to the app in Electron.
npm install electron-audio-record
None. Feel free to remove certain binaries in bin/ according to platforms that your app will be used on.
sampleRate : 16000 // audio sample rate
channels : 1 // number of channels
threshold : 0.5 // silence threshold (rec only)
endOnSilence : false // automatically end on silence (if supported)
thresholdStart : null // silence threshold to start recording, overrides threshold (rec only)
thresholdEnd : null // silence threshold to end recording, overrides threshold (rec only)
silence : '1.0' // seconds of silence before ending
device : null // recording device (e.g.: 'plughw:1')
audioType : 'wav' // audio type to record
const recorder = require('electron-audio-record')
const fs = require('fs')
const file = fs.createWriteStream('test.wav', { encoding: 'binary' })
recorder.record({
sampleRate: 44100
})
.stream()
.pipe(file)
You can pause, resume and stop the recording manually.
const recorder = require('electron-audio-record')
const fs = require('fs')
const file = fs.createWriteStream('test.wav', { encoding: 'binary' })
const recording = recorder.record()
recording.stream().pipe(file)
// Pause recording after one second
setTimeout(() => {
recording.pause()
}, 1000)
// Resume another second later
setTimeout(() => {
recording.resume()
}, 2000)
// Stop recording after three seconds
setTimeout(() => {
recording.stop()
}, 3000)
Some recorders might be logging errors to stderr and throw an exit code.
You can catch early termination by adding an error event listener to the stream.
To debug the recorder see debugging below.
recording.stream()
.on('error', err => {
console.error('recorder threw an error:', err)
})
.pipe(file)
Debug logging is implemented with visionmedia/debug
DEBUG=record node examples/file.js
Here's how you can write your own Siri in just 10 lines of code.
const recorder = require('electron-audio-record')
const request = require('request')
const witToken = process.env.WIT_TOKEN // get one from wit.ai!
function parseResult (err, resp, body) {
if (err) console.error(err)
console.log(body)
}
const recording = recorder.record()
recording
.stream()
.pipe(request.post({
'url': 'https://api.wit.ai/speech?client=chromium&lang=en-us&output=json',
'headers': {
'Accept': 'application/vnd.wit.20160202+json',
'Authorization': `Bearer ${witToken}`,
'Content-Type': 'audio/wav'
}
}, parseResult))
setTimeout(() => {
recording.stop()
}, 3000) // Stop after three seconds of recording
FAQs
Record a microphone input stream using SoX binaries for Electron apps
The npm package electron-audio-record receives a total of 9 weekly downloads. As such, electron-audio-record popularity was classified as not popular.
We found that electron-audio-record demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
/Security News
A mini Shai-Hulud campaign compromised Red Hat Cloud Services npm packages to steal developer and CI/CD secrets during installation.

Research
/Security News
The North Korean malware loader hides in a Packagist-listed package and its GitHub branch to fetch and execute remote code in a likely Contagious Interview-style lure.

Security News
The Rust project is moving toward formal rules on LLM use in contributions after months of internal debate over maintainer burden, code quality, and contributor experience.