mlx-audio
时间就是能力等等发展的地盘。——马克思
MLX-Audio:把 Apple Silicon 的“音频算力”榨干的全能库
如果你正在用 Apple Silicon(M1/M2/M3/M4)做音频方向的 AI,那么 MLX-Audio 会让你大呼过瘾。它是基于 Apple 的 MLX 框架构建的“全能音频库”,把文本转语音(TTS)、语音转文本(STT)和语音转语音(STS)装进一个统一的工具箱,强调在苹果芯片上的快与稳,并且做了极扎实的工程细节:模型适配、量化、Web UI、OpenAI 兼容 API、Swift 包、乃至大规模合成的示例工程。
- 仓库:Blaizzy/mlx-audio
- 描述:TTS / STT / STS 一站式音频处理库,针对 Apple Silicon 优化
- 许可证:MIT
- 技术栈:Python + MLX(Apple),Next.js Web UI,OpenAI 兼容 REST API,Swift 侧包可选
- 特性简述:
- 在 Apple Silicon 上加速推理
- 多模型架构,覆盖 TTS、STT、STS
- 多语言支持、语音自定义���克隆
- 语速可调、3D 可视化 Web 界面
- OpenAI 兼容 API(方便接入已有应用)
- 3/4/6/8bit 等量化支持
- iOS/macOS 的 Swift 包,走端侧
安装与启动:Python 一体,也支持 uv 工具链
最简单的安装:
1 | pip install mlx-audio |
如果你只想要命令行工具,可以用 uv 安装:
1 | # PyPI 最新版本 |
开发或需要 Web 界面:
1 | git clone https://github.com/Blaizzy/mlx-audio.git |
快速体验:命令行与 Python API
命令行(TTS)
1 | # 基础合成 |
Python API(TTS)
1 | from mlx_audio.tts.utils import load_model |
模型一览:从多语言 TTS 到带说话人分离的 STT
MLX-Audio 支持的模型非常丰富,且针对 Apple Silicon 做了适配与转换:
TTS(文本转语音)
- Kokoro:快速高质量多语种 TTS(EN/JA/ZH/FR/ES/IT/PT/HI)
- Qwen3-TTS:多语种、支持“情感控制 / Voice Design / 语音克隆”
- CSM:会话式 TTS,支持语音克隆
- Dia:对话风格 TTS
- OuteTTS:高效型 TTS
- SparkTTS:EN/ZH
- Chatterbox:多语种表达力强
- Soprano:高质量 EN
Kokoro 示例:
1 | from mlx_audio.tts.utils import load_model |
可用声线(示例):
- 美式英语:
af_heart,af_bella,af_nova,af_sky,am_adam,am_echo… - 英式英语:
bf_alice,bf_emma,bm_daniel,bm_george… - 日语:
jf_alpha,jm_kumo… - 中文:
zf_xiaobei,zm_yunxi…
语言代码:
a= 美式英语(默认)b= 英式英语j= 日语(需要pip install misaki[ja])z= 中文(需要pip install misaki[zh])e= 西语f= 法语
Qwen3-TTS 示例:
1 | from mlx_audio.tts.utils import load_model |
CSM 语音克隆(CLI):
1 | mlx_audio.tts.generate \ |
STT(语音转文本)
- Whisper(OpenAI):99+ 语言
- Parakeet(NVIDIA):英语准确
- Voxtral(Mistral)
- VibeVoice-ASR(Microsoft 9B):说话人分离 + 时间戳,长音频(最多 60 分钟)→ 结构化 JSON
Whisper 调用:
1 | from mlx_audio.stt.generate import generate_transcription |
VibeVoice-ASR(带分离与时间戳):
1 | from mlx_audio.stt.utils import load |
流式转写:
1 | for text in model.stream_transcribe(audio="speech.wav", max_tokens=4096): |
带上下文热词:
1 | result = model.generate( |
STT CLI:
1 | python -m mlx_audio.stt.generate \ |
STS(语音转语音 / 音频处理)
- SAM-Audio:文本引导的声源分离
- Liquid2.5-Audio:语音互转、跨模态
- MossFormer2 SE:语音增强与降噪
SAM-Audio 分离示例:
1 | from mlx_audio.sts import SAMAudio, SAMAudioProcessor, save_audio |
MossFormer2 增强示例:
1 | from mlx_audio.sts import MossFormer2SEModel, save_audio |
Web 界面与 OpenAI 兼容 API:一边调试一边服务
开启服务:
1 | # API Server |
API 示例(OpenAI 兼容):
- TTS:
1 | curl -X POST http://localhost:8000/v1/audio/speech \ |
- STT:
1 | curl -X POST http://localhost:8000/v1/audio/transcriptions \ |
量化与模型转换:更小更快,适配 MLX
把 Hugging Face 模型转换为 MLX 并量化:
1 | # 4-bit 量化 |
常见参数:
--hf-path源模型(HF 或本地)--mlx-path输出路径--quantize、--q-bits(4/6/8)、--q-group-size--dtype(fp16/bf16/fp32)--upload-repo(上传到 HF Hub)
Swift 包:端侧 TTS
如果你要在 iOS/macOS 端做 TTS,官方提供了独立仓库:
示例工程:把“圣经”做成有声书
仓库里有一个 bible-audiobook 的例子,作者用 JS/TS 和 bun,把全本《American King James Bible》逐节合成为音频:
- 总计 31,102 节 → 合成耗时约 28 小时 05 分钟
- 输出音频总时长约 86 小时 32 分钟 36 秒
- 设备:Mac mini M4 Pro(12 核、24GB RAM)
说明了 MLX-Audio 在 Apple Silicon 上进行大规模批处理的稳定性与效率;脚本里还集成了 pm2 来增强容错与自动恢复。步骤包括 WAV→MP3 转换、完整性统计等。
环境要求与 ffmpeg
- Python 3.10+
- Apple Silicon Mac(M1/M2/M3/M4)
- MLX 框架
- ffmpeg(保存 MP3/FLAC 所需;WAV 无需)
1 | # macOS |
为什么选 MLX-Audio
- 针对 Apple Silicon 做到“跑起来就很快”,尤其适合端侧与小型工作站
- 一站式覆盖 TTS、STT、STS,且模型生态丰富
- Web UI 与 OpenAI 兼容 API 让集成变得轻松
- 量化与转换打通了 Hugging Face → MLX 的模型迁移链路
- Swift 包加成,真正端到端
如果你要在 Mac 上做语音合成、识别、分离、增强的工程化项目,MLX-Audio 给你一个“从脚本到服务,从本地到端侧”的完整路径。
- 仓库:https://github.com/Blaizzy/mlx-audio
- 许可证:MIT
- 在 Apple Silicon 上享受“音频 AI 的丝滑算力”,今天就装起来试试吧。
