1.0.5 • Published 9 months ago

audio-segments-detector v1.0.5

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

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 detection
  • minSilenceDuration (number, default: 500): Minimum silence duration in milliseconds
  • samplingRate (number, default: 16000): Sampling rate in Hz

Methods

processBuffer(buffer, inputFormat)

Processes any supported audio format buffer.

  • Parameters:
    • buffer (Buffer): Audio buffer to process
    • inputFormat (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 seconds
  • end (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

1.0.5

9 months ago

1.0.4

9 months ago

1.0.3

9 months ago

1.0.2

9 months ago

1.0.1

9 months ago

1.0.0

9 months ago