Airsc miễn phí cho tất cả. Nếu nó giúp bạn, hãy ủng hộ $2–$20.

Ủng hộ
MCP serverAn toànTính năng AI & LLMCần cài đặt chút

FunASR

modelscope · modelscope/FunASR

FunASR là một bộ công cụ nhận dạng giọng nói mã nguồn mở cung cấp khả năng huấn luyện, suy luận và nhiều pipeline xử lý âm thanh khác nhau, với khả năng phục vụ tương thích OpenAI/MCP.

Bộ công cụ nhận dạng giọng nói mã nguồn mở để huấn luyện, suy luận, ASR trực tuyến, VAD, dấu câu, các pipeline phân tách người nói và phục vụ tương thích với OpenAI/MCP.

21k sao2.1kGiấy phép: MITCập nhật 5 ngày trước0 lượt mở

Xem trước

▍

Bạn có thể làm gì với nó

  • Chuyển đổi âm thanh nói từ các cuộc họp hoặc ghi chú thoại thành văn bản để tác nhân AI phân tích.
  • Xây dựng một tác nhân có thể xử lý và phản hồi các lệnh thoại bằng ASR thời gian thực.
  • Phát triển một hệ thống phát hiện sự kiện âm thanh để phân loại âm thanh hoặc mẫu giọng nói.

Kiểm tra an toàn

An toàn

Không thấy dấu hiệu rủi ro trong các file đã quét.

Quét tự động các file trong repo. Luôn xem lại code trước khi chạy.

Trích từ README

(简体中文|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

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 cach
Xem mã nguồn trên GitHub