Qwen3-ASR
Qwen3-ASR, sektörün en gelişmiş çok dilli otomatik konuşma tanıma modellerinden biridir. MLX üzerinden Metal GPU hızlandırması ile cihaz üzerinde çalışır ve verimli bellek kullanımı için 4-bit nicemleme kullanır. 0.6B ve 1.7B parametreli iki varyant olarak sunulur.
Pipeline
Qwen3-ASR çıkarım pipeline'ı sesi dört aşamada işler:
| Aşama | Açıklama |
|---|---|
| Ses girişi | Ham ses, 16 kHz mono'ya yeniden örneklenir |
| Mel spektrogram | Dalga formundan 128 bantlı mel filterbank öznitelikleri çıkarılır |
| Ses kodlayıcı | Block attention'lı 18 katmanlı transformer; mel çerçevelerini ses embedding'lerine dönüştürür |
| Metin kod çözücü | Grouped-query attention (GQA) ve rotary position embedding (RoPE) içeren 28 katmanlı Qwen3 transformer; otoregresif olarak metin token'ları üretir |
Performans
| Backend | RTF | Zirve bellek | Notlar |
|---|---|---|---|
| MLX (GPU) | ~0.06 | ~2.2 GB | Varsayılan, tek model için en hızlı |
| CoreML + MLX (hibrit) | ~0.09 | ~400 MB (kodlayıcı) | Kodlayıcı Neural Engine'de, kod çözücü GPU'da |
M2 Max, 64 GB. RTF < 1.0 = gerçek zamandan hızlı.
Model Varyantları
| Model | Backend | Boyut | 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 Kullanımı
Varsayılan Qwen3-ASR modeliyle bir ses dosyasını yazıya dökün:
.build/release/speech transcribe recording.wav
Seçenekler
# Daha büyük 1.7B modelini kullan
.build/release/speech transcribe recording.wav --model 1.7b
# Dil belirt
.build/release/speech transcribe recording.wav --language en
# Kısmi sonuçlarla akış modu
.build/release/speech transcribe recording.wav --stream --partial
Swift API
Sesi programatik olarak yazıya dökmek için Qwen3ASR modülünü kullanın:
import Qwen3ASR
// Modeli yükle (ilk kullanımda HuggingFace'ten indirir)
let model = try await Qwen3ASRModel.loadFromHub()
// Bir ses dosyasını yazıya dök
let result = try await model.transcribe(audioFile: "recording.wav")
print(result.text)
CoreML Kodlayıcı (Neural Engine)
Ses kodlayıcıyı CoreML üzerinden Neural Engine'de, metin kod çözücüyü ise MLX üzerinden GPU'da çalıştırın. Bu hibrit yaklaşım güç tüketimini düşürür ve eş zamanlı iş yükleri için GPU'yu serbest bırakır.
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, kosinüs benzerliği > 0.999) varsayılan seçenektir. Boyut kısıtlamalı dağıtımlar için ayrıca INT4 varyantı (90 MB) mevcuttur.
Akış Modu
Akış modu, sesi parçalara ayırmak ve artımlı olarak yazıya dökmek için VAD (ses etkinliği tespiti) kullanır. Bu, uzun kayıtlar veya gerçek zamanlı işleme için kullanışlıdır.
# Varsayılan segment boyutuyla akış
.build/release/speech transcribe recording.wav --stream
# Maksimum segment süresini denetle
.build/release/speech transcribe recording.wav --stream --max-segment 15
# Geldikçe kısmi (sürmekte olan) sonuçları göster
.build/release/speech transcribe recording.wav --stream --partial
--max-segment bayrağı, saniye cinsinden maksimum parça süresini denetler. --partial bayrağı, kelimeleri kod çözüldükçe gösteren kısmi sonuç çıkışını etkinleştirir.
Desteklenen Formatlar
Qwen3-ASR aşağıdaki ses formatlarını kabul eder. Tüm girdiler dahili olarak 16 kHz mono'ya otomatik yeniden örneklenir.
- WAV — sıkıştırılmamış PCM
- M4A — AAC ile kodlanmış ses
- MP3 — MPEG Layer III
- CAF — Apple Core Audio Format
Modeller ilk kullanımda HuggingFace'ten indirilir ve ~/Library/Caches/qwen3-speech/ dizininde önbelleğe alınır. 4-bit 0.6B modeli yaklaşık 1.5 GB'tır.