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:
| Fase | Varebeskrivelse |
|---|---|
| Lydindgang | Raw audio reamped to 16 kHz mono |
| Mel-spektrogram | 128- bin mel filterbank funktioner udvundet fra kurveformen |
| Lydindkoder | 18-lag transformer med blok opmærksomhed, processer mel rammer ind lyd indlejringer |
| TekstdekoderComment | 28- layer Qwen3 transformer med grouped- query opmærksomhed (GQA) og roterende position indlejringer (RoPE), autoregressivt genererer tekst tokens |
Præstation
| Backend | RTF | Spidshukommelse | Bemærkninger |
|---|---|---|---|
| Qwen3-ASR 1.7B MLX 5- bit | 0.027 | 1,92 GB | WER 1.32% (ny nøjagtighed leder) |
| 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 rekonstruktion) |
Apple M5 Pro, 48 GB. LibriSpeech test- clean n = 200, isoleret per- motor. RTF < 1.0 = hurtigere end real- tid.
Model Variants
| Model | Backend | Størrelse | 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 |
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.
- WAV - ukomprimeret PCM
- M4A - AAC- kodet lyd
- MP3 - MPEG Layer III
- CAF - Apple Core Audio Format
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.
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()