תרגום מכונה · המקור באנגלית
Omnilingual ASR
מטא Omnilingual ASR היא משפחה בעלת הכרה בשפה-אגנוסטית המכסה את 1,672 שפות על פני 32 תסריטים שונים - כיסוי השפה הרחב ביותר של כל אחד על-העתקים ASR מודל Apple Silicon. Soniqo נמלים את ה- CTC לשניהם CoreML (Neural Engine(ו) MLX (Metal GPUעם ארבעה דגמים גדלים 300M to 7B פרמטרים
שלא כמו Qwen3-ASR או Parakeet TDT, Omnilingual CTC אינו לוקח רמז שפה בזמן הקצינה - הוא משתמש באוצר מילים משותף של 10,288-כניסה למונחי LawPiece על פני כל שפה תומכת.עבור כל דיבור בכל שפה תומכת והמודל מייצר באופן אוטומטי את התסריט הנכון.
ערוצי אודיו, קצב הדגימה ותבנית קלט
השתמש במונונו Float32 PCM ב 16 kHz. CLI מקבל קבצים משותפים של AVFoundation-readable, כגון WAV, MP3, M4Aו- CAF, לאחר מכן, הם מפצירים אותם 16 kHz באופן אוטומטי.עבור קבצי סטריאו או רב ערוצים, AudioFileLoader.load ממוצעים של כל הערוצים על ידי ברירת מחדל, כך שנאום על כל ערוץ נשמר; שימוש channelSelection: .first או או .select([indices]) עבור הקלטות ארוכות, AudioFileLoader.stream מספק גושים מונעים על ידי משיכה, כבולים. [Float] buffer ישירות, לספק את שיעור הדגימה בפועל שלה - CoreML ו MLX יישום resample פנימי.
ארכיטקטורה
Omnilingual CTC הוא מזל טוב בפיקוח של Meta's wav2vec 2.0 עמוד השדרה עם ראש CTC ליניארי על אוצר מילים רב לשוני משותף.הצנרת היא מקבילה ולא-autoregressive - אחד קדימה לעבור לאמירות, לא לולאה קודר.
raw audio [1, samples]
→ wav2vec2 feature extractor (7 strided CNN layers, ×320 downsample)
→ weight-normalised Conv1d positional encoder
→ N × pre-norm Transformer encoder layers
→ final layer norm
→ linear CTC head → logits [1, T, 10288]
ב-16 kHz קלט, 320× downsampled encoder מייצר 50 הרץ קצב מסגרת. A 10 שניות קליפ מייצר 499 מסגרות של יומניs. Greedy CTC decoding קריסות רצופים ומלג על אסימונים מיוחדים באמצעות הסימון Piece tokenizer.
מודלים
10 גרסאות פורסמו תחת Aufklarer שם שטח על HuggingFace - שני גדלים חלון CoreML בתוספת שמונה MLX שילובים קוונטיים:
| משתנה | שכבות | דיאם | ראשים | גודל | Runtime |
|---|---|---|---|---|---|
| CTC-300M-CoreML-INT8 (5 s חלון) | 24 | 1024 | 16 | 312 MB | Neural Engine |
| CTC-300M-CoreML-INT8 (10 s חלון) | 24 | 1024 | 16 | 312 MB | Neural Engine |
| CTC-300M-MLX-4bit | 24 | 1024 | 16 | 193 MB | Metal GPU |
| CTC-300M-MLX-8bit | 24 | 1024 | 16 | 342 MB | Metal GPU |
| CTC-1B-MLX-4bit | 48 | 1280 | 20 | 549 MB | Metal GPU |
| CTC-1B-MLX-8bit | 48 | 1280 | 20 | 1006 MB | Metal GPU |
| CTC-3B-MLX-4bit | 60 | 2048 | 32 | 1.71 GB | Metal GPU |
| CTC-3B-MLX-8bit | 60 | 2048 | 32 | 3.16 GB | Metal GPU |
| CTC-7B-MLX-4bit | 128 | 2048 | 32 | 3.55 GB | Metal GPU |
| CTC-7B-MLX-8bit | 128 | 2048 | 32 | 6.63 GB | Metal GPU |
CLI Usage
CoreML (Neural Engine)
# 10 s window (default)
.build/release/speech transcribe recording.wav --engine omnilingual
# 5 s window (lower memory, faster cold start)
.build/release/speech transcribe recording.wav --engine omnilingual --window 5
MLX (Metal GPU)
# 300M @ 4-bit (default MLX variant)
.build/release/speech transcribe recording.wav --engine omnilingual --backend mlx
# 1B @ 4-bit — higher accuracy
.build/release/speech transcribe recording.wav --engine omnilingual --backend mlx --variant 1B
# 3B @ 8-bit — approaching reference quality
.build/release/speech transcribe recording.wav --engine omnilingual --backend mlx --variant 3B --bits 8
# 7B @ 4-bit — largest CTC variant, best accuracy
.build/release/speech transcribe recording.wav --engine omnilingual --backend mlx --variant 7B
Swift API
CoreML חזרה
import OmnilingualASR
import AudioCommon
let model = try await OmnilingualASRModel.fromPretrained()
let audio = try AudioFileLoader.load(url: url, targetSampleRate: 16000)
let text = try model.transcribeAudio(audio, sampleRate: 16000)
print(text)
MLX חזרה
import OmnilingualASR
// Default: 300M @ 4-bit
let model = try await OmnilingualASRMLXModel.fromPretrained()
// Larger variants
let big = try await OmnilingualASRMLXModel.fromPretrained(variant: .b1, bits: 4)
let huge = try await OmnilingualASRMLXModel.fromPretrained(variant: .b3, bits: 8)
let max = try await OmnilingualASRMLXModel.fromPretrained(variant: .b7, bits: 4)
let text = try model.transcribeAudio(audio, sampleRate: 16000)
CoreML לעומת MLX
שני backends לייצר למעשה תמלילים זהים Modulo 1-2 תווים (quantisation ו- Runtime Difference) בחר בהתבסס על יעד הפריסה שלך:
| CoreML | MLX | |
|---|---|---|
| יעד משותף | Neural Engine | Metal GPU |
| אורך Input | חלון קבוע (5 s או 10 s) | כל אורך עד 40 |
| מודלים | 300 מיליון בלבד | 300M / 1B / 3B / 7B |
| המונחים | INT8 שיתוק | 4bit או 8 סיביות QuantizedLinear |
| פועל במקביל עם GPU TTS | כן (ANE הוא עצמאי) | עקבו אחרי GPUTTS |
| iOS תמיכה | iOS 18+ | כל Apple Silicon iOS |
עיבוד פרטים
Omnilingual דורש שכבת-norm ברמת השכבה על הגלום הגולמי, תואם fairseq2 של apply_audio_normalization:
normalized = (audio - mean(audio)) / sqrt(variance(audio) + 1e-5)
נמל Swift מסדיר את תוכן השמע האמיתי לפני אפס קידוד לחלון הקבוע CoreML, כך שקלטי תת-window מתאימים לסטטיסטיקות של צינורות הפניה בדיוק.זהו המלכודת היחידה הנפוצה ביותר של הנמל - HuggingFace של wav2vec2 עושה קבוצה-norm per-feature, ולא שכבת הגשמה.
צינור ההתייחסות לאכוף את ה- 40-II כובע קשה (השנייה)MAX_ALLOWED_AUDIO_SECעל אודיו קלט.נמל Swift לאכוף את אותה הגבלה - קלטות ארוכות יותר זורקות טעות ברורה מצביעה על כך דיבור VAD או או ParakeetStreamingASR עיבוד מפורט.
שפה Coverage
Omnilingual תומך 1,672 שפות על פני 32 תסריטים, כולל 500+ שפות קוד נמוך הוסיפו באמצעות איסוף נתונים קהילתי:
| תסריט | שפות | קודים |
|---|---|---|
| לטינית | 1,398 | eng_Latn, fra_Latn, spa_Latn, pcm_Latn, swh_Latn, zul_Latn, … |
| ערבית ערבית | 70 | arb_Arab, arz_Arab, ary_Arab, arq_Arab, fas_Arab, urd_Arab, ckb_Arab, uig_Arab, … |
| Devanagari | 65 | hin_Deva, mar_Deva, nep_Deva, bho_Deva, mai_Deva, awa_Deva, brx_Deva, … |
| Cyrillic | 51 | rus_Cyrl, ukr_Cyrl, bel_Cyrl, bul_Cyrl, srp_Cyrl, mkd_Cyrl, kaz_Cyrl, … |
| Ethiopic | 10 | amh_Ethi, tir_Ethi, wal_Ethi, sgw_Ethi, … |
| Bengali | 8 | ben_Beng, asm_Beng, mni_Beng, … |
| תאילנד / Lao / מיאנמר / טיבט | 9 / 1 / 3 / 6 | tha_Thai, lao_Laoo, mya_Mymr, bod_Tibt, dzo_Tibt, … |
| האן (הרגיש/מסורתי) | 6 | cmn_Hans, cmn_Hant, yue_Hans, yue_Hant, cdo_Hans, … |
| יפן/קוריאנית | 1 / 1 | jpn_Jpan, kor_Hang |
| ארמני, גאורגי, עברית, יווני, ג'רצ'אטי, גורמוקי, קאננדה, מלמאלאם, אוריה, Sinhala, טמיל, Telugu, Tifinagh, Thaana, בתוספת 4 יותר | 48 | ראה רשימה מלאה |
מלא ISO 639-3 + ISO 15924 קוד רשימת קוד עם שמות אנגליים ב lang_ids.py מקור, ומופץ על ידי תסריט עם רמזים מדינה ב כרטיסי מודל .
תגית: Output
רוצו מהנמל Swift על FLEURS, CoreML 300M:
| שפה | ייחוס | Output |
|---|---|---|
| אנגלית אנגלית | Fellow המתאבקים שילמו גם מחווה לונה. | fellow wrestlers also paid tribute to luna |
| ערבית ערבית | كما أثنى الزملاء المصارعون على لونا | كما أثنى الزملاء المصارعون على لونا |
| הינד | लूना को साथी पहलवानों ने भी श्रद्धांजलि दी | लूना को साथी पहलवानों ने भी सरधांजलीदी |
| צרפתית צרפתית צרפתית | Pensez à l'itinéraire de סקי comme à un Itinéraire דה רץדון סימולטור. | pense à létineraire desqui comme un étineraire de rent donner similaire |
The The The MLX 300M-4מעט גרסאות יוצרות למעשה את הפלט הזה 1-2 דמויות גדולות יותר (Greaterגרסאות)1B, 3B, 7(ב) להפחית את שגיאות השכנות באופן הדרגתי.
ייחוס
- מסמך: Omnilingual ASR (arXiv 2511.09690)
- יישום Upstream: facebookresearch/mnilingual-asr (Apache 2.0)
- Swift מקור הנמל: speech-swift
- כרטיס מודל: docs/מודלים / omnilingual-asr.md