audio-segments-detector
v1.0.5
Published
A Node.js module for detecting speech segments in audio files
Downloads
394
Maintainers
Readme
Audio Segments Detector
A Node.js module for detecting speech segments in audio buffers. This module analyzes audio data and identifies segments based on energy levels, making it useful for speech detection, silence removal, and audio segmentation tasks.
Installation
npm install audio-segments-detector
Features
- Detect speech segments in audio buffers
- Support for various audio formats (automatically converted to WAV)
- Configurable detection parameters
- TypeScript support
- Promise-based API
- Memory efficient buffer-based processing
Usage
const { AudioSegmentsDetector } = require('audio-segments-detector');
// Basic usage with buffer
async function example() {
try {
const detector = new AudioSegmentsDetector();
const audioBuffer = /* your audio buffer */;
const segments = await detector.processBuffer(audioBuffer, 'mp3');
console.log(segments);
// Output: [{ start: 0, end: 1.5 }, { start: 2.1, end: 3.8 }, ...]
} catch (error) {
console.error('Error:', error);
}
}
// Advanced usage with custom options
async function advancedExample() {
try {
const detector = new AudioSegmentsDetector({
threshold: 0.02,
minSilenceDuration: 700,
samplingRate: 44100
});
const wavBuffer = /* your WAV buffer */;
const segments = await detector.processBuffer(wavBuffer, 'wav');
console.log(segments);
} catch (error) {
console.error('Error:', error);
}
}
// Direct WAV buffer processing
async function processWavExample() {
try {
const detector = new AudioSegmentsDetector();
const wavBuffer = /* your WAV buffer */;
const segments = await detector.processWavBuffer(wavBuffer);
console.log(segments);
} catch (error) {
console.error('Error:', error);
}
}
API
Class: AudioSegmentsDetector
Constructor
new AudioSegmentsDetector([options])
Options
threshold
(number, default: 0.01): Energy threshold for detectionminSilenceDuration
(number, default: 500): Minimum silence duration in millisecondssamplingRate
(number, default: 16000): Sampling rate in Hz
Methods
processBuffer(buffer, inputFormat)
Processes any supported audio format buffer.
- Parameters:
buffer
(Buffer): Audio buffer to processinputFormat
(string): Format of the input buffer (e.g., 'mp3', 'wav', 'ogg')
- Returns: Promise<Array>
processWavBuffer(buffer)
Processes WAV format buffer directly.
- Parameters:
buffer
(Buffer): WAV audio buffer to process
- Returns: Promise<Array>
getTimestamps()
Returns the current detected segments.
- Returns: Array
Segment Object
Each segment in the returned array has the following properties:
start
(number): Start time in secondsend
(number): End time in seconds
Requirements
- Node.js >= 14.0.0
- FFmpeg (automatically installed via ffmpeg-static)
Dependencies
- wav-decoder: For WAV file decoding
- fluent-ffmpeg: For audio format conversion
- ffmpeg-static: For FFmpeg binaries
License
MIT