Skip to main content

Module converter

Module converter 

Source
Expand description

High-level audio format conversion pipeline.

This module provides a unified API for detecting common audio formats and converting WAV/PCM input to the crate’s standard format: mono, 16kHz, normalized f32 samples.

§Pipeline Stages

  1. Format Detection: Identify audio container format (WAV, MP3, FLAC, etc.)
  2. Decoding: Extract PCM samples from WAV input (supports 16/24-bit)
  3. Resampling: Convert to 16kHz standard rate (linear interpolation)
  4. Channel Mixing: Downmix to mono (simple averaging)

§Performance Contract

  • Target Latency: <10ms for 3-second audio clip
  • Memory: Streaming-friendly, minimal allocations
  • Quality: RMS error <0.01, zero clipping

§Example

use speech_prep::converter::AudioFormatConverter;

let audio_bytes = std::fs::read("recording.wav")?;
let standard = AudioFormatConverter::convert_to_standard(&audio_bytes)?;

assert!(!standard.samples.is_empty());

Structs§

AudioFormatConverter
High-level audio format converter.
ConversionMetadata
Metadata tracking the complete conversion pipeline journey.
StandardAudio
Standardized audio output: mono, 16kHz, normalized samples.