--- license: mit language: - af - en base_model: openai/whisper-large-v3-turbo library_name: mlx pipeline_tag: automatic-speech-recognition tags: - whisper - fluister - mlx - mlx-whisper - afrikaans - english - south-africa - apple-silicon - quantized - automatic-speech-recognition --- # Fluister (turbo): MLX 8-bit **Fluister** is a South African Whisper. ("Fluister" is Afrikaans for "to whisper".) This is the **Apple MLX build** of the turbo model: the Fluister v2 Afrikaans fine-tune (LoRA merged onto `openai/whisper-large-v3-turbo`) converted to MLX format and **8-bit quantised** (group size 64) for [`mlx-whisper`](https://github.com/ml-explore/mlx-examples/tree/main/whisper) on Apple Silicon. It holds the **same weights lineage** as the CTranslate2 / faster-whisper build at [`digiphyte/fluister-turbo`](https://huggingface.co/digiphyte/fluister-turbo) and the Transformers fp16 safetensors at [`digiphyte/fluister-turbo-transformers`](https://huggingface.co/digiphyte/fluister-turbo-transformers); this repo simply ships them in MLX format for fast on-device Mac inference. It is a fine-tune of OpenAI `whisper-large-v3-turbo` for **Afrikaans and South African English**, including the Afrikaans/English **code-switching** that is everyday SA speech. By DigiPhyte (Pty) Ltd, South Africa. This model powers the macOS build of [Volksmond](https://volksmond.com), our local-only meeting transcription app. ## Use (mlx-whisper) ```python import mlx_whisper result = mlx_whisper.transcribe( "audio.wav", path_or_hf_repo="digiphyte/fluister-turbo-mlx", language="af", # or "en" ) print(result["text"]) ``` Tell it the language (`"af"` or `"en"`) rather than relying on auto-detect. For mixed Afrikaans/English conversations, `"af"` handles the code-switch well. ## Evaluation Same-run comparison against the CTranslate2 int8 build (n=20 per language; `andreoosthuizen/afrikaans-30s` test split and `danielshaps/nchlt_speech_eng` test split): | Build | Afrikaans WER | English WER | |---|---|---| | CT2 int8 (`fluister-turbo`) | 0.092 | 0.038 | | **MLX q8 (this repo)** | **0.092** | **0.058** | Afrikaans is identical (delta +0.000). The English gap comes from decode strategy, not the quantisation: `mlx-whisper` has no beam search, so this comparison is greedy decode for MLX against beam search for CT2. ## Limitations Same as the CT2 build. Fluister narrows specific failures (Whisper spelling Afrikaans as Dutch; degrading SA English); it does not change the base model size. Language auto-detect can still mislabel audio (tell it the language), and proper nouns, numbers, and rare or technical terms can still be wrong. South African place names and surnames in particular are a known gap we are still improving. `mlx-whisper` decodes greedily (no beam search), which mainly shows up as slightly higher English WER than the CT2 build. ## Licence and attribution MIT (see `LICENSE`). This is a derivative work; the base model (OpenAI Whisper, Apache-2.0) and the training data (`andreoosthuizen/afrikaans-30s`, CC-BY-4.0; NCHLT `afr`/`eng`, CC-BY-3.0) are credited in `NOTICE`.