Files
FunASR/web-pages/product-site/legacy/en/models.html
T
2026-09-09 17:12:37 +00:00

252 lines
17 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head><meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate"><meta http-equiv="Pragma" content="no-cache"><meta http-equiv="Expires" content="0">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>FunASR Models — SenseVoice, Paraformer, Fun-ASR-Nano, MOSS, cam++</title>
<meta name="description" content="Choose the right FunASR model: SenseVoice, Paraformer, Fun-ASR-Nano, the third-party MOSS transcription and diarization model, and cam++.">
<link rel="icon" href="../logo.png">
<meta property="og:title" content="FunASR Models — Speech Recognition Model Comparison">
<meta property="og:description" content="Compare FunASR models: SenseVoice, Paraformer, Fun-ASR-Nano, and third-party MOSS. Choose by speed, accuracy, language support, and speaker-label needs.">
<meta property="og:type" content="article">
<meta property="og:url" content="https://www.funasr.com/en/models.html">
<meta property="og:image" content="https://www.funasr.com/logo.png">
<link rel="canonical" href="https://www.funasr.com/en/models.html">
<link rel="alternate" hreflang="zh" href="https://www.funasr.com/models.html">
<link rel="alternate" hreflang="en" href="https://www.funasr.com/en/models.html">
<link rel="alternate" hreflang="x-default" href="https://www.funasr.com/en/models.html">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" rel="stylesheet">
<style>
:root{--primary:#2563eb;--primary-dark:#1d4ed8;--bg:#fff;--surface:#f8fafc;--border:#e2e8f0;--text:#0f172a;--text-soft:#475569;--text-muted:#94a3b8;--radius:12px;--green:#16a34a;--orange:#ea580c}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Inter',-apple-system,sans-serif;color:var(--text);line-height:1.7;-webkit-font-smoothing:antialiased}
a{color:var(--primary);text-decoration:none}
a:hover{text-decoration:underline}
.container{max-width:960px;margin:0 auto;padding:0 24px}
.nav{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(255,255,255,0.9);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);padding:14px 0}
.nav .container{max-width:1120px;display:flex;align-items:center;gap:24px}
.nav-logo{font-size:1.2rem;font-weight:800;color:var(--text);text-decoration:none}
.nav-logo span{color:var(--primary)}
.nav-links{display:flex;gap:20px;margin-left:auto}
.nav-links a{font-size:0.85rem;font-weight:500;color:var(--text-soft);text-decoration:none}
.nav-btn{padding:7px 16px;background:var(--primary);color:white;border-radius:7px;font-size:0.83rem;font-weight:600;text-decoration:none}
article{padding:120px 0 80px}
h1{font-size:2rem;font-weight:800;line-height:1.3;margin-bottom:8px}
.subtitle{font-size:1.05rem;color:var(--text-soft);margin-bottom:32px}
h2{font-size:1.3rem;font-weight:700;margin:40px 0 16px;padding-top:16px;border-top:1px solid var(--border)}
h2:first-of-type{border-top:none;margin-top:24px}
h3{font-size:1.05rem;font-weight:700;margin:20px 0 8px}
p{margin-bottom:14px;color:var(--text-soft)}
table{width:100%;border-collapse:collapse;margin:16px 0;font-size:0.88rem}
th{background:var(--surface);font-weight:600;text-align:left;padding:10px 14px;border-bottom:2px solid var(--border)}
td{padding:10px 14px;border-bottom:1px solid var(--border)}
tr:hover{background:var(--surface)}
.badge{display:inline-block;font-size:0.72rem;font-weight:600;padding:2px 8px;border-radius:4px;margin-right:4px}
.badge-blue{background:#eff6ff;color:var(--primary)}
.badge-green{background:#f0fdf4;color:var(--green)}
.badge-orange{background:#fff7ed;color:var(--orange)}
.model-card{border:1px solid var(--border);border-radius:var(--radius);padding:24px;margin:16px 0;background:var(--bg)}
.model-card:hover{box-shadow:0 4px 12px rgba(0,0,0,0.06)}
.model-name{font-size:1.15rem;font-weight:800;margin-bottom:4px}
.model-meta{font-size:0.82rem;color:var(--text-muted);margin-bottom:12px}
.model-desc{font-size:0.9rem;color:var(--text-soft);margin-bottom:12px}
.model-features{display:flex;flex-wrap:wrap;gap:6px}
pre{background:#1e293b;color:#e2e8f0;padding:18px;border-radius:10px;overflow-x:auto;font-size:0.82rem;line-height:1.7;margin:14px 0}
code{font-family:'SF Mono',Consolas,monospace;font-size:0.88em}
.highlight{background:#fef3c7;padding:16px 20px;border-radius:10px;border-left:4px solid #f59e0b;margin:16px 0;font-size:0.88rem}
footer{background:#0f172a;color:#94a3b8;padding:32px 0;font-size:0.82rem;text-align:center;margin-top:60px}
footer a{color:#60a5fa}
@media(max-width:640px){h1{font-size:1.5rem}.nav .container{gap:12px}.nav-links{gap:12px;margin-left:auto}.nav-links a{display:none}.nav-links a:nth-last-child(-n+2){display:block}.nav-links .nav-btn{color:white}table{display:block;overflow-x:auto;white-space:nowrap;font-size:0.78rem;-webkit-overflow-scrolling:touch}td,th{padding:8px}}
</style>
</head>
<body>
<nav class="nav"><div class="container"><a class="nav-logo" href="../en/">Fun<span>ASR</span></a><div class="nav-links"><a href="/en/#capabilities">Capabilities</a><a href="/en/#usage">How to Use</a><a href="/en/#benchmark">Benchmark</a><a href="/en/#demo">Demo</a><a href="https://modelscope.github.io/FunASR/" target="_blank">Docs</a><a href="quickstart.html">Quickstart</a><a href="models.html">Models</a><a href="ecosystem.html">Ecosystem</a><a href="/en/blog/">Blog</a><a href="vs-whisper.html">vs Whisper</a><a href="/en/donors.html">Thanks</a><a href="/models.html" style="font-size:0.85rem;font-weight:500;color:var(--text-soft);text-decoration:none">中文</a><a href="/go/github" target="_blank" class="nav-btn">GitHub ★</a></div></div></nav>
<article>
<div class="container">
<h1>FunASR Models</h1>
<p class="subtitle">Choose the right model for your use case — from ultra-fast multilingual recognition to the highest Chinese accuracy.</p>
<h2>Quick Comparison</h2>
<table>
<thead>
<tr><th>Model</th><th>Speed</th><th>Languages</th><th>Params</th><th>Best For</th></tr>
</thead>
<tbody>
<tr><td><strong>Fun-ASR-Nano</strong> ⭐</td><td>vLLM; benchmark your hardware</td><td>zh/en/ja + Chinese dialects/accents</td><td>800M</td><td>Flagship · LLM-ASR · hardest cases</td></tr>
<tr><td><strong>Fun-ASR-MLT-Nano</strong></td><td>vLLM</td><td>31</td><td>800M</td><td>Separate multilingual checkpoint</td></tr>
<tr><td><strong>SenseVoice Small</strong></td><td>Non-autoregressive; benchmark your hardware</td><td>zh, yue, en, ja, ko</td><td>234M</td><td>Five-language ASR, emotion detection</td></tr>
<tr><td><strong>Paraformer-zh</strong></td><td>Non-autoregressive; benchmark your hardware</td><td>zh, yue</td><td>220M</td><td>Best Chinese accuracy</td></tr>
<tr><td><strong>MOSS-Transcribe-Diarize</strong></td><td>Batch; NVIDIA GPU</td><td>See official model card</td><td>Third-party</td><td>Long-form transcription + speaker labels</td></tr>
<tr><td><strong>cam++</strong></td><td>realtime</td><td>any</td><td>7.2M</td><td>Speaker diarization &amp; verification</td></tr>
</tbody>
</table>
<h2>ASR Models</h2>
<div class="model-card">
<div class="model-name">Fun-ASR-Nano <span class="badge badge-orange">⭐ Flagship / default</span></div>
<div class="model-meta">800M params &middot; LLM-based (SenseVoice encoder + Qwen3-0.6B) &middot; <a href="/go/fun-asr">GitHub</a> &middot; <a href="https://huggingface.co/FunAudioLLM/Fun-ASR-Nano-2512-hf">HuggingFace</a></div>
<p data-native-transformers>Start with released <strong>Transformers 5.17.0</strong> and the <a href="https://huggingface.co/FunAudioLLM/Fun-ASR-Nano-2512-hf">official -hf checkpoint</a>. <a href="/en/docs/native-transformers.html">CPU quickstart and batches</a> · <a href="https://huggingface.co/spaces/FunAudioLLM/Fun-ASR-Nano">Try online</a> · <a href="https://colab.research.google.com/github/QwenAudio/Fun-ASR/blob/main/examples/colab/fun_asr_nano_transformers.ipynb">Notebook</a>. Text transcription for zh/en/ja; original, -vllm and GGUF artifacts use different interfaces.</p>
<div class="model-desc">SenseVoice audio encoder plus Qwen3-0.6B decoder. Native Transformers produces text; service and edge paths use their own vLLM or GGUF artifacts. Timestamp and speaker capabilities depend on the exact checkpoint and pipeline: see the <a href="https://github.com/QwenAudio/Fun-ASR#capability-boundaries">model capability boundaries</a>.</div>
<div class="model-features">
<span class="badge badge-green">vLLM runtime</span>
<span class="badge badge-blue">zh/en/ja + Chinese dialects/accents</span>
<span class="badge badge-blue">Transformers</span>
<span class="badge badge-orange">Context hints</span>
</div>
<h3>When to use</h3>
<p>Best for high-throughput batch processing, real-time subtitles, and scenarios where LLM-quality context understanding improves output (e.g., proper nouns and code-switching). For reliable character-level timestamps, use Paraformer.</p>
<pre># With vLLM acceleration
from funasr import AutoModel
model = AutoModel(model="FunAudioLLM/Fun-ASR-Nano-2512", device="cuda", backend="vllm")
result = model.generate(input="audio.wav")
print(result[0]["text"])</pre>
</div>
<div class="model-card">
<div class="model-name">Fun-ASR-MLT-Nano <span class="badge badge-blue">31 languages</span></div>
<div class="model-meta">800M params &middot; Separate multilingual checkpoint &middot; <a href="https://huggingface.co/FunAudioLLM/Fun-ASR-MLT-Nano-2512">HuggingFace</a> &middot; <a href="https://modelscope.cn/models/FunAudioLLM/Fun-ASR-MLT-Nano-2512">ModelScope</a></div>
<div class="model-desc">A separate checkpoint for broad multilingual recognition across 31 languages. Its model ID and language scope differ from flagship Fun-ASR-Nano.</div>
<div class="model-features">
<span class="badge badge-green">vLLM accelerated</span>
<span class="badge badge-blue">31 languages</span>
<span class="badge badge-orange">Separate checkpoint</span>
</div>
<h3>When to use</h3>
<p>Choose MLT-Nano for recognition across 31 languages; choose flagship Nano for zh/en/ja and Chinese dialects/accents.</p>
<pre>from funasr import AutoModel
model = AutoModel(model="FunAudioLLM/Fun-ASR-MLT-Nano-2512", device="cuda")
result = model.generate(input="audio.wav")</pre>
</div>
<div class="model-card">
<div class="model-name">SenseVoice Small</div>
<div class="model-meta">234M params &middot; Non-autoregressive &middot; <a href="/go/sensevoice">GitHub</a> &middot; <a href="https://huggingface.co/FunAudioLLM/SenseVoiceSmall">HuggingFace</a></div>
<div class="model-desc">Ultra-fast speech recognition with built-in emotion and audio event detection. Supports Mandarin, Cantonese, English, Japanese, and Korean. Its non-autoregressive architecture suits low-latency deployment; throughput depends on hardware, audio length, and batch configuration.</div>
<div class="model-features">
<span class="badge badge-green">Non-autoregressive</span>
<span class="badge badge-blue">Five languages</span>
<span class="badge badge-orange">Emotion detection</span>
<span class="badge badge-blue">Audio events</span>
<span class="badge badge-green">CPU-viable</span>
</div>
<h3>When to use</h3>
<p>Best for: multilingual applications, real-time streaming, batch processing large audio collections, applications needing emotion or audio event detection.</p>
<pre>from funasr import AutoModel
model = AutoModel(model="iic/SenseVoiceSmall")
result = model.generate(input="audio.wav")
print(result[0]["text"])</pre>
</div>
<div class="model-card">
<div class="model-name">Paraformer-zh Large</div>
<div class="model-meta">220M params &middot; Non-autoregressive &middot; <a href="https://huggingface.co/funasr/paraformer-zh">HuggingFace</a></div>
<div class="model-desc">Highest-accuracy Chinese speech recognition model. Non-autoregressive with CTC-guided attention, trained on 60,000+ hours of Mandarin speech. Includes built-in punctuation restoration and timestamp prediction.</div>
<div class="model-features">
<span class="badge badge-green">Non-autoregressive; benchmark your hardware</span>
<span class="badge badge-blue">Chinese + Cantonese</span>
<span class="badge badge-green">Best accuracy</span>
<span class="badge badge-blue">Timestamps</span>
<span class="badge badge-blue">Punctuation</span>
</div>
<h3>When to use</h3>
<p>Best for: Chinese-only applications where accuracy is the top priority — meeting transcription, subtitle generation, voice input, training data annotation.</p>
<pre>from funasr import AutoModel
model = AutoModel(
model="iic/speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-pytorch",
vad_model="iic/speech_fsmn_vad_zh-cn-16k-common-pytorch",
punc_model="iic/punc_ct-transformer_cn-en-common-vocab471067-large",
)
result = model.generate(input="audio.wav")
print(result[0]["text"])</pre>
</div>
<div class="model-card">
<div class="model-name">MOSS-Transcribe-Diarize <span class="badge badge-orange">third-party model</span></div>
<div class="model-meta">Published by OpenMOSS &middot; Model ID: <code>OpenMOSS-Team/MOSS-Transcribe-Diarize</code> &middot; <a href="https://huggingface.co/OpenMOSS-Team/MOSS-Transcribe-Diarize">HuggingFace</a> &middot; <a href="/en/deploy/moss-transcribe-diarize.html">FunASR deployment guide</a></div>
<div class="model-desc">A third-party Apache-2.0 model published by OpenMOSS that produces long-form transcription, timestamps, and speaker labels in one offline request. FunASR maps structured results for AutoModel, vLLM, and SGLang Omni. It does not require an external VAD service, which does not mean the model has no internal segmentation.</div>
<div class="model-features">
<span class="badge badge-blue">Transcription + speaker labels</span>
<span class="badge badge-green">No external VAD</span>
<span class="badge badge-blue">vLLM / SGLang Omni</span>
<span class="badge badge-orange">Non-realtime</span>
</div>
<h3>When to use</h3>
<p>Long-form offline transcription for multi-speaker meetings, interviews, podcasts, and calls. This is not FunASR-owned model weight; validate overlap, timestamps, speaker consistency, and capacity on real multi-speaker audio before production.</p>
</div>
<h2>Supporting Models</h2>
<div class="model-card">
<div class="model-name">cam++ (Speaker Diarization)</div>
<div class="model-meta">7.2M params &middot; <a href="https://huggingface.co/funasr/campplus">HuggingFace</a></div>
<div class="model-desc">Lightweight speaker embedding model for speaker diarization (who spoke when) and speaker verification (is this the same person). Only 7.2M parameters — runs on CPU in realtime.</div>
<div class="model-features">
<span class="badge badge-green">7.2M params</span>
<span class="badge badge-blue">Diarization</span>
<span class="badge badge-blue">Verification</span>
<span class="badge badge-green">CPU realtime</span>
</div>
</div>
<div class="model-card">
<div class="model-name">FSMN-VAD</div>
<div class="model-meta">Built-in &middot; Voice Activity Detection</div>
<div class="model-desc">Feedforward Sequential Memory Network for Voice Activity Detection. Accurately detects speech segments in audio, handling silence, noise, and music. Used as a preprocessing step for all ASR models.</div>
<div class="model-features">
<span class="badge badge-blue">VAD</span>
<span class="badge badge-green">Lightweight</span>
</div>
</div>
<div class="model-card">
<div class="model-name">CT-Transformer (Punctuation)</div>
<div class="model-meta">Built-in &middot; Punctuation Restoration</div>
<div class="model-desc">Automatically adds punctuation to ASR output — commas, periods, question marks, etc. Supports Chinese and English. Dramatically improves readability of transcription output.</div>
<div class="model-features">
<span class="badge badge-blue">Punctuation</span>
<span class="badge badge-blue">zh + en</span>
</div>
</div>
<h2>OpenAI-Compatible API</h2>
<p>All models are available through <code>funasr-server</code>, which exposes an OpenAI-compatible <code>/v1/audio/transcriptions</code> endpoint:</p>
<pre># Start the server
pip install funasr vllm fastapi uvicorn python-multipart
funasr-server --device cuda --port 8000
# Use with any OpenAI-compatible client
curl http://localhost:8000/v1/audio/transcriptions \
-F [email protected] \
-F model=SenseVoiceSmall</pre>
<div class="highlight">
<strong>Drop-in replacement:</strong> Any application using OpenAI's Whisper API can switch to FunASR by changing the base URL. No code changes needed — same API format, same response structure.
</div>
<h2>Deployment Options</h2>
<table>
<thead>
<tr><th>Method</th><th>Command</th><th>Best For</th></tr>
</thead>
<tbody>
<tr><td>pip</td><td><code>pip install funasr && funasr-server</code></td><td>Development, quick testing</td></tr>
<tr><td>Docker</td><td><code>docker run -d --gpus all -p 8000:8000 ...</code></td><td>Production deployment</td></tr>
<tr><td>Python API</td><td><code>from funasr import AutoModel</code></td><td>Embedding in applications</td></tr>
<tr><td>ONNX</td><td>Via <a href="https://github.com/k2-fsa/sherpa-onnx">Sherpa-ONNX</a></td><td>Mobile, edge, browser</td></tr>
</tbody>
</table>
</div>
</article>
<footer><div class="container">FunASR &mdash; Industrial-grade speech recognition toolkit &mdash; <a href="/go/github">GitHub</a> &middot; <a href="../en/">Home</a> &middot; <a href="https://www.funasr.com">funasr.com</a></div></footer>
</body>
</html>