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 Decoder | grouped-query attention (GQA) और rotary position embeddings (RoPE) के साथ 28-लेयर Qwen3 transformer, ऑटोरिग्रेसिव रूप से टेक्स्ट टोकन जेनरेट करता है |
प्रदर्शन
| बैकएंड | RTF | पीक मेमोरी | नोट्स |
|---|---|---|---|
| MLX (GPU) | ~0.06 | ~2.2 GB | डिफ़ॉल्ट, सबसे तेज़ सिंगल-मॉडल |
| CoreML + MLX (हाइब्रिड) | ~0.09 | ~400 MB (encoder) | Encoder Neural Engine पर, decoder GPU पर |
M2 Max, 64 GB. RTF < 1.0 = रियल-टाइम से तेज़।
मॉडल वेरिएंट
| मॉडल | बैकएंड | आकार | HuggingFace |
|---|---|---|---|
| Qwen3-ASR-0.6B (4-bit) | MLX | 680 MB | aufklarer/Qwen3-ASR-0.6B-MLX-4bit |
| Qwen3-ASR-0.6B (8-bit) | MLX | 1.0 GB | aufklarer/Qwen3-ASR-0.6B-MLX-8bit |
| Qwen3-ASR-0.6B (CoreML INT8) | CoreML | 180 MB | aufklarer/Qwen3-ASR-CoreML |
| Qwen3-ASR-1.7B (4-bit) | MLX | 2.1 GB | aufklarer/Qwen3-ASR-1.7B-MLX-4bit |
| Qwen3-ASR-1.7B (8-bit) | MLX | 3.2 GB | aufklarer/Qwen3-ASR-1.7B-MLX-8bit |
CLI उपयोग
डिफ़ॉल्ट Qwen3-ASR मॉडल के साथ एक ऑडियो फ़ाइल ट्रांसक्राइब करें:
.build/release/speech transcribe recording.wav
विकल्प
# बड़े 1.7B मॉडल का उपयोग करें
.build/release/speech transcribe recording.wav --model 1.7b
# भाषा निर्दिष्ट करें
.build/release/speech transcribe recording.wav --language en
# पार्शियल परिणामों के साथ स्ट्रीमिंग मोड
.build/release/speech transcribe recording.wav --stream --partial
Swift API
प्रोग्रामेटिक रूप से ऑडियो ट्रांसक्राइब करने के लिए Qwen3ASR मॉड्यूल का उपयोग करें:
import Qwen3ASR
// मॉडल लोड करें (पहले उपयोग पर HuggingFace से डाउनलोड होता है)
let model = try await Qwen3ASRModel.loadFromHub()
// ऑडियो फ़ाइल ट्रांसक्राइब करें
let result = try await model.transcribe(audioFile: "recording.wav")
print(result.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) का उपयोग करता है। यह लंबी रिकॉर्डिंग या रियल-टाइम प्रोसेसिंग के लिए उपयोगी है।
# डिफ़ॉल्ट सेगमेंट आकार के साथ स्ट्रीम
.build/release/speech transcribe recording.wav --stream
# अधिकतम सेगमेंट अवधि नियंत्रित करें
.build/release/speech transcribe recording.wav --stream --max-segment 15
# आने पर पार्शियल (प्रगति में) परिणाम दिखाएँ
.build/release/speech transcribe recording.wav --stream --partial
--max-segment फ़्लैग सेकंड में अधिकतम चंक अवधि को नियंत्रित करता है। --partial फ़्लैग पार्शियल रिज़ल्ट आउटपुट सक्षम करता है, जो डिकोड होते ही शब्द दिखाता है।
समर्थित फ़ॉर्मेट
Qwen3-ASR निम्नलिखित ऑडियो फ़ॉर्मेट स्वीकार करता है। सभी इनपुट आंतरिक रूप से स्वचालित रूप से 16 kHz मोनो पर रीसैंपल किए जाते हैं।
- WAV — uncompressed PCM
- M4A — AAC-encoded ऑडियो
- MP3 — MPEG Layer III
- CAF — Apple Core Audio Format
मॉडल पहले उपयोग पर HuggingFace से डाउनलोड होते हैं और ~/Library/Caches/qwen3-speech/ में कैश होते हैं। 4-bit 0.6B मॉडल लगभग 1.5 GB है।