--- library_name: mlx base_model: Flurin17/whisper-large-v3-turbo-swiss-german language: - de - gsw license: cc-by-nc-4.0 tags: - mlx - whisper - speech-to-text - automatic-speech-recognition - swiss-german - schweizerdeutsch - apple-silicon --- # whisper-large-v3-turbo-swiss-german-MLX This is an **MLX-format conversion** of [Flurin17/whisper-large-v3-turbo-swiss-german](https://huggingface.co/Flurin17/whisper-large-v3-turbo-swiss-german) for fast, native inference on Apple Silicon using [mlx-whisper](https://github.com/ml-explore/mlx-examples/tree/main/whisper). All credit for the original fine-tuning work goes to **[Flurin17](https://huggingface.co/Flurin17)** — a massive thank you for training and sharing this model. 🙏 (See: [Eifach mal es "Dankeschöön"](https://huggingface.co/Flurin17/whisper-large-v3-turbo-swiss-german/discussions/6)) --- ## Model Details | Property | Value | |---|---| | Base model | `openai/whisper-large-v3-turbo` | | Fine-tuned model | `Flurin17/whisper-large-v3-turbo-swiss-german` | | Format | MLX (converted via [mlx-examples/whisper/convert.py](https://github.com/ml-explore/mlx-examples/blob/main/whisper/convert.py)) | | Dtype | float16 | | Task | Swiss German speech → Standard German text | | Best checkpoint | `checkpoint-750` | | Training data | ~301 hours curated private Swiss German audio | | Training infra | 4x A100 80GB GPUs | ### Why checkpoint-750? The fine-tune improved steadily up to step 750, then overfit. This checkpoint has the best validation WER: | Step | WER | Normalized WER | |---|---|---| | 250 | 41.05 | 40.21 | | 500 | 39.63 | 38.86 | | **750** | **37.96** | **37.25** | | 1000 | 42.92 | 42.20 | ### Improvement over base Whisper Turbo Evaluated on 16,384 samples from the same training corpus regime: | Model | WER | Normalized WER | |---|---|---| | `openai/whisper-large-v3-turbo` (base) | 45.71 | 44.52 | | `Flurin17/whisper-large-v3-turbo-swiss-german` | 39.18 | 38.48 | **Absolute improvement: -6.54 WER / -6.04 normalized WER** --- ## Usage with mlx-whisper ### Install ```bash pip install mlx-whisper ``` ### Transcribe ```python import mlx_whisper result = mlx_whisper.transcribe( "path/to/audio.wav", path_or_hf_repo="BabaStardust/whisper-large-v3-turbo-swiss-german-MLX", ) print(result["text"]) ``` ### CLI ```bash mlx_whisper path/to/audio.wav \ --model BabaStardust/whisper-large-v3-turbo-swiss-german-MLX ``` --- ## Intended Use This model transcribes **Swiss German speech** (Schweizerdeutsch) into **Standard German text**. It works best on: - Clean conversational or semi-formal speech - Parliamentary and read/prompted Swiss German - All major Swiss German dialect regions It is not intended for High German input — use the base `openai/whisper-large-v3-turbo` for that. --- ## Limitations - Training data is private; reported metrics are self-reported from internal evaluation - Performance varies by dialect, speaker, audio quality, and domain - The run overfit after checkpoint-750; this is the best available checkpoint --- ## Conversion Converted from PyTorch safetensors to MLX format using the official [mlx-examples/whisper/convert.py](https://github.com/ml-explore/mlx-examples/blob/main/whisper/convert.py) script: ```bash python convert.py \ --torch-name-or-path Flurin17/whisper-large-v3-turbo-swiss-german \ --mlx-path ./mlx_swiss_german \ --dtype float16 ``` --- ## License [Creative Commons Attribution-NonCommercial 4.0 (cc-by-nc-4.0)](https://creativecommons.org/licenses/by-nc/4.0/) — inherited from the original model.