Omnilingual ASR

Meta'nın Omnilingual ASR'si, 32 farklı yazı sistemi boyunca 1.672 dili kapsayan dilden bağımsız bir konuşma tanıma ailesidir — Apple Silicon üzerinde herhangi bir cihaz üzeri ASR modelinin en geniş dil kapsamı. Soniqo, CTC varyantını hem CoreML'e (Neural Engine) hem de MLX'e (Metal GPU) port eder, 300M'den 7B parametreye kadar dört model boyutuyla.

Dilden bağımsız CTC

Qwen3-ASR veya Parakeet TDT'nin aksine, Omnilingual CTC çıkarım sırasında dil ipucu almaz — desteklenen her dili kapsayan paylaşımlı 10.288 girişli bir SentencePiece sözcük dağarcığı kullanır. Desteklenen herhangi bir dilde herhangi bir konuşma geçirin, model doğru yazı sistemini otomatik olarak üretir.

Mimari

Omnilingual CTC, Meta'nın wav2vec 2.0 omurgasının paylaşımlı çok dilli bir sözcük dağarcığı üzerinde doğrusal CTC kafasıyla denetimli bir ince ayarıdır. Boru hattı paraleldir ve otoregresif değildir — söyleniş başına bir ileri geçiş, decoder döngüsü yok.

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 girişte, ×320 alt örneklenmiş encoder 50 Hz frame oranı üretir. 10 saniyelik bir klip 499 frame logit üretir. Greedy CTC çözme ardışık kopyaları çöktürür ve SentencePiece tokenizer aracılığıyla özel token'ları atlar.

Model Varyantları

HuggingFace'te aufklarer ad alanı altında on varyant yayımlanmıştır — iki CoreML pencere boyutu artı sekiz MLX niceleme kombinasyonu:

VaryantKatmanlarDimHeadlerBoyutRuntime
CTC-300M-CoreML-INT8 (5 s pencere)24102416312 MBNeural Engine
CTC-300M-CoreML-INT8 (10 s pencere)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 Kullanımı

CoreML (Neural Engine)

# 10 s pencere (varsayılan)
.build/release/speech transcribe recording.wav --engine omnilingual

# 5 s pencere (daha az bellek, daha hızlı soğuk başlangıç)
.build/release/speech transcribe recording.wav --engine omnilingual --window 5

MLX (Metal GPU)

# 300M @ 4-bit (varsayılan MLX varyantı)
.build/release/speech transcribe recording.wav --engine omnilingual --backend mlx

# 1B @ 4-bit — daha yüksek doğruluk
.build/release/speech transcribe recording.wav --engine omnilingual --backend mlx --variant 1B

# 3B @ 8-bit — referans kalitesine yaklaşıyor
.build/release/speech transcribe recording.wav --engine omnilingual --backend mlx --variant 3B --bits 8

# 7B @ 4-bit — en büyük CTC varyantı, en iyi doğruluk
.build/release/speech transcribe recording.wav --engine omnilingual --backend mlx --variant 7B

Swift API

CoreML backend

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 backend

import OmnilingualASR

// Varsayılan: 300M @ 4-bit
let model = try await OmnilingualASRMLXModel.fromPretrained()

// Daha büyük varyantlar
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 vs MLX

Her iki backend de 1-2 karakter farkıyla (niceleme ve runtime farkları) esasen aynı transkriptleri üretir. Dağıtım hedefinize göre seçim yapın:

CoreMLMLX
Hesaplama hedefiNeural EngineMetal GPU
Giriş uzunluğuSabit pencere (5 s veya 10 s)40 s'ye kadar herhangi bir uzunluk
Model boyutlarıYalnızca 300M300M / 1B / 3B / 7B
NicelemeINT8 palettization4-bit veya 8-bit QuantizedLinear
GPU TTS ile eşzamanlı çalışmaEvet (ANE bağımsızdır)GPU TTS ile çekişir
iOS desteğiiOS 18+Tüm Apple Silicon iOS

Ön İşleme Detayları

Omnilingual, fairseq2'nin apply_audio_normalization'ıyla eşleşen, ham dalga formunda söyleniş düzeyinde layer-norm gerektirir:

normalized = (audio - mean(audio)) / sqrt(variance(audio) + 1e-5)

Swift portu gerçek ses içeriğini CoreML sabit penceresine sıfır doldurmadan önce normalleştirir, böylece pencere altı girişler referans boru hattı istatistikleriyle tam olarak eşleşir. Bu en yaygın port tuzağıdır — HuggingFace'in wav2vec2 uygulaması özellik başına group-norm yapar, söyleniş düzeyinde layer-norm değil.

Referans boru hattı, giriş sesi üzerinde 40 saniyelik kesin bir sınır (MAX_ALLOWED_AUDIO_SEC) uygular. Swift portu aynı sınırı uygular — daha uzun girişler segmentli işleme için SpeechVAD veya ParakeetStreamingASR'yi gösteren net bir hata atar.

Dil Kapsamı

Omnilingual, topluluk veri toplama yoluyla eklenen 500'den fazla düşük kaynaklı dil dahil olmak üzere 32 yazı sistemi boyunca 1.672 dili destekler. Örnek kapsam:

Yazı sistemiDillerÖrnek kodlar
Latin1.398eng_Latn, fra_Latn, spa_Latn, pcm_Latn, swh_Latn, zul_Latn, …
Arap70arb_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, …
Kiril51rus_Cyrl, ukr_Cyrl, bel_Cyrl, bul_Cyrl, srp_Cyrl, mkd_Cyrl, kaz_Cyrl, …
Etiyopik10amh_Ethi, tir_Ethi, wal_Ethi, sgw_Ethi, …
Bengal8ben_Beng, asm_Beng, mni_Beng, …
Tay / Lao / Birman / Tibet9 / 1 / 3 / 6tha_Thai, lao_Laoo, mya_Mymr, bod_Tibt, dzo_Tibt, …
Han (basitleştirilmiş / geleneksel)6cmn_Hans, cmn_Hant, yue_Hans, yue_Hant, cdo_Hans, …
Japon / Kore1 / 1jpn_Jpan, kor_Hang
Ermeni, Gürcü, İbrani, Yunan, Gujarati, Gurmukhi, Kannada, Malayalam, Oriya, Sinhala, Tamil, Telugu, Tifinagh, Thaana, artı 4 fazla48Tam listeyi gör →

İngilizce adlarıyla tam ISO 639-3 + ISO 15924 kod listesi lang_ids.py kaynağında, ve yazı sistemine göre gruplandırılmış ülke ipuçlarıyla birlikte model kartında bulunur.

Doğrulanmış Çıktı

FLEURS benchmark'ında Swift portundan transkriptler, CoreML 300M:

DilReferansÇıktı
İngilizceFellow wrestlers also paid tribute to Luna.fellow wrestlers also paid tribute to luna
Arapçaكما أثنى الزملاء المصارعون على لوناكما أثنى الزملاء المصارعون على لونا
Hintçeलूना को साथी पहलवानों ने भी श्रद्धांजलि दीलूना को साथी पहलवानों ने भी सरधांजलीदी
FransızcaPensez à l'itinéraire de ski comme à un itinéraire de randonnée similaire.pense à létineraire desqui comme un étineraire de rent donner similaire

MLX 300M-4bit varyantı 1-2 karakter farkıyla esasen aynı çıktıyı üretir. Daha büyük varyantlar (1B, 3B, 7B) kalan hataları aşamalı olarak azaltır.

Referans