Blaizzy / mlx-audio
git clone https://github.com/Blaizzy/mlx-audio.git
v0.6.1 · 2d ago
A text-to-speech (TTS), speech-to-text (STT) and speech-to-speech (STS) library built on Apple's MLX framework, providing efficient speech analysis on Apple Silicon.
+6
stars, 24h · #2,388
+~42
stars, 7 days · #2,953
+~180
stars, 30 days · #2,920
8.1k
★ total · +1% this week
765
forks · 95 open issues
Star history (as recorded here)
LanguagePython
LicenseMIT
Created2024-11-27 (1y ago)
Last push1d ago
Watchers53
OwnerUser
GitHub topics
apple-siliconaudio-processingmlxmultimodalspeech-recognitionspeech-synthesisspeech-to-texttext-to-speechtransformers
Links
- GitHub: github.com/Blaizzy/mlx-audio
- Homepage: https://blaizzy.github.io/mlx-audio/
- Releases · Issues · Hacker News mentions
README excerpt
# MLX-Audio The best audio processing library built on Apple's MLX framework, providing fast and efficient text-to-speech (TTS), speech-to-text (STT), speech-to-speech (STS), music generation, and more on Apple Silicon. ## Table of Contents - Features - Installation - Quick Start - Supported Models - Model Examples - Web Interface \& API Server - Quantization - Swift - Requirements - License - Citation - Acknowledgements ## Features - Fast inference optimized for Apple Silicon (M series chips) - Multiple model architectures for TTS, STT, STS, and music generation - Multilingual support across models - Voice customization and cloning capabilities - Adjustable speech speed control - Interactive web interface with 3D audio visualization - OpenAI-compatible REST API - Quantization support (3-bit, 4-bit, 6-bit, 8-bit, and more) for optimized performance - Swift package for iOS/macOS integration ## Installation ### Using pip [code] ### Using uv to install only the command line tools Latest release from pypi: [code] Latest code from github: [code] ### For development or web interface: [code] ## Quick Start ### Command Line [code] By default, when generation yields multiple segments, mlx-audio saves numbered files such as `audio_000.wav` and `audio_001.wav`. Use `--join_audio` to save one combined file instead. When using `--stream`, add `--save` to write the streamed audio to disk. ### Python API [code] ## Supported Models ### Text-to-Speech (TTS) | Model | Description | Languages | Repo | |-------|-------------|-----------|------| | **Kokoro** | Fast, high-quality multilingual TTS | EN, JA, ZH, FR, ES, IT, PT, HI | bf16, 8bit, 6bit, 4bit | | **KittenTTS** | Compact KittenTTS 0.8 models for edge-friendly TTS | EN | nano, micro, mini, collection | | **Qwen3-TTS** | Alibaba's multilingual TTS with voice design | ZH, EN, JA, KO, + more | mlx-community/Qwen3-TTS-12Hz-1.7B-VoiceDesign-bf16 | | **Higgs Audio v3** | 4B conversational TTS with voice cloning and inline control tokens | 100 languages | bosonai/higgs-audio-v3-tts-4b | | **Fish Audio Drama 3** | 35B MoE multi-speaker TTS with voice cloning, inline cues and streaming (convert) | 83 languages | mlx-community/fish-audio-drama-3-4bit | | **OmniVoice** | Zero-shot multilingual TTS with voice cloning, batch generation, and nonverbal tags | 646+ languages | mlx-community/OmniVoice-bf16 | | **CSM / MisoTTS** | Sesame-style conversational speech models with voice cloning | EN | mlx-community/csm-1b, MisoTTS bf16, MisoTTS 8bit | | **Dia** | Dialogue-focused TTS | EN | mlx-community/Dia-1.6B-fp16 | | **OuteTTS** | Efficient TTS model | EN | mlx-community/OuteTTS-1.0-0.6B-fp16 | | **Spark** | SparkTTS model | EN, ZH | mlx-community/Spark-TTS-0.5B-bf16 | | **Chatterbox** | Expressive multilingual TTS (v2/v3) | 23 languages | v3, v2 | | **Soprano** | High-quality TTS | EN | mlx-community/Soprano-1.1-80M-bf16 | | **Phonon** | Gradium 24 kHz TTS with streaming generation | EN | 31M, 40M | | **Ming Omni