Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Qwen3-ASR Docker

FreeNot checked

Docker deployment for Qwen3-ASR speech recognition with REST API and transcription tools.

GitHubEmbed

About

Docker deployment for Qwen3-ASR speech recognition with REST API and transcription tools.

README

English | 简体中文 | 繁體中文 | 日本語

🎙️ Qwen3-ASR Docker Deployment

Docker Pulls GitHub Stars License

Production-ready All-in-One Docker deployment for Qwen3-ASR — Alibaba's state-of-the-art open-source ASR supporting 52 languages/dialects, timestamps, streaming, dark-theme UI, REST API & MCP.

UI Screenshot


✨ Features

  • 🌐 52 Languages & Dialects — 30 languages + 22 Chinese dialects, auto language detection
  • ⏱️ Forced Alignment Timestamps — word/character level via Qwen3-ForcedAligner-0.6B
  • 🔄 Streaming Transcription — real-time results via WebSocket
  • 🎨 Dark Theme UI — glassmorphism design, 4-language i18n (EN/CN/TW/JP), mic recording + file upload
  • 🚀 GPU Management — lazy loading, auto-offload after idle, manual release, model switching
  • 📡 REST API — FastAPI with Swagger docs, OpenAPI schema
  • 🔌 MCP Integration — fastmcp server with 4 tools for AI agent integration
  • 🐳 All-in-One Docker — 3 models embedded, zero runtime download
  • 📊 Two Models — Qwen3-ASR-1.7B (highest accuracy) and Qwen3-ASR-0.6B (fast & efficient)

🚀 Quick Start

Docker One-Liner

docker run -d --gpus '"device=2"' --name qwen3-asr \
  -p 8250:8200 -p 8251:8201 \
  --restart unless-stopped \
  neosun/qwen3-asr:latest

Open http://localhost:8250 for UI, http://localhost:8250/docs for API docs.

Docker Compose

git clone https://github.com/neosun100/Qwen3-ASR.git
cd Qwen3-ASR
bash start.sh  # auto-selects freest GPU

📡 API Reference

Endpoint Method Description
/ GET Web UI
/health GET Health check (version, GPU, model status)
/api/status GET Detailed status (GPU, models, supported languages)
/api/transcribe POST Speech recognition (multipart/form-data)
/api/transcribe/stream WebSocket Streaming transcription
/api/languages GET Supported languages list
/api/gpu-offload POST Release GPU memory
/docs GET Swagger API documentation

Transcribe Parameters

Parameter Type Default Description
file file required Audio file (WAV/MP3/FLAC/M4A/OGG)
language string auto Language name or auto
model string Qwen3-ASR-1.7B Qwen3-ASR-1.7B or Qwen3-ASR-0.6B
return_timestamps bool false Return word/char timestamps
dtype string bfloat16 bfloat16 or float16

Example

curl -X POST http://localhost:8250/api/transcribe \
  -F '[email protected]' \
  -F 'language=auto' \
  -F 'model=Qwen3-ASR-1.7B' \
  -F 'return_timestamps=true'
{
  "text": "Hello world",
  "language": "English",
  "timestamps": [
    {"text": "Hello", "start": 0.0, "end": 0.5},
    {"text": "world", "start": 0.5, "end": 1.0}
  ],
  "duration_seconds": 1.0,
  "process_time_seconds": 0.15,
  "rtf": 0.15
}

🔌 MCP Integration

MCP server runs on port 8251. Config for Claude Desktop / Cursor / Kiro:

{
  "mcpServers": {
    "qwen3-asr": {
      "command": "python",
      "args": ["app/mcp_server.py"],
      "env": {
        "MODEL_PATH_QWEN3_ASR_1_7B": "/models/Qwen3-ASR-1.7B"
      }
    }
  }
}

Available Tools: transcribe, get_status, get_languages, gpu_offload


🏗️ Tech Stack

Component Technology
ASR Engine Qwen3-ASR (0.6B / 1.7B)
Forced Aligner Qwen3-ForcedAligner-0.6B
Backend FastAPI + Uvicorn
Frontend Pure HTML/CSS/JS (no framework)
MCP Server fastmcp
Container NVIDIA CUDA 12.4 + Ubuntu 22.04
GPU Mgmt Auto-offload, lazy loading

📁 Project Structure

app/
├── server.py              # FastAPI backend
├── gpu_manager.py         # GPU resource management
├── mcp_server.py          # MCP server (fastmcp)
└── templates/
    └── index.html         # Dark theme UI
tests/
├── test_api.py            # 22 API tests
└── test_mcp.py            # 8 MCP tests
Dockerfile                 # All-in-One image
docker-compose.yml         # GPU + health check
start.sh                   # One-click launcher

⚙️ Configuration

Variable Default Description
GPU_ID 2 GPU device ID
PORT 8200 API server port
MCP_PORT 8201 MCP server port
GPU_IDLE_TIMEOUT 600 Auto-offload timeout (seconds)

Copy .env.example to .env and edit as needed.


🌐 Online Demo

https://qwen3-asr.aws.xin


📄 License

Apache-2.0. Based on Qwen3-ASR by Alibaba Qwen Team.


⭐ Star History

Star History Chart

from github.com/neosun100/qwen3-asr

Install Qwen3-ASR Docker in Claude Desktop, Claude Code & Cursor

Recommended · one command, every IDE
unyly install qwen3-asr-docker

Installs into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.

First time? Get the CLI: curl -fsSL https://unyly.org/install | sh

Or configure manually

Run in your terminal:

claude mcp add qwen3-asr-docker -- uvx qwen-asr

Step-by-step: how to install Qwen3-ASR Docker

FAQ

Is Qwen3-ASR Docker MCP free?

Yes, Qwen3-ASR Docker MCP is free — one-click install via Unyly at no cost.

Does Qwen3-ASR Docker need an API key?

No, Qwen3-ASR Docker runs without API keys or environment variables.

Is Qwen3-ASR Docker hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install Qwen3-ASR Docker in Claude Desktop, Claude Code or Cursor?

Open Qwen3-ASR Docker on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Qwen3-ASR Docker with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All development MCPs