- README.md: add vLLM/dynamic VAD to What's new, add vLLM row to features
- README_zh.md: same updates in Chinese
- Fun-ASR-Nano README/README_zh: add built-in vLLM and WebSocket service links
- One-liner tagline: 170x faster than Whisper, 50+ languages
- Quick Start with human-readable output (speaker labels + timestamps)
- Why FunASR comparison table (vs Whisper vs Cloud)
- Merged GPU/CPU benchmark into one compact table
- Model Zoo with self-hosted + community models
- Detailed examples moved to docs site (modelscope.github.io/FunASR)
- Star History chart
- 538 lines → 210 lines
- Added Fun-ASR-Nano, GLM-ASR-Nano, Whisper-large-v3-turbo (OpenAI & FunASR)
- Added CPU results section showing FunASR models work without GPU
- Model type annotations (NAR/AR/LLM) for architecture clarity
- Updated speed numbers from actual H100 benchmark run
Integrates ERes2NetV2 from 3D-Speaker into FunASR as a speaker
verification/diarization model. Can be used standalone or as spk_model
combined with VAD + ASR for speaker-attributed transcription.
Usage (standalone speaker embedding):
model = AutoModel(model="iic/speech_eres2netv2_sv_zh-cn_16k-common")
res = model.generate(input="audio.wav")
embedding = res[0]["spk_embedding"] # shape: [1, 192]
Usage (with ASR + speaker diarization):
model = AutoModel(
model="paraformer-zh",
vad_model="fsmn-vad",
spk_model="iic/speech_eres2netv2_sv_zh-cn_16k-common",
)
res = model.generate(input="audio.wav")
Tested end-to-end: ModelScope download + embedding extraction verified.
New files:
- funasr/models/eres2net/eres2netv2.py (network architecture)
- funasr/models/eres2net/model.py (FunASR wrapper with inference)
- tests_models/test_eres2netv2.py
- examples/industrial_data_pretraining/eres2netv2_sv/demo.py
- examples/industrial_data_pretraining/eres2netv2_sv/demo_sv.py
Add GLMASR wrapper class integrating GLM-ASR-Nano-2512 (1.5B) into
FunASR. Uses HuggingFace transformers AutoModel + AutoProcessor with
trust_remote_code. Supports 17 languages with dialect and low-volume
speech optimization.
Usage:
from funasr import AutoModel
model = AutoModel(model="zai-org/GLM-ASR-Nano-2512", hub="hf", device="cuda:0")
res = model.generate(input="audio.wav")
# ModelScope (Chinese users)
model = AutoModel(model="ZhipuAI/GLM-ASR-Nano-2512", hub="ms", device="cuda:0")
Tested end-to-end on CPU with Chinese and English audio.
New files:
- funasr/models/glm_asr/model.py
- funasr/models/glm_asr/__init__.py
- tests_models/test_glm_asr.py
- examples/industrial_data_pretraining/glm_asr/demo.py
- examples/industrial_data_pretraining/glm_asr/demo_ms.py
Note: requires transformers>=5.0.0 (pip install git+https://github.com/huggingface/transformers)
- Add Qwen3-ASR (0.6B/1.7B) to model zoo table in README.md and
README_zh.md with links to HuggingFace and ModelScope
- Add news entry for Qwen3-ASR release
- Add example scripts:
- examples/industrial_data_pretraining/qwen3_asr/demo.py (HuggingFace)
- examples/industrial_data_pretraining/qwen3_asr/demo_ms.py (ModelScope)
- #2689: Add text_language check before removing spaces for aishell data
- #2720: Fix streaming ASR code example syntax error in README
- #2755: Use log_softmax instead of softmax for CTC forced alignment in SenseVoice
- #2780: Add bounds check in GetFrameState to prevent IndexError with non-default decibel_thres
- Convert dict-format timestamps to list-format for downstream compatibility
- Fix spk_embedding to concatenate all chunk embeddings from sv_chunk
- Handle timestamps/timestamp key difference in vad_segment mode
- Auto fallback to vad_segment mode when punc_model is missing
- Add demo_spk.py example and test script
- Update README/README_zh with news and usage demo
The example code in README files was updated to use the correct import path for Paraformer from the runtime package instead of the top-level module. The wav path was also modified to use Path.home() for cross-platform compatibility and to include the missing 'models' directory in the cache path. These changes ensure the examples work correctly with the current package structure.