Konekäännös · Englanninkielinen alkuperäinen

Kokokielinen ASR

Meta Omnilingual ASR on kieli-agnostinen puheentunnistus perhe kattaa 1,672 kielet yli 32 erilliset skriptit ... Laajin kieli kattavuus on-laite ASR malli Apple Silicon. Soniqo portit CTC-variantti molempiin CoreML (Neural Engine) ja MLX (Metal GPU), jossa on neljä mallikokoa 300M- 7B parametrit.

Kieli-agnostinen CTC

Toisin kuin Qwen3-ASR tai Parakeet TDT, Omnilingual CTC ei ota kielivihjettä päättelyaikaan . Se käyttää yhteistä 10,288-entry SentencePiece -sanastoa, joka kattaa kaikki tuetut kielet. Syötä kaikki puheet millä tahansa tuetulla kielellä ja malli tuottaa oikean skriptin automaattisesti.

Äänikanavat, näytteenottonopeus ja syöttömuoto

Käytetään mono-Float32 PCM:tä 16 kHz:ssä. CLI hyväksyy yhteiset AVFounducation-luettavat tiedostot, kuten WAV, MP3, M4A, ja CAF, sitten uudelleen näytetään ne 16 KHES automaattisesti. Stereo- tai monikanavatiedostoja varten AudioFileLoader.load keskiarvot kaikki kanavat oletusarvoisesti, joten puhe millä tahansa kanavalla säilytetään; channelSelection: .first tai .select([indices]) suorassa reitityksessä. Pitkän tallennuksen osalta AudioFileLoader.stream tarjoaa veto-ohjattuja, rajoitettu-muisti paloja. [Float] puskuri suoraan, anna sen todellinen näytteenottonopeus.... CoreML ja MLX-toteutukset otetaan uudelleen sisäisesti.

Arkkitehtuuri

Omnilingual CTC on valvottu hienosäätö Metan wav2vec 2.0 selkäranka, jossa on lineaarinen CTC pää jaetussa monikielisessä sanastossa. Putkijohto on rinnakkainen ja ei-autoreaggressiivinen .

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:n sisääntulolla 320× alas otettu enkooderi tuottaa 50 Hz:n kuvanopeuden. 10 sekunnin leike tuottaa 499 lokikirjaketta. Ahne CTC-koodaus romahtaa peräkkäisiä kaksoiskappaleita ja ohittaa erikoiskuponkia SentencePiece-potentisoijan kautta.

Mallivaihtoehdot

Kymmenen versiota on julkaistu alla aufklareri nimiavaruus HuggingFace ... kahdella CoreML-ikkunakoolla sekä kahdeksalla MLX:n kvantitointiyhdistelmällä:

Variantti TasotDim Pää Koko Suoritusaika
CTC-300M-CoreML-INT8 (5 s-ikkuna) 24102416312 MtNeural Engine
CTC-300M-CoreML-INT8 (10 s-ikkuna) 24102416312 MtNeural Engine
CTC-300M-MLX-4bit24102416193 MtMetal GPU
CTC-300M-MLX-8bit24102416342 MtMetal GPU
CTC-1B-MLX-4bit48128020549 MtMetal GPU
CTC-1B-MLX-8bit481280201006 MtMetal 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-käyttö

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 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

// 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 vs MLX

Molemmat taustaosat tuottavat pääosin identtisiä transkriptejä modulo 1-2 merkkiä (määräys ja ajoajan erot). Valitse käyttökohteesi perusteella:

CoreMLMLX
Laske kohdeNeural EngineMetal GPU
Syötön pituus Kiinteä ikkuna (5 s tai 10 s) Pituus enintään 40 s
Mallikoot Ainoastaan 300 M300M / 1B / 3B / 7B
MääräINT8 paletisaatio4-bittinen tai 8-bittinen QuantizedLinear
Toimii samanaikaisesti GPU TTS Kyllä (ANE on itsenäinen) Sisältää GPU TTS
iOS tukiiOS 18+ Mikä tahansa Apple Silicon iOS

Esikäsittelytiedot

Kaikki kielivaatimukset edellyttävät lausetasonormia raaka-aaltomuodossa, joka vastaa fairseq2's apply_audio_normalization:

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

Swift -portti normalisoi todellisen äänisisällön ennen nollatahdistuksen CoreML kiinteään ikkunaan, joten alaikkunan syötteet vastaavat täsmälleen vertailuputkitilastoja. Tämä on yleisin sataman sudenkuoppa HuggingFace's wav2vec2 -toteutus ei ole lausekerros-norm.

Viiteputkistolla on 40-sekunnin kova korkki (MAX_ALLOWED_AUDIO_SEC) syöteääni. Swift-portti valvoo samaa rajaa ... PuheVAD tai ParakeetStreamingASR jaetun käsittelyn osalta.

Kielikate

Omnilingual supports 1,672 languages across 32 skriptiä, mukaan lukien 500+ vähäresurssikielet lisätty yhteisön tiedonkeruun kautta.

Skripti Kieli Näytteen koodit
latina1,398eng_Latn, fra_Latn, spa_Latn, pcm_Latn, swh_Latn, zul_Latn, …
arabia70arb_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, …
kyrillinen51rus_Cyrl, ukr_Cyrl, bel_Cyrl, bul_Cyrl, srp_Cyrl, mkd_Cyrl, kaz_Cyrl, …
Etionikaalinen10amh_Ethi, tir_Ethi, wal_Ethi, sgw_Ethi, …
Bengali8ben_Beng, asm_Beng, mni_Beng, …
Thai / Lao / Myanmar / Tiibeti9 / 1 / 3 / 6tha_Thai, lao_Laoo, mya_Mymr, bod_Tibt, dzo_Tibt, …
Han (yksinkertaistettu / perinteinen)6cmn_Hans, cmn_Hant, yue_Hans, yue_Hant, cdo_Hans, …
Japani / korea1 / 1jpn_Jpan, kor_Hang
Armenia, Georgia, heprea, kreikka, Gujarati, Gurmukhi, Kannada, Malayalam, Oriya, Sinhala, Tamil, Telugu, Tifinagh, Thana, plus 4 lisää48 Katso täydellinen luettelo →

Täysi ISO 639-3 + ISO 15924 -koodiluettelo, jossa on englanninkieliset nimet lang_ids.py -lähde, ja ryhmiteltynä skriptikohtaisesti, johon sisältyy maaviitteitä mallikortissa .

Varmennettu tulos

Swift -portista FLEURS -vertailuarvon CoreML 300M:

KieliVertailu Tuotos
FinnishKaveripainijat myös kunnioittivat Lunaa.fellow wrestlers also paid tribute to luna
arabiaكما أثنى الزملاء المصارعون على لوناكما أثنى الزملاء المصارعون على لونا
Hindiलूना को साथी पहलवानों ने भी श्रद्धांजलि दीलूना को साथी पहलवानों ने भी सरधांजलीदी
ranskaPensez à l'itinéraire de ski comme à un itinéraile de randonnée similaire.pense à létineraire desqui comme un étineraire de rent donner similaire

MLX 300M-4bittinen variantti tuottaa pääosin identtisen modulo 1-2 merkkiä. Suuremmat vaihtoehdot (1B, 3B, 7B) vähentävät jäännösvirheitä asteittain.

Vertailu