Skip to content

FunASR

Open-source speech-to-text toolkit with streaming, voice detection, punctuation and speaker pipelines.

Stars
20.9k
Forks
2.1k
Licence
MIT
Language
Python
Last update
4 days ago
Type
Library

What it is

FunASR is a toolkit for turning spoken audio into text. It bundles speech recognition models with helpers for detecting when someone is speaking, adding punctuation, and grouping segments by speaker, and it can be run from Python or served as an API. People use it to transcribe recordings or build live transcription, and the README says it supports offline, streaming, and edge deployment.

  • Transcribe a Chinese, English, or Japanese audio file with the Fun-ASR-Nano model on a GPU
  • Run SenseVoiceSmall on a CPU to get text with emotion and audio-event tags
  • Split a recording into voice-active segments and label them with anonymous speaker indices
  • Serve a model through an OpenAI-compatible API for tools like LangChain or Dify

Great for

  • Developers who want to transcribe audio in Python with a pretrained model
  • Teams planning a move away from Whisper or a cloud ASR provider, who want to benchmark on their own audio
  • Builders who need live (streaming) transcription
  • Projects that need speaker-aware segments from recordings

Not ideal for

  • People who only need a point-and-click transcription app, since the README centers on Python and command-line-style setup
  • Users needing identification of named speakers, because speaker labels are anonymous indices within one recording
  • Anyone needing a language the chosen checkpoint does not cover, since language coverage varies by model
Step-by-step guide: how to use FunASRInstall, first run, examples, tips and FAQs

How to get it

  1. 1

    Install with a package manager

    You'll need: Python · pip · PyTorch and torchaudio (CPU-only or matching your NVIDIA driver for GPU)

    Install PyTorch and torchaudio (CPU-only)

    pip install torch torchaudio

    Install FunASR

    pip install funasr
  2. 2

    Run it

    • Install PyTorch and torchaudio, then install FunASR with pip
    • For GPU use, check that torch.cuda.is_available() prints True before setting device="cuda"
    • Load a model with AutoModel, for example the SenseVoiceSmall checkpoint with device="cpu"
    • Call model.generate on an audio file or URL and print the text from the result
  3. 3

    Get the most out of it

    • Use the Colab quickstart to test on a sample or your own audio before local setup
    • Add vad_model and spk_model arguments to AutoModel to get speaker-labeled VAD segments
    • Use the model selection guide to pick a checkpoint that matches your languages and hardware
    • Follow the migration guide and benchmark example to compare against Whisper on representative audio
    • Use the MCP server or OpenAI API examples to connect FunASR to AI agent tools

Downloads

Strengths

  • Covers several tasks in one toolkit: transcription, voice activity detection, punctuation, and speaker grouping
  • Provides a documented CPU path and a GPU path, plus a Colab quickstart for trying it without local setup
  • MIT licensed, with an active project and a README that spells out model-specific limits

Trade-offs

  • Capabilities differ by checkpoint and runtime, so choosing the right model takes reading the docs carefully
  • GPU use requires matching PyTorch and CUDA setup that the user must manage
  • Speaker outputs are local to a recording and are not identity recognition

How it compares

ProjectStarsTypeLevelUpdatedBest for
FunASR (this)20.9kLibraryintermediate4 days agoDevelopers who want to transcribe audio in Python with a pretrained model
whisper112kAI model / agentintermediate2 months agoDevelopers who want to add transcription of audio files to a Python project
faster-whisper26.4kLibraryintermediate5 days agoPython developers who need to add speech-to-text to an application
pyannote-audio10.8kLibraryintermediate12 days agoDevelopers who want to add speaker separation to a Python audio workflow
whisper.cpp54.9kLibraryintermediate7 days agoDevelopers who want to embed offline speech-to-text in a C, C++, or other native app
ultimatevocalremovergui26.9kAppbeginner30 days agoMusicians who want karaoke or practice backing tracks from existing songs

Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.