Feature: Add FunASR as a recognition backend (recognize_funasr)

Author: LauraGPTCreated May 30, 2026Updated Jul 19, 2026

[!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 APIfunasr-server at /v1/audio/transcriptions
  • 16K+ GitHub stars, active development

Proposed API (following existing patterns):

python
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:

python
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.

Source: Uberi/speech_recognition