SkillAgentSearch skills...

FunASR

Open-source speech recognition toolkit for training, inference, streaming ASR, VAD, punctuation, speaker diarization pipelines, and OpenAI-compatible/MCP serving.

Install / Use

claude mcp add modelscope -- npx -y github:modelscope/FunASR

If the server publishes to npm under a different name, use that package instead — check the repo README.

About this skill
🔌

MCP Server

Model Context Protocol server

Quality Score

98/100

Category

Automation

Supported Platforms

Claude Code
Claude Desktop

Our assessment of FunASR

FunASR scores 98/100 on our quality scale, 68th of 2,877 Automation skills we index (top 3%).

Its MCP Server is 23 KB long, well organised into 35 sections with 16 code examples: a thorough specification that gives an agent plenty to work with.

With 20,950 GitHub stars, it is one of the more widely adopted skills in the catalogue.

Substance
30/30
Structure
20/20
Description
15/15
Adoption
18/20
Freshness
15/15

Maintenance, license and trust

  • The repository was last updated today, so FunASR is actively maintained.
  • Our last check on 2026-10-21 found the source still online.
  • It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
  • Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

Safety scan

No issues found

Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful.

AI review by kimi-k2.7-code on 2026-09-24. Automated pattern scan on 2026-09-24. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.

FunASR compared with similar skills

All 4 of these similar skills score higher than FunASR; compare them before choosing.

SkillScoreStarsUpdatedFormat
FunASR (this skill)by modelscope9820.9ktodayMCP Server
Agent-Reachby Panniantong100109.5k1d agoCLAUDE.md
headroomby headroomlabs-ai10079.0ktodayCLAUDE.md
CowAgentby zhayujie10047.8ktodayCLAUDE.md
Scraplingby D4Vinci10098.7ktodayMCP Server

Frequently asked questions

How do I install FunASR?
Run claude mcp add modelscope -- npx -y github:modelscope/FunASR. The install tabs above show the steps for each supported agent.
Which AI agents does FunASR work with?
It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
Is FunASR safe to use?
Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful. It is MIT-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is FunASR still maintained?
The repository was last updated today, so FunASR is actively maintained.

(简体中文|English|日本語|한국어)

<p align="center"> <a href="https://github.com/modelscope/FunASR"><img src="https://svg-banners.vercel.app/api?type=origin&text1=FunASR🤠&text2=💖%20A%20Fundamental%20End-to-End%20Speech%20Recognition%20Toolkit&width=800&height=210" alt="FunASR"></a> </p> <p align="center"> <strong>Industrial speech recognition toolkit for offline, streaming, and edge deployment.</strong><br> <em>ASR · VAD · punctuation · speaker pipelines · emotion and audio-event models · OpenAI-compatible serving</em> </p> <p align="center"> <a href="https://pypi.org/project/funasr/"><img src="https://img.shields.io/pypi/v/funasr" alt="PyPI"></a> <a href="https://github.com/modelscope/FunASR"><img src="https://img.shields.io/github/stars/modelscope/FunASR?style=social" alt="Stars"></a> <a href="https://pypi.org/project/funasr/"><img src="https://img.shields.io/pypi/dm/funasr" alt="Downloads"></a> <a href="https://modelscope.github.io/FunASR/"><img src="https://img.shields.io/badge/docs-online-blue" alt="Docs"></a> <a href="https://mcptoplist.com/server/io.github.modelscope%2Ffunasr-mcp"><img src="https://mcptoplist.com/badge/io.github.modelscope%2Ffunasr-mcp.svg" alt="MCP Toplist"></a> </p> <p align="center"> <a href="https://trendshift.io/repositories/10479" target="_blank"><img src="https://trendshift.io/api/badge/repositories/10479" alt="modelscope%2FFunASR | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a> </p> <p align="center"> <a href="#quick-start">Quick Start</a> · <a href="./docs/model_selection.md">Model selection</a> · <a href="#model-zoo">Models</a> · <a href="./docs/deployment_matrix.md">Deployment matrix</a> · <a href="https://www.funasr.com/">Deployment hub</a> · <a href="https://www.funasr.com/en/docs/">Docs</a> · <a href="#benchmark">Benchmark</a> · <a href="./CONTRIBUTING.md">Contribute</a> </p>

Quick Start

Native Transformers

For Fun-ASR-Nano transcription with the Hugging Face API, start with the Transformers 5.17.0 CPU quickstart. No FunASR toolkit or remote Python code is needed.

Space · Notebook · Python / batch examples

FunASR toolkit and pipelines

Open In Colab

No local setup? Open the Colab quickstart to transcribe a public sample or upload your own audio in a browser.

Found FunASR useful? Star the project so more builders can find it.

# CPU-only installs can use the default PyPI wheels.
pip install torch torchaudio
pip install funasr

For GPU quickstarts, install the PyTorch and torchaudio wheels that match your NVIDIA driver from pytorch.org before installing FunASR. After installation, confirm the GPU is visible:

python - <<'PY'
import torch
print(torch.cuda.is_available())
PY

Only use device="cuda" when this prints True; otherwise use device="cpu" or reinstall PyTorch with the correct CUDA wheel.

FunASR toolkit GPU example: Fun-ASR-Nano (Chinese, English, Japanese, and Chinese dialect groups and regional accents; the separate native Transformers CPU path is linked above):

from funasr import AutoModel

model = AutoModel(model="FunAudioLLM/Fun-ASR-Nano-2512", device="cuda")
result = model.generate(input="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_zh.wav")
print(result[0]["text"])

For the separate 31-language checkpoint, use Fun-ASR-MLT-Nano-2512. Language coverage is checkpoint-specific, so Nano and MLT-Nano should be treated as distinct model choices.

For a CPU-first example with five-language ASR plus emotion and audio-event tags, use SenseVoiceSmall. The pipeline below combines it with FSMN-VAD and CAM++ for speaker-aware VAD segments; these are not native speaker outputs of the SenseVoiceSmall checkpoint. See the SenseVoice paper, Hugging Face checkpoint, and GGUF edge checkpoint.

from funasr import AutoModel
from funasr.utils.postprocess_utils import rich_transcription_postprocess

model = AutoModel(model="iic/SenseVoiceSmall", vad_model="fsmn-vad", spk_model="cam++", device="cpu")
result = model.generate(
    input="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_zh.wav",
    batch_size_s=300,
)

# The AutoModel pipeline returns VAD segments with speaker ids and timestamps:
for seg in result[0]["sentence_info"]:
    print(f"[{seg['start']/1000:.1f}s] Speaker {seg['spk']}: {rich_transcription_postprocess(seg['sentence'])}")

This prints each returned segment's start time in seconds, anonymous speaker index, and text with SenseVoice tags removed. Text and segment boundaries depend on the audio and checkpoint; no fixed transcript is asserted here.

CAM++ extracts spk_embedding vectors. AutoModel clusters those embeddings and assigns speaker indices to VAD segments. Indices are local to a recording, not known-person identities. See the SDK contract for the component and result boundaries. Change to device="cuda" only after verifying a compatible GPU environment as described above.

Scale & deploy the flagship

At scale, accelerate Fun-ASR-Nano with vLLM (batch processing):

from funasr.auto.auto_model_vllm import AutoModelVLLM

model = AutoModelVLLM(model="FunAudioLLM/Fun-ASR-Nano-2512", tensor_parallel_size=1)
results = model.generate(["audio1.wav", "audio2.wav"], language="auto")

Deploy as API server: Local SenseVoice CPU recipe · Nano GPU serving and pinned vLLM setup

Use with AI agents: MCP Server for Claude/Cursor · OpenAI API for LangChain/Dify/AutoGen

Use with voice agents: OpenClaw realtime plugin for self-hosted Talk and Voice Call transcription

Why FunASR?

FunASR is a toolkit: choose the task, checkpoint, and runtime separately. Support in one model or adapter does not imply support in every serving backend.

