
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
A comprehensive JavaScript/TypeScript library for audio feature extraction, designed for machine learning applications and voice AI systems
A JavaScript/TypeScript library for real-time audio feature extraction and processing. Works in both browsers and Node.js.
npm install audio-ml
# or
yarn add audio-ml
# or
pnpm add audio-ml
https://github.com/user-attachments/assets/aae5ff8c-120b-4c6c-a4d4-7348dacc3ca0
16 low-level audio analyzers, all sharing the same interface: analyzer.analyzeFrame(pcm: Float32Array).
import { FFTAnalyzer, MFCCAnalyzer } from 'audio-ml';
const fft = new FFTAnalyzer({ sampleRate: 44100, fftSize: 1024 });
const mfcc = new MFCCAnalyzer({ sampleRate: 44100 });
const spectrum = fft.analyzeFrame(pcmFrame); // Float32Array
const features = mfcc.analyzeFrame(pcmFrame); // number[]
| Analyzer | Output | Description |
|---|---|---|
| FFT | Float32Array | Magnitude spectrum |
| MFCC | number[] | 13 mel-frequency cepstral coefficients |
| PLP | number[] | Perceptual linear prediction |
| Mel Spectrogram | number[] | Mel-scaled power spectrum |
| Constant-Q Transform | Float32Array | Log-spaced frequency analysis |
| Chroma Features | number[] | 12-tone pitch class distribution |
| Spectral Centroid | number | Frequency center of mass (Hz) |
| Spectral Rolloff | number | 85th-percentile frequency (Hz) |
| Spectral Bandwidth | number | Spectral spread around centroid (Hz) |
| Spectral Flatness | number | Noise-like vs tonal content (0–1) |
| Zero Crossing Rate | number | Rate of sign changes |
| RMSE | number | Root mean square energy |
| Waveform Envelope | Float32Array | Amplitude envelope |
| Autocorrelation | Float32Array | Periodicity / pitch detection |
| LPC | number[] | Linear predictive coding coefficients |
| Wavelet Transform | Float32Array[] | Multi-level time-frequency decomposition |
Higher-level tools built on top of the analyzers. Import from audio-ml/applications. All applications extend BaseApplication with an event-driven API: call processFrame() per audio frame, listen for events.
import { VAD, AudioDenoiser, VoicemailBeepDetector } from 'audio-ml/applications';
Detects speech vs silence by combining RMSE, Zero Crossing Rate, Spectral Flatness, and Spectral Centroid with weighted scoring and temporal smoothing.
const vad = new VAD({ sampleRate: 44100 });
vad.on('speech-start', ({ confidence }) => console.log('Speaking', confidence));
vad.on('speech-end', ({ confidence }) => console.log('Silent', confidence));
// Per frame
const result = vad.processFrame(pcm); // { isSpeech, confidence, features }
Removes background noise via spectral subtraction. Automatically estimates the noise profile from initial silence using RMSE and Spectral Flatness, then subtracts it in the frequency domain.
const denoiser = new AudioDenoiser({ sampleRate: 44100, fftSize: 2048 });
denoiser.on('noise-estimated', () => console.log('Noise profile ready'));
denoiser.on('denoised-frame', ({ audio, snr }) => { /* clean audio */ });
const { audio, snr, noiseReduction } = denoiser.processFrame(pcm);
Detects tonal beeps using FFT peak detection across configurable frequency ranges, with sustained-tone tracking and duration filtering.
const detector = new VoicemailBeepDetector({
sampleRate: 44100,
fftSize: 2048,
frequencyRanges: [
{ min: 400, max: 500, name: 'Low beep' },
{ min: 900, max: 1100, name: 'Mid beep' },
]
});
detector.on('beep-detected', ({ frequency, duration, confidence }) => {
console.log(`Beep at ${frequency} Hz`);
});
detector.processFrame(pcm);
# Run the interactive demo
cd demo && yarn install && yarn dev
The demo includes live visualizations of all 16 analyzers plus interactive pages for each application.
To add a new analyzer, create a class in src/analysis/ implementing analyzeFrame(pcm: Float32Array) and export it from src/analysis/index.ts.
To add a new application, extend BaseApplication in src/applications/, implement processFrame(), and export from src/applications/index.ts.
MIT - See LICENSE file for details
FAQs
A comprehensive JavaScript/TypeScript library for audio feature extraction, designed for machine learning applications and voice AI systems
We found that audio-ml demonstrated a healthy version release cadence and project activity because the last version was released less than 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.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.