Strojový překlad · Anglický originál

Qwen3-ASR

MLX a CoreML používají stejné funkce Whisper- styl vstupu: 128 Slaney- normalizované mel koše z přesného 400-point STFT na 16 kHz, se vzorkem 160- hop a periodické Hann okno.

Qwen3-ASR je stateof-the- art vícejazyčný automatický model rozpoznávání řeči. To běží on- zařízení pomocí Metal GPU zrychlení pomocí MLX, s 4-bit, 5-bit, nebo 8-bitová kvantifikace pro efektivní využití paměti. K dispozici v 0.6B a 1.7B varianty parametru. 5-bit je nová přesnost / paměť sladká skvrna - viz Referenční hodnoty.

Potrubí

Přívodní plynovod Qwen3-ASR zpracovává audio po čtyřech etapách:

FázePopis
Audio vstupSyrový zvuk přetvořený na 16 kHz mononukleát
Mel Spectrogram128-bin mel filterbank funkce extrahované z vlnové formy
Audio enkodér18- vrstvý transformátor s blokovou pozorností, zpracovává mel rámy do zvukových embeddingů
Textový dekodér28- layer Qwen3 transformátor se skupinovým dotazem (GQA) a rotační pozicí (RoPE), autoregresivní generuje textové tokeny

Výkonnost

BackendRTFPaměť špičekPoznámky
Qwen3-ASR 1.7B MLX 5- bit0.0271.92 GBWER 1.32% (nový vůdce přesnosti)
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 5- bit0.0141.03 GBWER 1.74% (near-8-bit at ~ 4- bit RAM)
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 restorage)

Apple M5 Pro, 48 GB. LibriSpeech test- clean n = 200, izolovaný per- motor. RTF < 1.0 = rychlejší než reálný čas.

Vzor Variantů

VzorBackendVelikostHuggingFace
Qwen3-ASR-0.6B (4-bit)MLX680 MBaufklarer / Qwen3-ASR-0.6B-MLX-4bit
Qwen3-ASR-0.6B (5- bit)MLX1.0 GBaufklarer / Qwen3-ASR-0.6B-MLX-5bit
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 (5- bit)MLX2.3 GBaufklarer / Qwen3-ASR-1.7B-MLX-5bit
Qwen3-ASR-1.7B (8-bit)MLX3,2 GBaufklarer / Qwen3-ASR-1.7B-MLX-8bit

Použití CLI

Transcribe audio soubor s výchozí Qwen3-ASR model:

.build/release/speech transcribe recording.wav

Možnosti

# 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

Používejte Qwen3ASR modul pro přepis audio programově:

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)

Spusťte audio kodér na Neural Engine prostřednictvím CoreML, s textovým dekodérem zapnuto GPU prostřednictvím MLX. Tento hybridní přístup snižuje spotřebu energie a osvobozuje GPU pro souběžné pracovní zatížení.

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 palettizované (180 MB, cosinus podobnost > 0.999) je výchozí. INT4 varianta (90 MB) je také k dispozici pro size- omezené nasazení.

Režim streamingu

Streamingový režim využívá VAD (detekce hlasové aktivity) k dělení zvuku do úlomků a přepis je postupně. To je užitečné pro dlouhé nahrávky nebo real-time zpracování.

# 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

V --max-segment vlajka kontroluje maximální trvání kupu v sekundách. --partial vlajka umožňuje částečný výstup výsledku, zobrazující slova, jak jsou dekódovány.

Podporované formáty

Qwen3-ASR přijímá následující zvukové formáty. Veškerý vstup je automaticky resamován na 16 kHz mono interně.

Důležité

Modely jsou staženy z HuggingFace při prvním použití a cachovány v ~/Library/Caches/qwen3-speech/. Model 4-bit 0.6B je přibližně 1.5 GB.

Zrušení spolupráce

Pro přepis MLX, Qwen3ASRModel.transcribeCheckingCancellation(audio:sampleRate:options:) házení CancellationError při zrušení úkolu je pozorován před funkce extrakce, kódování, dekodér předvyplnění, nebo dekódování krok. GPU práce již odevzdána může skončit. Synchronní transcribe a transcribeBatch API si zachovají své non-házení chování a ignorovat zrušení úkolu. speech-server používá vstupní bod pro Qwen3-ASR.

Rozpočet na cache MLX

Nahrávání Qwen3-ASR omezuje procesorový-široký MLX bazén opakovaně použitelných Metal pufrů: min(1 GiB, RAM / 8) pro 0.6B a min(4 GiB, RAM / 4) pro 1.7B. Ostatní modely MLX sdílejí tento bazén. Stropy platí pro kryté stírací chrániče, neaktivní závaží nebo celkovou procesní stopu.

Efektivní limit je nejnižší ze stávající volající MLX.Memory.cacheLimit a každý načtený strop instance ASR. Případy se mohou vyložit v libovolném pořadí; poslední vyložení nebo zničení instancí obnoví rozpočet volajícího. Užší limit stanovený volajícím, zatímco modely jsou nakládány, je zachován.

Single-vstup transkripce smaže opakovaně použitelné buffery, když se jeho dekodér vrátí nebo hází, včetně zrušení uvnitř dekodéru. Aktivní pole a hmotnost modelu zůstávají načteny. Chamtivost transcribeBatch dekodér uchovává ohraničený bazén mezi šaržemi. Žádné API možnosti nebo CLI vlajky změnit.

Clearing buffer pool snižuje zachovanou paměť, ale vyžaduje nové příděly na pozdější požadavky, takže krátké požadavky mohou trvat déle. Čekání na předložené dekodér práce dokončit je čištění deterministické, včetně zrušení. Skutečná latence a procesní paměť závisí na hardware, model a audio.

Nepovinné vlastnictví modelu

SpeechRuntime poskytuje sdílené zatížení, zrušitelné FIFO přijetí a serializovaný výkon. Qwen3ASRRuntime vybere MLX nebo plný CoreML prostřednictvím explicitních deskriptorů; Nativní API a CLI vlajky zůstávají k dispozici.

Audio server má jedno povolení k provedení přes každý kompletní požadavek, včetně streamovaného výstupu, s až 32 požadavky čekání. ASR selhání produkují HTTP chyby nebo WebSocket chybové události; platné prázdné přepisy zůstávají úspěšné. Přehrávání uchovává přetečení vzorků. Cached modely a čeká přehrávání audio stále zabírá paměť.

Správa transkripce CoreML uvolní dočasné vyrovnávací paměti po každém požadavku, včetně opakovaného volání z úkolu pozadí.

import Qwen3ASRRuntime

let runtime = Qwen3ASRRuntime(descriptor: Qwen3ASRDescriptors.small)
let text = try await runtime.transcribe(audio: samples, sampleRate: 16000)
try await runtime.unload()