FireRedVAD-GGUF / README.md
Strg-Alt-Entf-0x00's picture
Update README.md with new scientific benchmarks and remove outdated CMVN warning
3914230 verified
|
Raw
History Blame Contribute Delete
5.33 kB
---
tags:
- voice-activity-detection
- gguf
- multilingual
- vad
- audio-event-detection
- aed
- quantization
- dfsmn
- audio
- speech
pipeline_tag: voice-activity-detection
base_model: FireRedTeam/FireRedVAD
---
# FireRedVAD GGUF Models
Pre-converted [FireRedVAD](https://github.com/FireRedTeam/FireRedVAD) models in **GGUF format** for cross-platform, high-performance C++ inference. Includes Standard VAD, Streaming VAD, and Audio Event Detection (AED) with multiple quantization options.
- **Original Models:** [FireRedTeam/FireRedVAD](https://huggingface.co/FireRedTeam/FireRedVAD)
- **C++ Inference Engine & Conversion Tools:** [https://github.com/Strg-Alt-Entf-0x00/firered-vad](https://github.com/Strg-Alt-Entf-0x00/firered-vad)
*(Update 2026-08-30: Models re-uploaded to fix a mathematical transposition bug in the FSMN lookahead filters. These models now have 100% exact parity with the original PyTorch implementation).*
## ⚑ Quick Start (Python / Hub)
```python
pip install huggingface-hub
from huggingface_hub import hf_hub_download
# Download streaming VAD (INT8-CH, recommended)
model_path = hf_hub_download(
repo_id="Strg-Alt-Entf-0x00/FireRedVAD-GGUF",
filename="stream-vad/int8-ch/firered-stream-vad-int8-ch.gguf"
)
```
For the highly-optimized **Native C++ Engine** (no PyTorch required, up to 53x realtime), see the [Integration Repository](https://github.com/Strg-Alt-Entf-0x00/firered-vad).
---
## πŸ“ Available Models
All models follow this structure: `{model_type}/{quantization}/{filename}.gguf`
### `stream-vad/` β€” Real-time Streaming VAD (Causal, Low Latency)
Best for real-time voice activity detection. Fully causal β€” no future context needed. Optimized for streaming applications with 10ms frame processing. Achieves up to **53.6x realtime** performance on a single CPU core.
| Quantization | Path | Size | MAE vs FP32 | SQNR | Notes |
|:---|:---|:---|:---|:---|:---|
| **INT8-CH** | `stream-vad/int8-ch/` | 601 KB | 0.000985 | 59.4 dB | **Recommended for Edge / IoT**. Per-channel quantization, near-FP32 accuracy |
| **INT8** | `stream-vad/int8/` | 574 KB | 0.001918 | 50.5 dB | Per-tensor quantization, good accuracy |
| **INT16** | `stream-vad/int16/` | 1.14 MB | 0.000077 | 94.2 dB | High precision, 2x memory |
| **FP32** | `stream-vad/fp32/` | 2.28 MB | 0.0 | ∞ | **Recommended for Desktop / Server**. Reference quality, 100% precision |
### `vad/` β€” Standard VAD (Bidirectional, High Accuracy)
Uses bidirectional context (lookback + lookahead). Higher accuracy than `stream-vad`, but requires buffering full audio segments. Best for offline/batch processing.
Performance: **97.57% F1** on FLEURS-VAD-102 dataset. Runs at **31.3x realtime**.
| Quantization | Path | Size | MAE vs FP32 | SQNR | Notes |
|:---|:---|:---|:---|:---|:---|
| **INT8-CH** | `vad/int8-ch/` | 627 KB | 0.000985 | 59.4 dB | **Recommended for Edge / IoT** |
| **INT8** | `vad/int8/` | 595 KB | 0.001957 | 50.4 dB | Good accuracy, minimal size |
| **INT16** | `vad/int16/` | 1.18 MB | 0.000079 | 94.2 dB | High precision |
| **FP32** | `vad/fp32/` | 2.36 MB | 0.0 | ∞ | **Recommended for Desktop / Server** |
### `aed/` β€” Audio Event Detection (Multi-class)
Simultaneous detection of speech, music, and singing in 100+ languages. Runs at **31.7x realtime**.
| Quantization | Path | Size | MAE vs FP32 | SQNR | Notes |
|:---|:---|:---|:---|:---|:---|
| **INT8-CH** | `aed/int8-ch/` | 628 KB | 0.000985 | 59.4 dB | **Recommended for Edge / IoT** |
| **INT8** | `aed/int8/` | 596 KB | 0.001957 | 50.4 dB | Good accuracy |
| **INT16** | `aed/int16/` | 1.18 MB | 0.000079 | 94.2 dB | High precision |
| **FP32** | `aed/fp32/` | 2.36 MB | 0.0 | ∞ | **Recommended for Desktop / Server** |
---
## πŸ” Quantization Details
### Why INT8-CH (Per-Channel) is Recommended
**Problem with standard INT8 (per-tensor)**: DFSMN architectures have wide variance in weight distribution across output channels. A single global scale factor per tensor cannot capture this range accurately, causing silent accuracy degradation.
**Solution: INT8 Per-Channel (`int8-ch`)**: Assigns one scale factor per output channel. This preserves near-FP32 accuracy (MAE < 0.001, SQNR > 59 dB) while maintaining INT8 speed and memory efficiency.
### Quantization Quality Metrics (Per Model)
Each model includes a `-debug.json` file with per-tensor quantization statistics:
- **MAE** (Mean Absolute Error): Average difference from FP32
- **SQNR** (Signal-to-Quantization-Noise Ratio): Quality metric in dB
- **Per-channel scale factors**: Min/max/mean scales per layer
---
## βš™οΈ Hardware Requirements
**Minimum (INT8-CH models)**
- RAM: ~5 MB for model + ~2 MB for inference buffers
- CPU: Any modern x86_64, ARM, or RISC-V processor
- Storage: ~600 KB per model
**Recommended (FP32 models)**
- RAM: ~10 MB for model + ~3 MB for inference buffers
- CPU: SIMD support (SSE, AVX, NEON) for faster inference
- Storage: ~2.3 MB per model
## πŸ“œ License & Attribution
- **FireRedVAD by Xiaohongshu (FireRedTeam)** β€” Apache 2.0
Source: [https://github.com/FireRedTeam/FireRedVAD](https://github.com/FireRedTeam/FireRedVAD)
- **FireRedVAD-GGUF by Strg-Alt-Entf-0x00** β€” Apache 2.0
Repository: [https://github.com/Strg-Alt-Entf-0x00/firered-vad](https://github.com/Strg-Alt-Entf-0x00/firered-vad)