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

Omnilingual ASR

מטא Omnilingual ASR היא משפחה בעלת הכרה בשפה-אגנוסטית המכסה את 1,672 שפות על פני 32 תסריטים שונים - כיסוי השפה הרחב ביותר של כל אחד על-העתקים ASR מודל Apple Silicon. Soniqo נמלים את ה- CTC לשניהם CoreML (Neural Engine(ו) MLX (Metal GPUעם ארבעה דגמים גדלים 300M to 7B פרמטרים

אנגלית-agnostic CTC

שלא כמו 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 חלון)24102416312 MBNeural Engine
CTC-300M-CoreML-INT8 (10 s חלון)24102416312 MBNeural Engine
CTC-300M-MLX-4bit24102416193 MBMetal GPU
CTC-300M-MLX-8bit24102416342 MBMetal GPU
CTC-1B-MLX-4bit48128020549 MBMetal GPU
CTC-1B-MLX-8bit481280201006 MBMetal GPU
CTC-3B-MLX-4bit602048321.71 GBMetal GPU
CTC-3B-MLX-8bit602048323.16 GBMetal GPU
CTC-7B-MLX-4bit1282048323.55 GBMetal GPU
CTC-7B-MLX-8bit1282048326.63 GBMetal 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) בחר בהתבסס על יעד הפריסה שלך:

CoreMLMLX
יעד משותףNeural EngineMetal 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,398eng_Latn, fra_Latn, spa_Latn, pcm_Latn, swh_Latn, zul_Latn, …
ערבית ערבית70arb_Arab, arz_Arab, ary_Arab, arq_Arab, fas_Arab, urd_Arab, ckb_Arab, uig_Arab, …
Devanagari65hin_Deva, mar_Deva, nep_Deva, bho_Deva, mai_Deva, awa_Deva, brx_Deva, …
Cyrillic51rus_Cyrl, ukr_Cyrl, bel_Cyrl, bul_Cyrl, srp_Cyrl, mkd_Cyrl, kaz_Cyrl, …
Ethiopic10amh_Ethi, tir_Ethi, wal_Ethi, sgw_Ethi, …
Bengali8ben_Beng, asm_Beng, mni_Beng, …
תאילנד / Lao / מיאנמר / טיבט9 / 1 / 3 / 6tha_Thai, lao_Laoo, mya_Mymr, bod_Tibt, dzo_Tibt, …
האן (הרגיש/מסורתי)6cmn_Hans, cmn_Hant, yue_Hans, yue_Hant, cdo_Hans, …
יפן/קוריאנית1 / 1jpn_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(ב) להפחית את שגיאות השכנות באופן הדרגתי.

ייחוס