Feature: Add FunASR as an ASR engine option
[!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:
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 requiredFor Gradio integration:
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!
Source: abus-aikorea/voice-pro