| Task | Checkpoint or pipeline | Runtime entrypoint | Important limitation | |---|---|---|---| | File transcription with emotion/event tags | SenseVoiceSmall | Python AutoModel, CPU or GPU | Five-language checkpoint; tags do not identify speakers. | | LLM-based file transcription | Fun-ASR-Nano | AutoModel; split-engine AutoModelVLLM for the documented GPU path | Base Nano covers zh/en/ja and Chinese dialects/accents; timestamp support depends on checkpoint and path. | | Broader multilingual transcription | Fun-ASR-MLT-Nano | Python AutoModel | Separate 31-language checkpoint; do not transfer its coverage to base Nano. | | Chunked live transcription | Paraformer-zh-streaming | Streaming SDK or runtime WebSocket service | Use the streaming checkpoint and per-session cache, not an offline checkpoint. | | Speaker-aware file transcription | SenseVoiceSmall + FSMN-VAD + CAM++ | AutoModel with VAD and embedding clustering | Anonymous indices within a recording, not enrolled-speaker identification. | | Joint text, timestamps, and speakers | MOSS-Transcribe-Diarize, third-party OpenMOSS | FunASR adapter or upstream backend in the MOSS guide | Offline, recording-local anonymous labels; no external VAD/speaker pipeline for its unified path. | | Native CPU/edge transcription | Fun-ASR-Nano or SenseVoiceSmall GGUF | llama.cpp runtime | Requires matching converted weights; GGUF is not a Python AutoModel checkpoint. |

See the Model Zoo and deployment matrix for checkpoint, interface, and licensing boundaries. Benchmark on your own audio and hardware before choosing a runtime.

Trying FunASR for the first time? Use the Colab quickstart before setting up a local environment. Choosing a first model? Start with the model selection guide. Planning a switch from Whisper or a cloud ASR provider? Use the migration guide and benchmark example to test representative audio, map features, and roll out safely.


Installation

pip install funasr
<details><summary>From source / Requirements</summary>
git clone https://github.com/modelscope/FunASR.git && cd FunASR
pip install -e ./

Requirements: Python ≥ 3.8. Install PyTorch + torchaudio first (pytorch.org), then pip install funasr.

</details>

Model Zoo

This list includes third-party models. OpenMOSS publishes MOSS-Transcribe-Diarize; FunASR provides an adapter, not ownership of its weights. Its unified path is offline, with anonymous labels scoped to each recording, not realtime or known-person identification. Model licenses are separate from the toolkit's MIT license.

| Model | Task | Languages | Params | Links | |-------|------|-----------|--------|-------| | Fun-ASR-Nano | ASR | zh/en/ja + Chinese dialects and accents | 800M | ⭐ HF / Transformers · HF / FunASR GGUF | | Fun-ASR-MLT-Nano | ASR | 31 languages | 800M | ⭐ 🤗 | | SenseVoiceSmall | ASR + emotion + events | zh/en/ja/ko/yue | 234M | ⭐ 🤗 GGUF paper | | MOSS-Transcribe-Diarize | Third-party OpenMOSS: offline ASR + timestamps + anonymous speakers | See official card | See official card | 🤗 guide | | Paraformer-zh | ASR + timestamps | zh/en | 220M | ⭐ 🤗 | | Paraformer-zh-streaming | Streaming ASR | zh/en | 220M | ⭐ 🤗 | | Qwen3-ASR | ASR, 52 languages | multilingual | 1.7B | usage | | GLM-ASR-Nano | ASR, 17 languages | multilingual | 1.5B | usage | | Whisper-large-v3 | ASR + translation | multilingual | 1550M | usage | | Whisper-large-v3-turbo | ASR + translation | multilingual | 809M | usage | | ct-punc | Punctuation | zh/en | 290M | ⭐ 🤗 | | fsmn-vad | VAD | zh/en | 0.4M | [⭐](https://modelscope.cn/models/iic/speech_fsmn_vad_zh-cn-16k

Truncated for display — read the full file on GitHub.

Related Skills

View on GitHub
GitHub Stars20.9k
CategoryAutomation
Updated12h ago
Forks2.1k

Languages

Python

Trust signals

100/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

No cautions