mirror of
https://github.com/modelscope/FunASR.git
synced 2026-10-12 02:19:18 +00:00
Add a native ggml FSMN-VAD front end so the binaries segment long audio themselves, with no Python at runtime. New `--vad fsmn-vad.gguf` flag on llama-funasr-cli, llama-funasr-sensevoice and llama-funasr-paraformer runs FSMN-VAD (fbank + LFR + CMVN + FSMN encoder + E2EVadModel state machine, in funasr-common/funasr_vad.h) and decodes each speech segment, then concatenates. - funasr-common/funasr_vad.h: single-header VAD; segment boundaries within ~10 ms of PyTorch fsmn-vad.generate on the 184-clip set (DEFAULT_SILENCE_SCHEDULE replicated, chunk-stepped silence schedule + speech_noise_thres 0.5). - funasr-vad/: standalone VAD tool (wav -> [start_ms,end_ms] segments). - export_vad_gguf.py: export FSMN-VAD encoder + CMVN to GGUF (1.7 MB, 24 tensors). - BENCHMARKS.md: bare binary with built-in VAD reaches the reference end-to-end — full-184 micro-CER SenseVoice 8.01 / Paraformer 9.85 / Fun-ASR-Nano 8.30. Additive only: no existing code is modified outside runtime/llama.cpp/.