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áze | Popis |
|---|---|
| Audio vstup | Syrový zvuk přetvořený na 16 kHz mononukleát |
| Mel Spectrogram | 128-bin mel filterbank funkce extrahované z vlnové formy |
| Audio enkodér | 18- vrstvý transformátor s blokovou pozorností, zpracovává mel rámy do zvukových embeddingů |
| Textový dekodér | 28- layer Qwen3 transformátor se skupinovým dotazem (GQA) a rotační pozicí (RoPE), autoregresivní generuje textové tokeny |
Výkonnost
| Backend | RTF | Paměť špiček | Poznámky |
|---|---|---|---|
| Qwen3-ASR 1.7B MLX 5- bit | 0.027 | 1.92 GB | WER 1.32% (nový vůdce přesnosti) |
| Qwen3-ASR 1.7B MLX 8-bit | 0.033 | 2.7 GB | WER 1.52% |
| Qwen3-ASR 0.6B MLX 8-bit | 0.015 | 1.3 GB | WER 1.82% |
| Qwen3-ASR 0.6B MLX 5- bit | 0.014 | 1.03 GB | WER 1.74% (near-8-bit at ~ 4- bit RAM) |
| Qwen3-ASR 0.6B MLX 4-bit | 0.012 | 1.0 GB | WER 2.20% |
| Qwen3-ASR 0.6B CoreML INT8 | 0.098 | 1.4 GB | WER 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ů
| Vzor | Backend | Velikost | HuggingFace |
|---|---|---|---|
| Qwen3-ASR-0.6B (4-bit) | MLX | 680 MB | aufklarer / Qwen3-ASR-0.6B-MLX-4bit |
| Qwen3-ASR-0.6B (5- bit) | MLX | 1.0 GB | aufklarer / Qwen3-ASR-0.6B-MLX-5bit |
| 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 (5- bit) | MLX | 2.3 GB | aufklarer / Qwen3-ASR-1.7B-MLX-5bit |
| Qwen3-ASR-1.7B (8-bit) | MLX | 3,2 GB | aufklarer / 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ě.
- WAV - nestlačený PCM
- M4A - AAC- kódovaný zvuk
- MP3 - MPEG Layer III
- CAF - Apple Core Audio Format
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.
Parakeet TDT speech-to-text · CosyVoice3 hlasové klonování · Kokoro-82M TTS
Potřebujete cílenou radu pro rozhodování? Qwen3-ASR vs Whisper: přesnost, rychlost a paměť.
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()