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पीक मेमोरीनोट्स
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)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/audio transcribe recording.wav

विकल्प

# बड़े 1.7B मॉडल का उपयोग करें
.build/release/audio transcribe recording.wav --model 1.7b

# भाषा निर्दिष्ट करें
.build/release/audio transcribe recording.wav --language en

# पार्शियल परिणामों के साथ स्ट्रीमिंग मोड
.build/release/audio 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/audio transcribe recording.wav --engine qwen3-coreml

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

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

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

# डिफ़ॉल्ट सेगमेंट आकार के साथ स्ट्रीम
.build/release/audio transcribe recording.wav --stream

# अधिकतम सेगमेंट अवधि नियंत्रित करें
.build/release/audio transcribe recording.wav --stream --max-segment 15

# आने पर पार्शियल (प्रगति में) परिणाम दिखाएँ
.build/release/audio transcribe recording.wav --stream --partial

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

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

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

महत्वपूर्ण

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