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şamaAçıklama
Ses girişiHam ses, 16 kHz mono'ya yeniden örneklenir
Mel spektrogramDalga 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

BackendRTFZirve bellekNotlar
MLX (GPU)~0.06~2.2 GBVarsayı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ı

ModelBackendBoyutHuggingFace
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 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.

Önemli

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.