Skip to content

Community project: FireRedVAD inference in pure Rust with Python bindings #23

Description

@di-osc

Hi FireRedVAD team,

Thanks for releasing FireRedVAD. I built a small community project around it:

https://github.com/di-osc/vad-burn

vad-burn provides FireRedVAD inference implemented in Rust with the Burn Flex CPU backend, and also exposes Python bindings.

Main features:

  • Pure Rust inference core, no Python runtime required for Rust usage
  • Python bindings via pip install vad-burn
  • Supports both offline VAD and streaming VAD
  • Uses the official FireRedVAD VAD weights for offline inference and Stream-VAD weights for streaming inference
  • Automatically downloads models from ModelScope
  • CPU-only inference

Benchmark on assets/vad_example.wav, 16kHz mono PCM, 70.47s, MacBook Pro M1, Burn Flex CPU backend:

Mode Avg time RTF Speedup
FireRedVAD offline 96.833 ms 0.001374 727.75x
FireRedVAD streaming, 600ms chunks 176.427 ms 0.002504 399.43x

Example Python usage:

from vad_burn import FireRedVadModel, VadOptions

vad = FireRedVadModel.from_modelscope()
segments = vad.detect(samples, 16000, VadOptions())

stream = vad.new_stream(VadOptions())
for chunk in chunks:
    segments = stream.push(chunk, 16000)
final_segments = stream.finish()

The project is not an official implementation, just a Rust/Burn-based inference library for users who want to embed FireRedVAD in Rust services, CLI tools, desktop apps, or Python pipelines without depending on the original PyTorch runtime.

If this is useful, I would be happy to receive feedback from the FireRedVAD maintainers or users.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions