Instructions to use KIEFERSA/Sophea-Canary-ASR-mlx with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use KIEFERSA/Sophea-Canary-ASR-mlx with MLX:
# Download the model from the Hub pip install huggingface_hub[hf_xet] huggingface-cli download --local-dir Sophea-Canary-ASR-mlx KIEFERSA/Sophea-Canary-ASR-mlx
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
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
Quantized
Model tree for KIEFERSA/Sophea-Canary-ASR-mlx
Dataset used to train KIEFERSA/Sophea-Canary-ASR-mlx
Evaluation results
- WER on FLEURS (Greek)test set self-reported9.360
- CER on FLEURS (Greek)test set self-reported3.950
- WER on FLEURS (English)test set self-reported7.330
- CER on FLEURS (English)test set self-reported3.600