Feature: Add FunASR as a recognition backend (recognize_funasr)
[!NOTE] License and capability clarification (2026-07-14): FunASR is a toolkit, not a single checkpoint. The FunASR and SenseVoice repository source code is MIT; model weights follow each model card. SenseVoiceSmall supports Chinese, Cantonese, English, Japanese, and Korean, and its weights use the linked FunASR Model Open Source License Agreement. Fun-ASR-Nano-2512 is Apache-2.0. Language coverage, punctuation, and performance depend on the selected model and runtime configuration.
Feature Request
The library currently supports Google, Sphinx, Vosk, Whisper, Faster Whisper, and OpenAI/Groq APIs. Proposing to add FunASR as an additional backend.
Why FunASR:
- 170× realtime on GPU — SenseVoice is non-autoregressive, significantly faster than Whisper
- 50+ languages with built-in VAD, punctuation restoration, speaker diarization
- Works offline — like Vosk and Whisper, fully local
- OpenAI-compatible API —
funasr-serverat/v1/audio/transcriptions - 16K+ GitHub stars, active development
Proposed API (following existing patterns):
import speech_recognition as sr
r = sr.Recognizer()
with sr.AudioFile("audio.wav") as source:
audio = r.record(source)
# Local model
text = r.recognize_funasr(audio, model="iic/SenseVoiceSmall")
# Or via OpenAI-compatible server
text = r.recognize_funasr(audio, api_url="http://localhost:8000")Integration is straightforward — FunASR's Python API:
from funasr import AutoModel
model = AutoModel(model="iic/SenseVoiceSmall")
result = model.generate(input=audio_data)
text = result[0]["text"]Happy to submit a PR if there's interest.
- FunASR — 16K+ stars
- SenseVoice — 8K+ stars
Source: Uberi/speech_recognition