Repolode
modelscope

modelscope/FunASR

Open-source speech recognition toolkit for offline and streaming ASR, with VAD, punctuation, speaker labels and OpenAI-compatible serving.

Open-source alternative to:Google Cloud Speech-to-TextAzure AI Speech

Stars
20,765
Forks
2,088
Open issues
48
Last commit
2 days ago

What is it?

FunASR is a Python toolkit from ModelScope for converting speech to text. It bundles pretrained ASR models such as SenseVoiceSmall, Paraformer and Fun-ASR-Nano, together with components for voice activity detection (FSMN-VAD, Silero VAD), punctuation restoration (ct-punc) and speaker embeddings (CAM++) that can be chained into one pipeline through the AutoModel interface.

Beyond file transcription, it supports chunked streaming recognition with per-session cache, emotion recognition and audio event tags from SenseVoice, and batch inference via vLLM for Fun-ASR-Nano. A command-line tool outputs JSON or SRT subtitles, and funasr-server exposes an OpenAI-style transcription endpoint. A llama.cpp/GGUF runtime provides a CPU-only binary without Python.

Key features

  • 01Offline transcription with models such as SenseVoiceSmall, Paraformer and Fun-ASR-Nano.
  • 02Chunk-based streaming recognition for live audio.
  • 03VAD, punctuation restoration and speaker labeling as composable pipeline components.
  • 04OpenAI-compatible transcription server and an MCP server for AI agents.
  • 05Command-line interface that outputs JSON or SRT subtitles.
  • 06llama.cpp/GGUF build for CPU and edge devices without Python.

Use cases

  • Transcribing Chinese meetings or interviews with speaker and timestamp information.
  • Generating SRT subtitles for video or audio files in batch.
  • Building live captioning or voice assistants on streaming ASR.
  • Replacing a Whisper or cloud ASR API with a self-hosted, OpenAI-compatible endpoint.

Quick start

  1. 1

    Install PyTorch and torchaudio (CPU wheels by default)

    pip install torch torchaudio
  2. 2

    Install FunASR from PyPI

    pip install funasr
  3. 3

    Run the Python example with AutoModel (Fun-ASR-Nano, use device="cuda" only if a GPU is verified)

Things to know

  • Fun-ASR-Nano GPU example requires a verified NVIDIA GPU and matching PyTorch CUDA wheels.
  • Model weights carry separate licenses from the MIT-licensed toolkit, and some models are third-party.

Topics

FAQ

What is FunASR?
Open-source speech recognition toolkit for offline and streaming ASR, with VAD, punctuation, speaker labels and OpenAI-compatible serving. FunASR is a Python toolkit from ModelScope for converting speech to text. It bundles pretrained ASR models such as SenseVoiceSmall, Paraformer and Fun-ASR-Nano, together with components for voice activity detection (FSMN-VAD, Silero VAD), punctuation restoration (ct-punc) and speaker embeddings (CAM++) that can be chained into one pipeline through the AutoModel interface.
Is FunASR free to use? What license does it have?
FunASR is open source under the MIT license. Check the license terms before using it in commercial products.
Is FunASR still maintained?
Actively maintained. The last commit to FunASR was on Oct 18, 2026.
What can I use FunASR for?
Transcribing Chinese meetings or interviews with speaker and timestamp information. Generating SRT subtitles for video or audio files in batch. Building live captioning or voice assistants on streaming ASR. Replacing a Whisper or cloud ASR API with a self-hosted, OpenAI-compatible endpoint.
How do I install FunASR?
Install PyTorch and torchaudio (CPU wheels by default): pip install torch torchaudio Install FunASR from PyPI: pip install funasr Run the Python example with AutoModel (Fun-ASR-Nano, use device="cuda" only if a GPU is verified)
Where can I get FunASR?
The source code and installation instructions are on GitHub: https://github.com/modelscope/FunASR

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects