Qwen3-ASR

Qwen3-ASR एक अत्याधुनिक बहुभाषी ऑटोमैटिक स्पीच रिकग्निशन मॉडल है। यह MLX के माध्यम से Metal GPU एक्सेलेरेशन का उपयोग करके ऑन-डिवाइस चलता है, कुशल मेमोरी उपयोग के लिए 4-बिट क्वांटिज़ेशन के साथ। 0.6B और 1.7B पैरामीटर वेरिएंट में उपलब्ध।

पाइपलाइन

Qwen3-ASR इन्फ़रेंस पाइपलाइन चार चरणों के माध्यम से ऑडियो प्रोसेस करती है:

चरणविवरण
ऑडियो इनपुटरॉ ऑडियो को 16 kHz मोनो पर रीसैंपल किया जाता है
Mel Spectrogramवेवफ़ॉर्म से 128-bin mel filterbank फ़ीचर निकाले जाते हैं
Audio Encoderब्लॉक अटेंशन के साथ 18-लेयर transformer, mel फ़्रेम्स को ऑडियो एम्बेडिंग में प्रोसेस करता है
Text Decodergrouped-query attention (GQA) और rotary position embeddings (RoPE) के साथ 28-लेयर Qwen3 transformer, ऑटोरिग्रेसिव रूप से टेक्स्ट टोकन जेनरेट करता है

प्रदर्शन

बैकएंडRTFपीक मेमोरीनोट्स
Qwen3-ASR 1.7B MLX 8-bit0.0332.7 GBWER 1.52%
Qwen3-ASR 0.6B MLX 8-bit0.0151.3 GBWER 1.82%
Qwen3-ASR 0.6B MLX 4-bit0.0121.0 GBWER 2.20%
Qwen3-ASR 0.6B CoreML INT80.0981.4 GBWER 3.02% (chunked-attn rebuild)

Apple M5 Pro, 48 GB. LibriSpeech test-clean n=200, isolated per-engine. RTF < 1.0 = रियल-टाइम से तेज़।

मॉडल वेरिएंट

मॉडलबैकएंडआकारHuggingFace
Qwen3-ASR-0.6B (4-bit)MLX680 MBaufklarer/Qwen3-ASR-0.6B-MLX-4bit
Qwen3-ASR-0.6B (8-bit)MLX1.0 GBaufklarer/Qwen3-ASR-0.6B-MLX-8bit
Qwen3-ASR-0.6B (CoreML INT8)CoreML180 MBaufklarer/Qwen3-ASR-CoreML
Qwen3-ASR-1.7B (4-bit)MLX2.1 GBaufklarer/Qwen3-ASR-1.7B-MLX-4bit
Qwen3-ASR-1.7B (8-bit)MLX3.2 GBaufklarer/Qwen3-ASR-1.7B-MLX-8bit

CLI उपयोग

डिफ़ॉल्ट Qwen3-ASR मॉडल के साथ एक ऑडियो फ़ाइल ट्रांसक्राइब करें:

.build/release/speech transcribe recording.wav

विकल्प

# Use the larger 1.7B model
.build/release/speech transcribe recording.wav --model 1.7b

# Specify language
.build/release/speech transcribe recording.wav --language en

# Streaming mode with partial results
.build/release/speech transcribe recording.wav --stream --partial

Swift API

प्रोग्रामेटिक रूप से ऑडियो ट्रांसक्राइब करने के लिए Qwen3ASR मॉड्यूल का उपयोग करें:

import Qwen3ASR

// Load the model (downloads from HuggingFace on first use)
let model = try await Qwen3ASRModel.fromPretrained()

// Transcribe audio samples (16 kHz mono Float)
let text = model.transcribe(audio: audioSamples, sampleRate: 16000)
print(text)

CoreML Encoder (Neural Engine)

CoreML के माध्यम से Neural Engine पर ऑडियो encoder चलाएँ, और MLX के माध्यम से GPU पर text decoder चलाएँ। यह हाइब्रिड दृष्टिकोण पावर खपत कम करता है और समवर्ती वर्कलोड के लिए GPU को मुक्त करता है।

import Qwen3ASR

let encoder = try await CoreMLASREncoder.fromPretrained()
let model = try await Qwen3ASRModel.fromPretrained()
let text = try model.transcribe(
    audio: samples, sampleRate: 16000,
    coremlEncoder: encoder
)
# CLI
.build/release/speech transcribe recording.wav --engine qwen3-coreml

INT8 palettized (180 MB, cosine similarity > 0.999) डिफ़ॉल्ट है। साइज़-बाधित डिप्लॉयमेंट के लिए एक INT4 वेरिएंट (90 MB) भी उपलब्ध है।

स्ट्रीमिंग मोड

स्ट्रीमिंग मोड ऑडियो को चंक्स में विभाजित करने और उन्हें क्रमिक रूप से ट्रांसक्राइब करने के लिए VAD (voice activity detection) का उपयोग करता है। यह लंबी रिकॉर्डिंग या रियल-टाइम प्रोसेसिंग के लिए उपयोगी है।

# Stream with default segment size
.build/release/speech transcribe recording.wav --stream

# Control maximum segment duration
.build/release/speech transcribe recording.wav --stream --max-segment 15

# Show partial (in-progress) results as they arrive
.build/release/speech transcribe recording.wav --stream --partial

--max-segment फ़्लैग सेकंड में अधिकतम चंक अवधि को नियंत्रित करता है। --partial फ़्लैग पार्शियल रिज़ल्ट आउटपुट सक्षम करता है, जो डिकोड होते ही शब्द दिखाता है।

समर्थित फ़ॉर्मेट

Qwen3-ASR निम्नलिखित ऑडियो फ़ॉर्मेट स्वीकार करता है। सभी इनपुट आंतरिक रूप से स्वचालित रूप से 16 kHz मोनो पर रीसैंपल किए जाते हैं।

महत्वपूर्ण

मॉडल पहले उपयोग पर HuggingFace से डाउनलोड होते हैं और ~/Library/Caches/qwen3-speech/ में कैश होते हैं। 4-bit 0.6B मॉडल लगभग 1.5 GB है।