--- language: - el - en license: cc-by-4.0 library_name: mlx-audio base_model: KIEFERSA/Sophea-Canary-ASR pipeline_tag: automatic-speech-recognition tags: - automatic-speech-recognition - speech-translation - speech - audio - mlx - mlx-audio - apple-silicon - canary - FastConformer - NeMo - greek - english - bilingual - multitask datasets: - google/fleurs metrics: - wer - cer model-index: - name: Sophea-Canary-ASR-mlx results: - task: type: automatic-speech-recognition name: Automatic Speech Recognition dataset: type: google/fleurs name: FLEURS (Greek) config: el_gr split: test metrics: - type: wer value: 9.36 name: WER - type: cer value: 3.95 name: CER - task: type: automatic-speech-recognition name: Automatic Speech Recognition dataset: type: google/fleurs name: FLEURS (English) config: en_us split: test metrics: - type: wer value: 7.33 name: WER - type: cer value: 3.60 name: CER --- # Sophea-Canary-ASR — MLX (bf16) **Greek 🇬🇷 / English 🇬🇧 speech recognition & translation on Apple Silicon.** MLX conversion of [`KIEFERSA/Sophea-Canary-ASR`](https://huggingface.co/KIEFERSA/Sophea-Canary-ASR) — a bilingual fine-tune of NVIDIA's [`canary-1b-v2`](https://huggingface.co/nvidia/canary-1b-v2) (978M params: FastConformer encoder + Transformer attention decoder). This repo runs natively on Apple Silicon via [`mlx-audio`](https://github.com/Blaizzy/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 ```bash pip install mlx-audio soundfile ``` ```python 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`](https://huggingface.co/nvidia/canary-1b-v2) | | Fine-tune | [`KIEFERSA/Sophea-Canary-ASR`](https://huggingface.co/KIEFERSA/Sophea-Canary-ASR) | | Runtime | [`mlx-audio`](https://github.com/Blaizzy/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} } ```