תרגום מכונה · המקור באנגלית

Qwen3-ASR

MLX ו CoreML השתמש באותם תכונות קלט בסגנון Whisper: 128 Slaney-normalized mel bins מ- 400 נקודות STFT בדיוק ב 16 k, עם a 160-sample הופ וחלון האן תקופתי.

Qwen3-ASR הוא מודל זיהוי דיבור אוטומטי רב-לשוני של המדינה- of-the-art.It פועל על-device באמצעות שימוש Metal GPU האצה באמצעות MLXעם 4-bit, 5-bit, או 8- קוונטיזציה של שימוש יעיל בזיכרון. 0.6B ו 1.7B פרמטר גרסאות 5-bit הוא הדיוק החדש / מקום מתוק - ראה השוואות.

המונחים:

Qwen3-ASR תהליכי צינורות הסימון אודיו באמצעות ארבעה שלבים:

שלב השלבתיאור תיאור
אודיו InputRaw Audio Resampled to 16 kHz מונו
Mal Spectrogram128-bin mel filterbank תכונות מופקות מן הגלפור
אודיו Encoder18-layer הופך עם תשומת לב בלוק, תהליכים מסגרת האבטיח לתוך הטמעת אודיו
טקסט Decoder28-layer Qwen3 מהפך עם תשומת לב ממוקדת-קבוצה (GQA) ומיקום רוטארי מטביעה (RoPE), מייצרת אוטומטית אסימונים טקסט

ביצועי ביצועים

חזרהRTFזיכרון גבוההערות הערות
Qwen3-ASR 1.7B MLX 5-bit0.0271.92 GBWER 1.32% (מנהיג דיוק חדש)
Qwen3-ASR 1.7B MLX 8 סיביות0.0332.7 GBWER 1.52%
Qwen3-ASR 0.6B MLX 8 סיביות0.0151.3 GBWER 1.82%
Qwen3-ASR 0.6B MLX 5-bit0.0141.03 GBWER1.74% (near-8-bit בכתובת - 4-bit RAM)
Qwen3-ASR 0.6B MLX 4bit0.0121.0 GBWER 2.20%
Qwen3-ASR 0.6B B CoreML INT80.0981.4 GBWER 3.02% (בשיתוף פעולה עם השגחה)

Apple M5 Pro, 48 GB. LibriSpeech Test-clean n=200, מבודד per-engine. RTF < 1.0= מהיר יותר מאשר בזמן אמת.

מודלים

מודל מודלחזרהגודלHuggingFace
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 סיביות)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 סיביות)MLX3.2 GBaufklarer/Qwen3-ASR-1.7B-MLX-8bit

CLI Usage

תרשום קובץ אודיו עם ברירת המחדל Qwen3-ASR מודל:

.build/release/speech transcribe recording.wav

אפשרויות אפשרויות

# 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

השתמש במודול Qwen3ASR כדי לנטרן אודיו באופן מתודולוגי:

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)

הפעל את קוד השמע על Neural Engine באמצעות CoreML, עם טקסט decoder ב GPU דרך MLX. גישה היברידית זו מורידה את צריכת החשמל ומשחררת את GPU עבור עומסי עבודה מקבילים.

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 שיתוק (180 MB, cosine similarity > 0.999) הוא ברירת המחדל. An INT4 גרסה (90 MB) זמין גם עבור פריסות בקנה מידה לא מוגבל.

מצב הזרמת מצב

מצב הזרמת השימוש VAD (זיהוי פעילות חשבונית) כדי לפרט אודיו לתוך גושים ולעקוב אחריהם באופן מצטבר.זה שימושי עבור הקלטות ארוכות או עיבוד בזמן אמת.

# 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

דגל --max-segment שולט משך המניה המקסימלי בשניות.דגל --partial מאפשר תפוקה חלקית, מראה מילים כפי שהם מקודמים.

פורמטים תומכים

Qwen3-ASR מקבל את פורמטי אודיו הבאים.כל קלט הוא resampled אוטומטית 16 kHz מונו פנימי.

חשוב

מודלים מורידים מ- HuggingFace לשימוש ראשון ודחוסים לשימוש ראשון. ~/Library/Caches/qwen3-speech/דגם 4-bit 0.6B הוא בערך 1.5 GB.

ביטול משותף

עבור MLX Qwen3ASRModel.transcribeCheckingCancellation(audio:sampleRate:options:) זורקים CancellationError כאשר ביטול המשימה נצפתה לפני ביצוע תכונה, סיבולת, קודר prefill, או צעד decoding. GPU עבודה כבר הוגש יכול לסיים. transcribe ו transcribeBatch ה- API שומר על התנהגותם הלא-מחדשת ומתעלם מביטול המשימות. speech-server השתמש בנקודת הכניסה של ביטול-מודע עבור Qwen3-ASR.

MLX תקציב מטמון

טעינה Qwen3-ASR מגבילה את מאגר MLX של Metal Buffers: min(1 GiB, RAM / 8) 0.6B ו min(4 GiB, RAM / 4) עבור דגמי 1.7B אחרים MLX חולקים את הבריכה הזאת.התקרה חלת על מציצים שריטות, לא משקולות פעילות או את טביעת הרגל של התהליך הכולל.

הגבול האפקטיבי הוא הנמוך ביותר של הטלנר הקיים. MLX.Memory.cacheLimit וכל תקרתו של ASR של מקרה ה-Instances יכולה לספוג בכל סדר; ההריסה האחרונה או החורבן של המופע מחזירה את התקציב של המתקשר.גבול הדוק יותר שנקבע על ידי המתקשר, בעוד מודלים עמוסים נשמר.

טיהור יחיד-input מנקה את buffers הניתנים לחזרה או זורקים, כולל ביטול בתוך המקודד. מיזמים פעילים ומשקלי מודל נותרו טעון. transcribeBatch decoder שומר את הבריכה המוקבת בין אצווה. No API

קביעת מאגר ה-buffer מורידה זיכרון, אך דורשת הקצאות חדשות על בקשות מאוחרות יותר, כל כך בקשות קצרות יכולות להימשך זמן רב יותר.המתנה לעבודה של קודר שהוגשה כדי לסיים הופכת את הדטרמיניסטית, כולל ביטול העקביות והזיכרון של התהליך תלויים בחומרה, במודל ובדיו.

בעלות מודל אופטי

דיבור Runtime מספק טעינה משותפת, כניסה ל-FIFO והוצאה להורג סדרתית Qwen3ASRRuntime בוחרת MLX או מלא CoreML באמצעות פקודות מפורשות; ממשקי API ו- CLI נותרו זמינים.

שרת השמע מחזיקה ברישיון הוצאה להורג אחד בכל בקשה מלאה, כולל פלט מפלט, עם עד 32 בקשות לחכות. ASR כישלונות לייצר שגיאות HTTP או WebSocket אירועים; תמלילים ריקים נותרו מוצלחים.

נוהל CoreML תמליל משחררים מכופרים זמניים לאחר כל בקשה, כולל שיחות חוזרות ונשנות ממשימה רקע.

import Qwen3ASRRuntime

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