Qwen3-ASR-API

Qwen3-ASR-API

Docker app from hsiang's Repository

Overview

Pure OpenAI-compatible Speech-to-Text API powered by Qwen3-ASR via vLLM. State-of-the-art Chinese (22 dialects), English, and 50+ languages. No bloat — just the model and API. Switch between 0.6B (~2-3GB VRAM) and 1.7B (~4-6GB VRAM) via MODEL_ID. CUDA 12.8 (Blackwell/Ada). First start downloads model from HuggingFace. China users: set HF_ENDPOINT to https://hf-mirror.com for faster downloads. Requires NVIDIA GPU with driver 550+.

Qwen3-ASR-API

English | 中文

Pure OpenAI-compatible Speech-to-Text API powered by Qwen3-ASR.

No extra services, no NGINX, no voiceprint database — just the model served via vLLM with an OpenAI-compatible endpoint.

What this adds

The official qwenllm/qwen3-asr Docker image has no entrypoint (drops to interactive shell), making it unusable on platforms like Unraid. This project adds an entrypoint for out-of-the-box usage, compatible with any Docker environment:

  • Auto-start qwen-asr-serve on container launch
  • Environment variable for model switching (no rebuild needed)
  • GPU memory control via env var
  • Unraid Community Applications template

Quick Start

docker run -d --gpus all --shm-size=4g \
  -p 8000:80 \
  -v /path/to/models:/root/.cache/huggingface \
  -e MODEL_ID=Qwen/Qwen3-ASR-0.6B \
  ghcr.io/hsiang-han/qwen3-asr-api:latest

First start downloads the model (~1-3GB depending on variant).

Usage (OpenAI-compatible)

curl -X POST http://localhost:8000/v1/audio/transcriptions \
  -H "Content-Type: multipart/form-data" \
  -F "file=@audio.wav" \
  -F "model=qwen3-asr"

Or with OpenAI SDK:

from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1", api_key="none")
result = client.audio.transcriptions.create(
    model="qwen3-asr",
    file=open("audio.wav", "rb")
)
print(result.text)

Model Options

Model VRAM Speed Best for
Qwen/Qwen3-ASR-0.6B ~2-3GB RTFx 166 Low latency, shared GPU
Qwen/Qwen3-ASR-1.7B ~4-6GB RTFx 148 Best accuracy

Switch by changing MODEL_ID env var and restarting container.

Unraid Install

  1. Add template repo: https://github.com/hsiang-han/unraid_templates
  2. Find "Qwen3-ASR-API" in Community Applications
  3. Configure MODEL_ID and GPU settings
  4. Start — first launch downloads model, subsequent starts are fast

Environment Variables

Variable Default Description
MODEL_ID Qwen/Qwen3-ASR-0.6B Model to serve
GPU_MEMORY_UTILIZATION 0.8 GPU memory fraction (0.0-1.0)
MAX_MODEL_LEN 8192 Max sequence length for KV cache. Default supports ~10 min audio. Lower to save VRAM, raise for longer audio.
HOST 0.0.0.0 Bind address
PORT 80 Container port

License

Apache-2.0 (same as upstream Qwen3-ASR)

Install Qwen3-ASR-API on Unraid in a few clicks.

Find Qwen3-ASR-API in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for Qwen3-ASR-API Review the template variables and paths Click Install

Related apps

Details

Repository
ghcr.io/hsiang-han/qwen3-asr-api:latest
Last Updated2026-07-06
First Seen2026-06-08

Runtime arguments

Web UI
http://[IP]:[PORT:80]/docs
Network
bridge
Shell
bash
Privileged
false
Extra Params
--gpus all --shm-size=4g

Template configuration

API PortPorttcp

OpenAI-compatible API port. Swagger docs at /docs

Target
80
Default
8000
Value
8000
Model CachePathrw

Model download cache. Persists across container recreates (~1-3GB).

Target
/root/.cache/huggingface
Default
/mnt/user/appdata/qwen3-asr-api/models
Value
/mnt/user/appdata/qwen3-asr-api/models
Model IDVariable

Qwen/Qwen3-ASR-0.6B (fast, ~2-3GB VRAM) or Qwen/Qwen3-ASR-1.7B (accurate, ~4-6GB VRAM). Restart required after change.

Target
MODEL_ID
Default
Qwen/Qwen3-ASR-0.6B
Value
Qwen/Qwen3-ASR-0.6B
HuggingFace EndpointVariable

HuggingFace download endpoint. China users: change to https://hf-mirror.com for faster downloads.

Target
HF_ENDPOINT
Default
https://huggingface.co
Value
https://huggingface.co
GPU Memory UtilizationVariable

Fraction of GPU memory to allocate (0.0-1.0). Lower if sharing GPU with other containers.

Target
GPU_MEMORY_UTILIZATION
Default
0.8
Value
0.8
Max Model LengthVariable

Max sequence length for KV cache. 8192 supports ~10min audio. Lower to save VRAM, raise for very long audio.

Target
MAX_MODEL_LEN
Default
8192
Value
8192
NVIDIA Visible DevicesVariable

GPU selection (all, 0, 1, etc.)

Target
NVIDIA_VISIBLE_DEVICES
Default
all
Value
all
NVIDIA Driver CapabilitiesVariable

NVIDIA driver capabilities

Target
NVIDIA_DRIVER_CAPABILITIES
Default
compute,utility
Value
compute,utility