opensourceprojects.dev

A broadsheet for software that doesn't ask for your email

TTS, STT, and music generation on Apple Silicon with MLX
GitHub RepoImpressions2

Project Description

View on GitHub

Running Audio Models on Your Mac Just Got a Lot Simpler

If you've ever tried to run speech or music models on a Mac and hit the wall of CUDA-only tooling, you know the frustration. Most of the audio ML ecosystem assumes you've got an NVIDIA GPU. MLX-Audio takes a different path—it's built specifically for Apple Silicon, and it covers text-to-speech, speech-to-text, speech-to-speech, and music generation in one library.

What It Does

MLX-Audio is a Python library built on Apple's MLX framework. It provides fast, efficient audio processing tuned for M-series chips, bundling together multiple model architectures for TTS, STT, STS, and music generation under a single interface.

The library ships with both a command-line tool and a Python API. You load a model (typically from the mlx-community Hugging Face org), feed it text or audio, and get results back—either as files on disk or streamed in real time. There's also an interactive web interface with 3D audio visualization, plus an OpenAI-compatible REST API server if you want to wire it into other applications.

Why It's Cool

  • It's actually native to your Mac. The whole point here is optimization for Apple Silicon. No translation layers, no workarounds—just inference designed for the hardware you're already using.

  • One library, four audio tasks. TTS, STT, STS, and music generation are usually scattered across separate projects with separate dependencies. Having them in one place cuts down on the dependency sprawl you'd otherwise deal with.

  • The CLI is genuinely usable. Look at the quick-start examples—voice selection, language hints, immediate playback with --play, streaming with --stream, and segment joining with --join_audio. These are the small conveniences that tell you someone actually uses their own tool. The detail about numbered output files (audio_000.wav, audio_001.wav) versus joined output is the kind of thing you only document after hitting it yourself.

  • Quantization support is built in. You can run models at 3-bit, 4-bit, 6-bit, 8-bit, and beyond. On a laptop, that's the difference between a model that fits in memory and one that doesn't.

  • Voice customization and cloning. The README lists voice customization, cloning, and adjustable speech speed control as features. For anyone building narration tools or voice interfaces, that's a meaningful capability set.

  • There's a Swift package. If you're building for iOS or macOS natively, you don't have to bridge through Python. That's a practical touch for app developers.

How to Try It

The fastest route is pip:

pip install mlx-audio

If you only want the command-line tools, uv works too:

uv tool install --force mlx-audio --prerelease=allow

Once installed, generating speech is a single command:

mlx_audio.tts.generate --model mlx-community/Qwen3-TTS-12Hz-0.6B-CustomVoice-8bit --text 'Hello, world!' --voice Vivian

Add --play to hear it immediately, or --stream to stream audio as it's generated (combine with --save if you want it on disk). If you're generating multiple segments and want one file, --join_audio handles that.

For the Python API, you load a model and iterate over results:

from mlx_audio.tts.utils import load_model

model = load_model("mlx-community/Qwen3-TTS-12Hz-0.6B-CustomVoice-8bit")

for result in model.generate("Hello from MLX-Audio!", voice="..."):
    ...

If you want the web interface or plan to develop against the library, clone the repo and install with extras:

git clone https://github.com/Blaizzy/mlx-audio.git
cd mlx-audio
pip install -e ".[dev, server]"

Full details, including the supported model list and examples for each task, are in the repository.

Final Thoughts

MLX-Audio is best suited to developers already working on Apple Silicon who want local audio generation and transcription without fighting CUDA assumptions. It's MIT licensed, actively organized around a clear CLI and API, and covers enough ground that you probably won't need a second library for basic TTS or STT work. If you're on a Mac and audio is anywhere in your roadmap, this is worth a look—it's a solid foundation that's clearly still growing.

Back to Projects
Project ID: 3b0e3d2e-740c-4262-b3cb-9c532725473dLast updated: October 23, 2026 at 03:27 PM