Sophea-Canary-ASR — MLX (bf16)

Greek 🇬🇷 / English 🇬🇧 speech recognition & translation on Apple Silicon.

MLX conversion of KIEFERSA/Sophea-Canary-ASR — a bilingual fine-tune of NVIDIA's canary-1b-v2 (978M params: FastConformer encoder + Transformer attention decoder). This repo runs natively on Apple Silicon via mlx-audio, no PyTorch or NeMo required.

Capabilities

Task source_lang → target_lang
Greek ASR el → el
English ASR en → en
Greek → English translation el → en
  • Weights: bfloat16, ~1.9 GB
  • Sample rate: 16 kHz mono (auto-resampled from any input)
  • Speed: faster than real-time on M-series (RTF ≈ 0.11, bf16)

Quickstart

pip install mlx-audio soundfile
import re
import mlx_audio.stt as stt

model = stt.load("KIEFERSA/Sophea-Canary-ASR-mlx")

# Greek orthography helper (see note below)
def denormalize_greek(text: str) -> str:
    return re.sub(r"σ\b", "ς", text)   # word-final σ -> ς

# Greek ASR
out = model.generate("audio.wav", source_lang="el", target_lang="el")
print(denormalize_greek(out.text))

# Greek → English translation
print(model.generate("audio.wav", source_lang="el", target_lang="en").text)

# English ASR
print(model.generate("audio.wav", source_lang="en", target_lang="en").text)

Greek final sigma

Canary's tokenizer represents final sigma as the medial form σ, so Greek output comes out as e.g. εποχήσ. Restore standard orthography with the one-line denormalize_greek helper above — a deterministic, lossless rule, since in Greek σ never appears word-finally: εποχήσ → εποχής. Apply it to Greek (target_lang="el") output only; English and translation output need nothing.

Performance

Full FLEURS test set (Greek n=650, English n=647; greedy, bf16):

Language WER CER
Greek (el_gr) 9.4% 3.95%
English (en_us) 7.3% 3.60%

Greek WER measured after the word-final σ→ς step above.

NeMo vs MLX

Full FLEURS test WER, NeMo (.nemo) checkpoint vs this MLX (bf16) build:

FLEURS test NeMo MLX (bf16)
Greek (el_gr) 12.69 9.4
English (en_us) 12.9 7.3

MLX figures measured over the full FLEURS test split (lowercase, punctuation-stripped).

Model details

Architecture FastConformer encoder (32 layers) + Transformer AED decoder (8 layers)
Parameters ~978M
Tokenizer Unified SentencePiece, 16,384 tokens
Base model nvidia/canary-1b-v2
Fine-tune KIEFERSA/Sophea-Canary-ASR
Runtime mlx-audio (Apple MLX)
Precision bfloat16

Also available

An int8-quantized variant (~1.1 GB, smaller & faster with a small accuracy trade-off) can be produced with mlx-audio's quantization, or loaded the same way.

License & credits

Released under CC-BY-4.0, inheriting the license of nvidia/canary-1b-v2. Fine-tune by KIEFERSA; MLX packaging for Apple Silicon via mlx-audio (Blaizzy).

@model{sophea_canary_asr_mlx,
  title  = {Sophea-Canary-ASR — MLX},
  author = {KIEFERSA},
  note   = {MLX conversion of a Greek/English canary-1b-v2 fine-tune},
  year   = {2026}
}
Downloads last month
22
Safetensors
Model size
1.0B params
Tensor type
BF16
·
MLX
Hardware compatibility
Log In to add your hardware

Quantized

Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for KIEFERSA/Sophea-Canary-ASR-mlx

Finetuned
(1)
this model

Dataset used to train KIEFERSA/Sophea-Canary-ASR-mlx

Evaluation results