FunASR v1.3.27: Detected Language and Reliable vLLM Fallback

FunASR industrial speech recognition visual

FunASR v1.3.27 focuses on correctness and reliability in the OpenAI-compatible server: SenseVoice returns the detected language, Fun-ASR-Nano reuses its fallback after vLLM fails, and every server surface reports the installed package version.

The Python wheel and source distribution are published together. The same release page also lists nine self-contained llama.cpp / GGUF runtimes, so users do not have to hunt across separate releases.

What changed

Scenariov1.3.27 behaviorWhy it matters
SenseVoice automatic language detectionverbose_json.language returns detected zh/en/yue/ja/koSubtitle, routing, and analytics clients no longer receive a false Chinese default
Fun-ASR-Nano cannot start vLLMThe process reuses its cached AutoModel fallbackLater requests do not construct the same model again
vLLM/VAD setup and fallback both failHalf-initialized state is cleared and a later request can retryA transient setup failure does not leave a falsely loaded service
Version diagnosticsOpenAPI metadata and the startup banner read the package versionLogs and /docs accurately show 1.3.27

1. Start the OpenAI-compatible transcription service

This path uses the same server implementation as the repository smoke tests. Pin the current PyPI release, then start the service:

git clone https://github.com/modelscope/FunASR.git
cd FunASR/examples/openai_api
python -m pip install "funasr==1.3.27" fastapi uvicorn python-multipart
python server.py --model sensevoice --device cuda --port 8000

In another terminal, verify health and transcription with the public sample:

curl -L https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/BAC009S0764W0121.wav -o sample.wav
curl http://localhost:8000/health
curl http://localhost:8000/v1/audio/transcriptions \
  -F file=@sample.wav \
  -F model=sensevoice \
  -F response_format=verbose_json

SenseVoice now preserves its raw language tag in the OpenAI-compatible response. An English clip, for example, returns:

{"task":"transcribe","language":"en","duration":4.6,"text":"hello", "segments":[...]}

If you already use the OpenAI Python client, point base_url to http://localhost:8000/v1. The examples also include model listing, Swagger, Postman, OpenAPI, Gradio, and Kubernetes paths.

2. Scale Fun-ASR-Nano throughput with vLLM

Fun-ASR-Nano runs its audio encoder and adaptor in PyTorch, then sends continuous audio embeddings into the Qwen3 decoder managed by vLLM. The repository benchmark records RTFx 340 for vLLM batch inference while keeping CER close to the PyTorch baseline.

The maintainer environment also completed a real-checkpoint smoke on one H100:vLLM 0.19.1 loaded successfully, transcribed the bundled sample, and returned token timestamps. The vLLM guide documents installation, memory, batching, WebSocket, and serving options.
python -m pip install "vllm==0.19.1"
python -m pip install "funasr>=1.3.27" safetensors tiktoken websockets
# Follow docs/vllm_guide.md for offline, streaming, or server mode

3. Download the self-contained llama.cpp / GGUF runtime

runtime-llamacpp-v0.1.9 ships nine Linux x64/ARM64, macOS ARM64, and Windows x64 packages. Linux includes AVX2 and Vulkan options; Windows includes AVX2, Vulkan, and CUDA, including funasr-llamacpp-windows-x64-vulkan.zip. Each archive provides a self-contained llama-funasr-* binary entry point.

See the llama.cpp / GGUF page for models, commands, and hardware selection. Runtime assets and model versions are linked together so users do not have to hunt across releases.

What each repository owns

RepositoryWhat to follow
FunASRToolkit, serving, OpenAI API, vLLM, llama.cpp, and deployment docs
Fun-ASRFun-ASR-Nano / MLT models, capabilities, benchmarks, and model integrations
SenseVoiceMultilingual ASR plus emotion, language, and audio-event recognition
FunClipSpeech-driven video understanding, retrieval, and editing

Run one real audio file through the path that fits your deployment. File a reproducible GitHub issue when something blocks you, and star the repository you actually use.

Open the v1.3.27 release and downloads