A codec development lab for a custom low-bitrate voice codec (target ~400–700 bps,
better intelligibility than MELPe 600). Grew out of debugging the melpe-rs
vocoder; its proven LPC/LSF/synthesis/excitation primitives are now vendored
at dsp/src/melpe/ (no external dependency).
dsp/(voxdsp) — pure DSP, no GUI. WAV I/O, resampling, STFT spectrogram, pitch (NCCF with wide window + surface), per-frame LPC→LSF/formant tracks. Headless-testable. The codec itself will grow here.app/(voxlab) — eframe/egui GUI that drivesvoxdspand renders the analysis: waveform, spectrogram, pitch track, formant/LSF tracks. Substrate for the pitch-tracker and adaptive-keyframe work.
cargo run --release # launches the GUI; type a WAV path, Load + Analyze
cargo run --release --example smoke -p voxdsp # headless pipeline checkPlayback currently shells out to afplay (macOS).
- Analysis substrate + visualization (waveform, spectrogram, pitch, formants)
- Pitch: Viterbi/DP tracking with continuity + octave cost (+ octave-dip repair)
- Transient/onset detector for consonant attacks (+ plosive/fricative/voiced classes)
- Adaptive keyframes: variable-rate bit allocation (spend where signal morphs)
- Codec encode/decode (real bitstream, split-band wideband); A/B in the GUI
- Hit 400–700 bps with quality: tune keyframe tolerances / VQ / frame rate by ear