Skip to main content
ClaudeWave
ES, Spanish
modelscope / MCP Servers · Registry oficial

FunASR

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

  • 20.8k estrellas
  • 2.1k forks
  • 48 issues abiertos
  • Lenguaje: Python
  • Licencia: MIT
  • actualizado

Instalación

local · pip / python
Claude Code CLI
claude mcp add funasr -- python -m torch
  1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
  2. Replace any <placeholder> values with your API keys or paths.
  3. Restart Claude. The MCP server and its tools appear automatically.

Install first: pip install torch

Nota editorial

FunASR is a self-hosted speech recognition toolkit that transcribes audio files and live streams across 50-plus languages, combining voice activity detection (using the FSMN-VAD model), speaker diarization (CAM++ model), punctuation restoration, and emotion classification (happy, sad, angry) in a single Python call. The toolkit's flagship SenseVoice-Small model processes audio at 170 times realtime on GPU and 17 times realtime on CPU, which the project benchmarks as 13 times faster than Whisper-large-v3 on 192 minutes of long-form audio. It connects to Claude through a dedicated MCP server in the examples/mcp_server directory, allowing Claude-based agents and tools like Cursor to invoke transcription directly. A built-in `funasr-server` CLI launches an OpenAI-compatible REST endpoint on localhost:8000, which integrates with LangChain, Dify, and AutoGen pipelines. The newer Fun-ASR-Nano variant pairs a SenseVoice encoder with a Qwen3-0.6B decoder and supports vLLM acceleration for batch workloads. Developers building meeting transcription tools, multilingual pipelines, or voice-driven AI agents who need accurate, cost-free, on-premises speech processing are the primary audience.

README

Resumen de MCP Servers

README completo en GitHub

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

Industrial speech recognition toolkit for offline, streaming, and edge deployment. ASR · VAD · punctuation · speaker pipelines · emotion and audio-event models · OpenAI-compatible serving

Quick Start · Model selection · Models · Deployment matrix · Deployment hub · Docs · Benchmark · Contribute


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 · Hugging Face speech-to-speech with SenseVoice (merged source checkout; not in v1.0.0)

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.

TaskCheckpoint or pipelineRuntime entrypointImportant limitation
File transcription with emotion/event tagsSenseVoiceSmallPython AutoModel, CPU or GPUFive-language checkpoint; tags do not identify speakers.
LLM-based file transcriptionFun-ASR-NanoAutoModel; split-engine AutoModelVLLM for the documented GPU pathBase Nano covers zh/en/ja and Chinese dialects/accents; timestamp support depends on checkpoint and path.
Broader multilingual transcriptionFun-ASR-MLT-NanoPython AutoModelSeparate 31-language checkpoint; do not transfer its coverage to base Nano.
Chunked live transcriptionParaformer-zh-streamingStreaming SDK or runtime WebSocket serviceUse the streaming checkpoint and per-session cache, not an offline checkpoint.
Speaker-aware file transcriptionSenseVoiceSmall + FSMN-VAD + CAM++AutoModel with VAD and embedding clusteringAnonymous indices within a recording, not enrolled-speaker identification.
Joint text, timestamps, and speakersMOSS-Transcribe-Diarize, third-party OpenMOSSFunASR adapter or upstream backend in the MOSS guideOffline, recording-local anonymous labels; no external VAD/speaker pipeline for its unified path.
Native CPU/edge transcriptionFun-ASR-Nano or SenseVoiceSmall GGUFllama.cpp runtimeRequires 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

From source / Requirements

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.


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.

ModelTaskLanguagesParamsLinks
Topics
asraudiochineseemotion-recognitionfunasrmcp-servermultilingual-asropenai-compatible-apiparaformerpunctuationpytorchreal-time-asrspeaker-diarizationspeech-recognitionspeech-to-textstreaming-asrtranscriptionvllmvoice-activity-detectionwhisper-alternative
Preguntas frecuentes

Lo que la gente pregunta sobre FunASR

¿Qué es modelscope/FunASR?

modelscope/FunASR es mcp servers para el ecosistema de Claude AI. Open-source speech recognition toolkit for training, inference, streaming ASR, VAD, punctuation, speaker diarization pipelines, and OpenAI-compatible/MCP serving. Tiene 20.8k estrellas en GitHub y su última actualización registrada es del 2026-10-22.

¿Cómo se instala FunASR?

Puedes instalar FunASR clonando el repositorio (https://github.com/modelscope/FunASR) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.

¿Es seguro usar modelscope/FunASR?

Nuestro agente de seguridad ha analizado modelscope/FunASR y le ha asignado un Trust Score de 100/100 (tier: Verified). Revisa el desglose completo de comprobaciones superadas y flags en esta página.

¿Quién mantiene modelscope/FunASR?

modelscope/FunASR es mantenido por modelscope. La última actividad registrada en GitHub es del 2026-10-22, con 48 issues abiertos.

¿Hay alternativas a FunASR?

Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.

Deploy en 1 click

Despliega FunASR en tu cloud

Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.

¿Mantienes este repo? Muestra su Trust Score en tu README

La insignia muestra el Trust Score y el veredicto actuales de este repositorio y enlaza a esta página. Sigue los datos del catálogo: nadie puede comprar ni editar la puntuación que enseña.

ClaudeWave Trust Score for modelscope/FunASR
Markdown (README)
[![ClaudeWave Trust Score for modelscope/FunASR](https://claudewave.com/api/badge/modelscope-funasr)](https://claudewave.com/en/repo/modelscope-funasr)
HTML
<a href="https://claudewave.com/en/repo/modelscope-funasr"><img src="https://claudewave.com/api/badge/modelscope-funasr" alt="ClaudeWave Trust Score for modelscope/FunASR" width="320" height="64"></a>

Qué significa la insignia y cómo se calcula la puntuación

Web del proyecto
www.funasr.com