Persian (Farsi) speech recognition, MLX 8-bit

A Farsi speech recognition model (CTC, 300M parameters) in MLX 8-bit format for Apple Silicon Macs. It is a format conversion of Peacockery/omni-ctc-300m-farsi. No retraining. The PrivateWispr Mac app downloads it from this repository on request. It loads with the speech-swift OmnilingualASR MLX runtime.

Source and licence

  • Source model: Peacockery/omni-ctc-300m-farsi, revision 2c70389c4009ecb0776c9644db19308f1c1e8ae5, Apache-2.0. A Farsi fine-tune by Peacockery on 985 hours of Farsi speech.
  • Base model of that fine-tune: facebook/omniASR-CTC-300M, revision 8e35f0cc28fa6099e0c14d56db85ce0423baa691, Apache-2.0, Copyright 2025 (c) Meta Platforms, Inc. and affiliates.
  • Licence of this repository: Apache License 2.0 (text). LICENSE holds the full text and NOTICE the credits.
  • Change made: weight format and numeric precision only (see Conversion).
  • Part of the fine-tuning data is web-scraped audio (including about 205 hours of Farsi YouTube) with machine-generated labels. See the source model card for the full list of sources and their terms.

Files

  • model.safetensors: 713 tensors. Attention and feed-forward projections and the CTC head are quantised to 8 bits with group size 64 (.weight uint32, .scales and .biases float16). Everything else is float16. 359,054,689 bytes.
  • config.json: architecture description (24 layers, model dimension 1024, 16 heads, vocabulary 10,288).
  • tokenizer.model: the SentencePiece tokenizer the checkpoint expects, the source model's omniASR_tokenizer_written_v2.model, byte for byte (sha256 8aa11a10...0b1e).

Conversion

MLX 0.32.3, torch 2.5.1, Python 3.11. The fairseq2 state dict keeps its tensor names. The weight-norm pair of the positional convolution is stored as is, and the runtime fuses it. Tensor names, dtypes and shapes match the public aufklarer/Omnilingual-ASR-CTC-300M-MLX-8bit layout, checked tensor by tensor.

Measured quality

FLEURS fa_ir test split: 871 clips, 21,494 reference words. One normaliser scores both rows (NFKC, ZWNJ to space, Arabic letters to Persian letters, digits to ASCII, diacritics and punctuation removed). This is our own run and nobody has verified it independently.

Model WER CER
fp32 PyTorch (reference) 11.49% 3.25%
MLX 8-bit (this repository) 11.48% 3.26%

The source model card reports a lower figure for FLEURS with its own text normalisation and scoring. The two numbers are not comparable. FLEURS training data was part of the fine-tune's training set, so 11.48% is an in-domain result.

Limits

The test data is read speech in the FLEURS domain. Accuracy on casual, noisy or accented speech is lower, and we have not measured by how much. The model covers Farsi only; it does not support Urdu or Arabic. One call takes at most 40 seconds of 16 kHz mono audio.

Downloads last month
26
Safetensors
Model size
0.3B params
Tensor type
F16
·
U32
·
MLX
Hardware compatibility
Log In to add your hardware

8-bit

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

Model tree for codeclawd/persian-ctc-300m-mlx-8bit

Quantized
(2)
this model