Skip to content

Releases: AydinAdnan/PulseVAD

v0.1.3 - ultra-lightweight package with pure-numpy frontend

Choose a tag to compare

@AydinAdnan AydinAdnan released this 09 Sep 04:06

pulsevad v0.1.3: ultra-lightweight release

this release slashes the package footprint from 69 packages down to only ~8 packages total, making pulsevad even lighter to install than Silero while maintaining bit-level numerical parity.

what changed:

  • ultra-lightweight core dependencies:
    cut default runtime dependencies from 13 heavy libraries down to 4:
    dependencies = [
        "numpy>=1.24.0",
        "onnxruntime>=1.16.0",
        "scipy>=1.11.0",
        "soundfile>=0.12.1",
    ]

v0.1.2 - Updated metrics on various Indian languages

Choose a tag to compare

@AydinAdnan AydinAdnan released this 03 Sep 11:53

Full Changelog: v0.1.1...v0.1.2

v0.1.1 - Complete documentation & model usage guide

Choose a tag to compare

@AydinAdnan AydinAdnan released this 03 Sep 07:00

PulseVAD v0.1.1

This release bundles full PyPI project documentation, updated package metadata, and comprehensive usage guides for all pre-trained model flavors (ONNX, PyTorch TorchScript JIT, and embedded C header).

what's in this release

  • Full pypi documentation: wired README.md into package metadata so the entire guide, benchmark tables, and code snippets render directly on PyPI.
  • Bundled model matrix: wheels now explicitly bundle all 7 pre-trained model artifacts inside pulsevad/data/:
    • pulsevad_2.1k_int8.onnx (default 2.1 KB INT8 quantized model)
    • pulsevad_2.1k.onnx (FP32 ONNX)
    • pulsevad_2.1k.jit (TorchScript JIT for zero-ONNX PyTorch environments)
    • pulsevad_2.1k.pth (PyTorch state dict)
    • pulsevad_weights.h (standalone C header with INT8 arrays for microcontrollers)
    • pulsevad_teacher_81k.onnx & pulsevad_teacher_81k.pth (81k teacher baseline)
  • Detailed usage guides: added copy-pasteable examples in README.md for:
    1. ONNX Runtime (INT8 vs FP32 vs Teacher)
    2. PyTorch TorchScript JIT
    3. Real-time streaming chunk-by-chunk processing (200 ms causal window)
    4. Audio file timestamp segmentation (get_speech_timestamps)
    5. Embedded C firmware integration on ARM Cortex-M, ESP32, and STM32
  • Benchmarks:
    • Outperforms Silero v6 on windy audio (0.938 vs 0.934 AUC) and DNS synthetic noise (0.891 vs 0.873 AUC) at 145x smaller size.
    • Outperforms NVIDIA MarbleNet on clean speech (0.976 vs 0.970 AUC) and windy audio (0.938 vs 0.910 AUC) at 43x smaller size and 3.1x lower latency.
    • Validated across 10 global & Indian languages (FLEURS) with +0.029 higher macro average AUC over Silero in noise.

v0.1.0 - Initial release: 2.1k ultra-tiny VAD for edge deployment

Choose a tag to compare

@AydinAdnan AydinAdnan released this 03 Sep 06:08

PulseVAD v0.1.0

An ultra-compact, 2,118-parameter voice activity detector designed for microcontrollers and edge hardware (2.1 KB INT8). strictly causal with zero lookahead.

Highlights

  • Ultra-tiny footprint: 2,118 parameters (2.1 KB as INT8, 8.5 KB as FP32).
  • Drop-in c header: ships with pulsevad_weights.h containing self-contained INT8 weight arrays and scales for embedded C/C++ firmware.
  • Silero-compatible python api:
    from pulsevad import load_pulsevad, read_audio, get_speech_timestamps
    model = load_pulsevad(onnx=True, quantized=True)
    wav = read_audio("speech.wav")
    timestamps = get_speech_timestamps(wav, model)