Wyoming Server for MLX whisper
Project description
Wyoming MLX Whisper
Wyoming protocol server for mlx-whisper speech-to-text on Apple Silicon.
Uses mlx-community/whisper-large-v3-turbo by default, which runs near real-time on M1 Pro and newer.
Available Models
| Model | Size | Speed | Quality |
|---|---|---|---|
mlx-community/whisper-tiny |
75 MB | ⚡⚡⚡ Fastest | Basic |
mlx-community/whisper-small-mlx |
481 MB | ⚡⚡ Fast | Good |
mlx-community/whisper-large-v3-turbo |
1.6 GB | ⚡⚡ Near real-time | Best (default) |
mlx-community/whisper-large-v3-turbo-q4 |
464 MB | ⚡⚡ Near real-time | Near-best |
Use --model <name> to select a different model.
[ToC] 📚
Requirements
- macOS with Apple Silicon (M1/M2/M3/M4)
- Python 3.10-3.13 (3.14 not yet supported by numba)
- uv (recommended) or pip
Installation
Using uvx (recommended, no install needed)
uvx --python 3.12 wyoming-mlx-whisper
Using pip
pip install wyoming-mlx-whisper
wyoming-mlx-whisper
Usage
Run directly
# With uvx (no install needed)
uvx --python 3.12 wyoming-mlx-whisper
# Or if installed with pip
wyoming-mlx-whisper
Run as macOS service (launchd)
Download and run the install script:
curl -fsSL https://raw.githubusercontent.com/basnijholt/wyoming-mlx-whisper/main/scripts/install_service.sh | bash
The server runs at tcp://localhost:10300 by default.
Uninstall the service:
curl -fsSL https://raw.githubusercontent.com/basnijholt/wyoming-mlx-whisper/main/scripts/uninstall_service.sh | bash
View logs:
tail -f ~/Library/Logs/wyoming-mlx-whisper/*.out ~/Library/Logs/wyoming-mlx-whisper/*.err
Options
See the output of wyoming-mlx-whisper --help
Usage: wyoming-mlx-whisper [OPTIONS]
Run the Wyoming MLX Whisper server.
╭─ Options ────────────────────────────────────────────────────────────────────╮
│ --uri TEXT unix:// or tcp:// │
│ [env var: WHISPER_URI] │
│ [default: tcp://0.0.0.0:10300] │
│ --model TEXT Name of MLX Whisper model to use │
│ [env var: WHISPER_MODEL] │
│ [default: │
│ mlx-community/whisper-large-v3-turbo] │
│ --language TEXT Language code (e.g., 'en') │
│ [env var: WHISPER_LANGUAGE] │
│ --debug --no-debug Log DEBUG messages │
│ [env var: WHISPER_DEBUG] │
│ [default: no-debug] │
│ --log-format TEXT Format for log messages │
│ [default: │
│ %(levelname)s:%(name)s:%(message)s] │
│ --version Print version and exit │
│ --help -h Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────╯
Home Assistant Integration
- Start the server (using any method above)
- In Home Assistant, go to Settings → Devices & Services → Add Integration
- Search for "Wyoming Protocol"
- Enter
localhost(or your Mac's IP) and port10300
The Whisper STT service will now be available for voice assistants.
Related Projects
- agent-cli - Local-first AI-powered CLI agents for voice transcription, autocorrect, voice editing, and more. Uses
wyoming-mlx-whisperas its default ASR backend on Apple Silicon.
Development
uv sync
uv run pre-commit install
Acknowledgements
- Forked from vincent861223/wyoming-mlx-whisper by Vincent Lin
- Based on wyoming-whisper-api-client by Dr. Serge Victor
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wyoming_mlx_whisper-1.2.0.tar.gz.
File metadata
- Download URL: wyoming_mlx_whisper-1.2.0.tar.gz
- Upload date:
- Size: 103.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
514f7bd2452f30981ac6017ceb0ba2b0e59adf7cf19abfb08510b9a9e5607fda
|
|
| MD5 |
7ca111a459754fddc44da4b69f8ea5c7
|
|
| BLAKE2b-256 |
ffa2ee999d4ea038757422050cc242746b9e9a8b745c7b331916172543b529e7
|
Provenance
The following attestation bundles were made for wyoming_mlx_whisper-1.2.0.tar.gz:
Publisher:
release.yml on basnijholt/wyoming-mlx-whisper
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wyoming_mlx_whisper-1.2.0.tar.gz -
Subject digest:
514f7bd2452f30981ac6017ceb0ba2b0e59adf7cf19abfb08510b9a9e5607fda - Sigstore transparency entry: 743465330
- Sigstore integration time:
-
Permalink:
basnijholt/wyoming-mlx-whisper@0e80142f09540da3eeb5c8d489fa73f65ab2abe3 -
Branch / Tag:
refs/tags/v1.2.0 - Owner: https://github.com/basnijholt
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@0e80142f09540da3eeb5c8d489fa73f65ab2abe3 -
Trigger Event:
release
-
Statement type:
File details
Details for the file wyoming_mlx_whisper-1.2.0-py3-none-any.whl.
File metadata
- Download URL: wyoming_mlx_whisper-1.2.0-py3-none-any.whl
- Upload date:
- Size: 9.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fe2724088e4557d04945ba7463d5661a337c7d04b13966cbf159dc479f332dbe
|
|
| MD5 |
ade716d3cf790fbfdf2f7f9ba76d7c50
|
|
| BLAKE2b-256 |
a73c77164742ec617dc42d8f500e62449386bdfcfab92e8db221e70a09ec48c4
|
Provenance
The following attestation bundles were made for wyoming_mlx_whisper-1.2.0-py3-none-any.whl:
Publisher:
release.yml on basnijholt/wyoming-mlx-whisper
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wyoming_mlx_whisper-1.2.0-py3-none-any.whl -
Subject digest:
fe2724088e4557d04945ba7463d5661a337c7d04b13966cbf159dc479f332dbe - Sigstore transparency entry: 743465342
- Sigstore integration time:
-
Permalink:
basnijholt/wyoming-mlx-whisper@0e80142f09540da3eeb5c8d489fa73f65ab2abe3 -
Branch / Tag:
refs/tags/v1.2.0 - Owner: https://github.com/basnijholt
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@0e80142f09540da3eeb5c8d489fa73f65ab2abe3 -
Trigger Event:
release
-
Statement type: