Feature: Add FunASR as an ASR engine option

Author: LauraGPTCreated May 29, 2026Updated Jul 14, 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.

Suggestion

Voice-Pro currently uses Whisper for audio processing. FunASR would be a great addition as an alternative ASR engine:

Why FunASR fits voice-pro:

  • 170x realtime on GPU — process hours of audio in seconds
  • 17x realtime on CPU — viable without GPU (Whisper is not)
  • Built-in punctuation — no post-processing needed
  • 50+ languages including Chinese, Japanese, Korean, English
  • Speaker diarization — identify who's speaking
  • Emotion detection — identify tone (happy/sad/angry)
  • MIT-licensed toolkit code, pip installable; model weights retain their own licenses

Integration is simple:

python
from funasr import AutoModel

model = AutoModel(
    model="iic/SenseVoiceSmall",
    vad_model="fsmn-vad",
    device="cuda"
)
result = model.generate(input="audio.wav")
text = result[0]["text"]  # add punctuation/timestamp components when required

For Gradio integration:

python
import gradio as gr
from funasr import AutoModel

model = AutoModel(model="iic/SenseVoiceSmall", vad_model="fsmn-vad", device="cuda")

def transcribe(audio_path):
    result = model.generate(input=audio_path)
    return result[0]["text"]

gr.Interface(fn=transcribe, inputs=gr.Audio(type="filepath"), outputs="text").launch()

pip install funasr (toolkit source: MIT; model weights use their model-card licenses)

Happy to help with a PR if there's interest!