Maskinoversættelse · Engelsk original

Qwen3-ASR

MLX og CoreML bruger de samme Whisper-stil input funktioner: 128 Slaney- normaliseret mel bins fra en eksakt 400- punkt STFT på 16 kHz, med en 160-prøve hop og en periodisk Hann vindue.

Qwen3-ASR er en stat-of-the- art flersproget automatisk talegenkendelse model. Det kører on- enhed ved hjælp af Metal GPU acceleration via MLXmed 4- bit, 5- bit, eller 8-bit kvantisering for effektiv hukommelse brug. Fås i 0.6B og 1.7B parametervarianter. 5-bit er den nye nøjagtighed / hukommelse søde spot - se benchmarks.

Pipeline

Qwen3-ASR inferens rørledning behandler lyd gennem fire faser:

FaseVarebeskrivelse
LydindgangRaw audio reamped to 16 kHz mono
Mel-spektrogram128- bin mel filterbank funktioner udvundet fra kurveformen
Lydindkoder18-lag transformer med blok opmærksomhed, processer mel rammer ind lyd indlejringer
TekstdekoderComment28- layer Qwen3 transformer med grouped- query opmærksomhed (GQA) og roterende position indlejringer (RoPE), autoregressivt genererer tekst tokens

Præstation

BackendRTFSpidshukommelseBemærkninger
Qwen3-ASR 1.7B MLX 5- bit0.0271,92 GBWER 1.32% (ny nøjagtighed leder)
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 rekonstruktion)

Apple M5 Pro, 48 GB. LibriSpeech test- clean n = 200, isoleret per- motor. RTF < 1.0 = hurtigere end real- tid.

Model Variants

ModelBackendStørrelseHuggingFace
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

CLI-brug

Transcribe en lydfil med standard Qwen3-ASR model:

.build/release/speech transcribe recording.wav

Indstillinger

# 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

Brug Qwen3ASR modul til at transskribere lyd programmatisk:

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)

Kør lydindkoderen på Neural Engine via CoreML, med tekstdekoder på GPU via MLXDenne hybrid tilgang sænker strømforbruget og frigør GPU for samtidige arbejdsbelastninger.

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 palætiseret (180 MB, cosin lighed > 0.999) er standard. INT4 variant (90 MB) er også tilgængelig for begrænset implementering.

Streaming tilstand

Streaming tilstand bruger VAD (voice activity detection) til at inddele lyd i stykker og transskribere dem trinvist. Dette er nyttigt for lange optagelser eller real- time behandling.

# 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

Den --max-segment flag styrer den maksimale stump varighed i sekunder. --partial flag muliggør delvis resultat output, viser ord, som de er dekodet.

Understøttede formater

Qwen3-ASR accepterer følgende lydformater. Alle inddata omlægges automatisk til 16 kHz mono internt.

Vigtigt

Modeller downloades fra HuggingFace ved første brug og cache i ~/Library/Caches/qwen3-speech/4- bit 0.6B modellen er cirka 1.5 GB.

Relaterede guider

Parakeet TDT speech- to- text · CosyVoice3 stemmekloning · Kokoro-82M TTS

Har du brug for en fokuseret beslutningsvejledning? Se Qwen3-ASR vs Whisper: nøjagtighed, hastighed og hukommelse.

Annullering af samarbejde

For MLX transskription, Qwen3ASRModel.transcribeCheckingCancellation(audio:sampleRate:options:) kaster CancellationError når opgaveaflysning observeres før feature extraction, kodning, dekoderpræfill eller et dekodertrin. GPU arbejde, der allerede er indsendt, kan afslutte. Synkron transcribe og transcribeBatch Api 'er bevarer deres ikke-kaste adfærd og ignorere opgave annullering. speech-server bruger annullerings-aware indgang for Qwen3-ASR.

MLX cache budget

Indlæser Qwen3-ASR begrænser proces- wide MLX pulje af genanvendelige Metal buffere: min(1 GiB, RAM / 8) for 0.6B og min(4 GiB, RAM / 4) for 1.7B. Andre MLX-modeller deler denne pulje. Lofterne gælder for cachede skrabebuffere, ikke aktive vægte eller det samlede procesfodaftryk.

Den effektive grænse er den laveste af den kaldende eksisterende MLX.Memory.cacheLimit og hver indlæst ASR instance loft. Tilfælde kan aflæsse i enhver rækkefølge; den sidste aflæsning eller tilfælde ødelæggelse genopretter den kaldende budget. En strammere grænse fastsat af den kaldende, mens modeller er indlæst er bevaret.

Single- input transskription rydder genanvendelige buffere, når dens dekoder vender tilbage eller kaster, herunder annullering inde i dekoder. Aktive arrays og model vægte forbliver indlæst. transcribeBatch dekoder bevarer den afgrænsede pulje mellem batcher. Ingen API muligheder eller CLI flag ændre.

Clearing buffer puljen sænker hukommelse, men kræver nye tildelinger på senere anmodninger, så korte anmodninger kan tage længere tid. Venter på indsendt dekoder arbejde for at afslutte gør oprydning deterministiske, herunder annullering. Faktisk latency og proces hukommelse afhænger af hardware, model, og lyd.

Valgfri modelejerskab

SpeechRuntime giver delt indlæsning, annullerbar FIFO optagelse og serialiseret udførelse. Qwen3ASRRuntime vælger MLX eller fuld CoreML via eksplicitte deskriptorer; indfødte API 'er og CLI-flag forbliver tilgængelige.

Lydserveren har en udførelsestilladelse gennem hver komplet anmodning, herunder streamet output, med op til 32 anmodninger venter. ASR fejl producerer HTTP fejl eller WebSocket fejlbegivenheder; gyldige tomme udskrifter forbliver vellykket. Playback bevarer overløb prøver. Cached modeller og venter afspilning lyd stadig optager hukommelse.

Administreret CoreML transskription frigiver midlertidige buffere efter hver anmodning, herunder gentagne opkald fra en baggrundsopgave.

import Qwen3ASRRuntime

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