stvlynn/skills/qwen-asr

Claude Code and agent skill by stvlynn/skills

Trust tier 2
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Speech-to-text using Qwen3-ASR-0.6B-4bit MLX model via a local FastAPI service. Transcribes audio files and URLs. Optimized for Apple Silicon. Use when user sends voice messages or audio that needs transcription.

Install

npx vskill@latest install stvlynn/skills/qwen-asr

SKILL.md

Qwen ASR Skill

Speech-to-text using Qwen3-ASR model, running locally on Apple Silicon via a FastAPI service.

Overview

  • Model: mlx-community/Qwen3-ASR-0.6B-4bit (4-bit quantized, ~400MB)
  • Runtime: MLX (Apple Silicon GPU acceleration via MPS)
  • Service: FastAPI on http://localhost:8100
  • Languages: Chinese, English, Japanese, Korean, and more

First-time Deployment

Prerequisites
  • macOS with Apple Silicon (M1/M2/M3/M4)
  • Python 3.10+
  • Docker is not required (runs natively)
1. Create virtual environment
bash
cd /path/to/skills/skills/qwen-asr
python3 -m venv venv
source venv/bin/activate
2. Install dependencies

模型从 ModelScope/HuggingFace 镜像下载(国内更快):

bash
pip install -r service/requirements.txt
3. Start the service
bash
bash service/start.sh

首次启动时会自动从 hf-mirror.com 下载模型(约 400MB),后续启动使用本地缓存。

4. Verify
bash
# 检查服务健康状态
curl http://localhost:8100/health
# 查看模型信息
curl http://localhost:8100/info
# 测试转录(使用在线音频)
curl -X POST "http://localhost:8100/transcribe_url?audio_url=https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen3-ASR-Repo/asr_en.wav"
5. (Optional) 设为系统服务

macOS 上可以使用 launchd 设置开机自启:

bash
# 创建 plist(自行修改路径)
cat > ~/Library/LaunchAgents/com.qwen.asr.plist << 'PLIST'
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.qwen.asr</string>
<key>ProgramArguments</key>
<array>
<string>/bin/bash</string>
<string>-c</string>
<string>cd /path/to/skills/skills/qwen-asr && bash service/start.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>StandardOutPath</key>
<string>/tmp/qwen-asr.log</string>
<key>StandardErrorPath</key>
<string>/tmp/qwen-asr.err</string>
</dict>
</plist>
PLIST
launchctl load ~/Library/LaunchAgents/com.qwen.asr.plist
Troubleshooting
问题解决方法
端口 8100 被占用lsof -i :8100 找到占用进程,或修改 start.sh 中端口号
模型下载缓慢脚本已自动设置 HF_ENDPOINT=https://hf-mirror.com
503 Model not loaded模型仍在加载中,首次约需 10-30 秒
ModuleNotFoundError: mlx确认使用 Apple Silicon Mac
转录结果为空检查音频格式(支持 wav/mp3/ogg/flac),或音频可能太短

Service Endpoints

EndpointMethodDescription
/healthGETHealth check
/infoGETModel information
/transcribePOSTTranscribe uploaded audio file
/transcribe_urlPOSTTranscribe audio from URL

Usage

CLI Client
bash
# Transcribe local file
python3 scripts/asr.py audio.wav
# Transcribe from URL
python3 scripts/asr.py --url "https://example.com/audio.wav"
# Specify language
python3 scripts/asr.py audio.wav --lang zh
# Check service status
python3 scripts/asr.py --check
curl
bash
# Upload file
curl -X POST "http://localhost:8100/transcribe" \
-H "Content-Type: multipart/form-data" \
-F "file=@audio.wav"
# From URL with language
curl -X POST "http://localhost:8100/transcribe_url?audio_url=<URL>&language=zh"
Python
python
import requests
# From URL
response = requests.post(
"http://localhost:8100/transcribe_url",
params={"audio_url": "https://example.com/audio.wav", "language": "zh"}
)
text = response.json()["text"]
# From file
with open("audio.wav", "rb") as f:
response = requests.post("http://localhost:8100/transcribe", files={"file": f})
text = response.json()["text"]

Output Format

json
{
"text": "transcribed text here",
"chunks": [],
"processing_time": 0.123
}

Service Management

bash
# Start
bash service/start.sh
# Check status
python3 scripts/asr.py --check
# Stop (find and kill process)
lsof -ti :8100 | xargs kill

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationWarning, 59 of 100Marginal. 1 run. Evaluated 8 months ago.

Source

Popularity

Repository stars
48
Repository forks
6
7-day trend score
19

Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 30 Mar 2026, 7 months ago.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/stvlynn/skills/qwen-asr/badge)](https://verified-skill.com/skills/stvlynn/skills/qwen-asr)

Something wrong with this skill or its page? Tell us.