개요
FunASR는 50개 이상의 언어, 화자 분리, 감정 감지, 스트리밍 인식 및 OpenAI 호환 API를 지원하는 종단 간 음성 인식 툴킷입니다. 실시간 속도의 170배를 구현하며 SenseVoice, Paraformer 등의 사전 학습 모델을 제공합니다.
README 미리보기
([简体中文](./README_zh.md)|English|[日本語](./README_ja.md)|[한국어](./README_ko.md))\n\n\n\n\n\n\n Industrial speech recognition. 170x faster than Whisper. 50+ languages.\n Speaker diarization · Emotion detection · Streaming · One API call\n\n\n\n \n \n \n \n\n\n\n\n\n\n\n Quick Start · Colab · Benchmark · Model selection · Migration guide · Use cases · Deployment matrix · Models · Agent Integration · Docs · Contribute\n\n\n---\n\n## Quick Start\n\n[](https://colab.research.google.com/github/modelscope/FunASR/blob/main/examples/colab/funasr_quickstart.ipynb)\n\nNo local setup? Open the [Colab quickstart](./examples/colab/) to transcribe a public sample or upload your own audio in a browser.\n\n```bash\npip install torch torchaudio\npip install funasr\n```\n\n```python\nfrom funasr import AutoModel\n\nmodel = AutoModel(model="iic/SenseVoiceSmall", vad_model="fsmn-vad", spk_model="cam++", device="cuda")\nresult = model.generate(input="meeting.wav")\n```\n\n**Output** — structured text with speaker labels, timestamps, and punctuation:\n```\n[00:00.4 → 00:03.8] Speaker 0: Let's discuss the Q3 plan.\n[00:04.2 → 00:07.1] Speaker 1: Sounds good. I have three points.\n[00:07.5 → 00:12.3] Speaker 0: Go ahead. We have 30 minutes.\n```\n\nThat's it. **One model, one call** — VAD segmentation, speech recognition, punctuation, speaker diarization all happen automatically.\n\n### LLM-powered ASR: Fun-ASR-Nano\n\nFor highest accuracy across 31 languages (including Chinese dialects), use [Fun-ASR-Nano](https://github.com/FunAudioLLM/Fun-ASR) — an LLM-based ASR combining SenseVoice encoder with Qwen3-0.6B decoder:\n\n```python\nfrom funasr import AutoModel\n\nmodel = AutoModel(model="FunAudioLLM/Fun-ASR-Nano-2512", vad_model="fsmn-vad", device="cuda")\nresult = model.generate(input="meeting.wav")\n```\n\nWith vLLM acceleration (16x faster, batch processing):\n\n```python\nfrom funasr.auto.auto_model_vllm import AutoModelVLLM\n\nmodel = AutoModelVLLM(model="FunAudioLLM/Fun-ASR-Na
FAQ (4)
문제 해결building from source로 인해 funasr의 pip install이 느릴 때 해결 방법
funasr v1.3.9 이상 버전으로 업그레이드하세요. 여기에는 사전 빌드된 유니버설 휠(py3-none-any)이 포함되어 있어 소스 빌드 단계를 피할 수 있습니다. pip install funasr>=1.3.9를 사용하세요. 이전 버전의 경우 소스 빌드는 아무 작업도 하지 않았지만, 휠은 모든 빌드 오버헤드를 제거합니다.
문제 해결FunASR 1.3.7에서 vLLM과 함께 repetition_penalty를 사용할 때 발생하는 CUDA 오류 'device-side assert triggered'를 어떻게 수정하나요?
이는 vLLM에서 repetition_penalty와 enable_prompt_embeds=True 간의 비호환성으로 인해 발생합니다. vllm_engine.generate() 호출에서 repetition_penalty=1.3을 제거하세요. 해결 방법으로 오디오를 25초 이하 청크로 분할하여 추론하고, 반복을 억제하는 truncate_repetition() 후처리 함수를 사용하세요. 예시 중복 제거 로직: def truncate_repetition(text, min_repeat_len=5, max_repeats=3): ... . 다음 FunASR 버전에서는 공식적으로 청킹과 후처리를 채택할 예정입니다.
문제 해결Qwen3-ASR가 오프라인 모드만 지원할 때 WebSocket을 통해 실시간 음성 인식을 수행하는 방법은?
Qwen3-ASR는 WebSocket 실시간 스트리밍을 지원하지 않습니다(AutoModel을 통한 오프라인 전용). WebSocket 스트리밍을 위해서는 FunASR의 실시간 서버와 함께 Fun-ASR-Nano 모델을 사용하세요. 설치: pip install funasr>=1.3.5 vllm>=0.12.0 (버전 1.3.5는 dynamic_vad 및 vllm.inputs.data 임포트 문제로 인한 ModuleNotFoundError를 수정합니다). 서버 시작: python examples/industrial_data_pretraining/fun_asr_nano/serve_realtime_ws.py --port 10095 --language 中文. 클라이언트: 브라우저에서 client_mic.html을 열거나 client_python.py를 사용하세요. 문서: https://github.com/modelscope/FunASR/blob/main/docs/vllm_guide.md
문제 해결인증되지 않은 Hugging Face 요청으로 인한 FunASR 실시간 서비스 다운로드 실패를 해결하는 방법
Hugging Face 토큰을 설정하여 속도 제한 및 다운로드 문제를 방지하세요. 서버를 실행하기 전에 HF_TOKEN='your_token'을 export하거나, huggingface-cli login을 사용하여 자격 증명을 캐시하세요. 다운로드가 여전히 실패하면 https://huggingface.co/FunAudioLLM/Fun-ASR-Nano-2512에서 모델을 수동으로 다운로드하고 --model을 로컬 경로로 지정하세요.