MLX-Audio:提升您的语音处理体验
随着人工智能和机器学习的迅猛发展,语音识别、语音合成等技术已逐渐融入我们的日常生活。在这方面,MLX-Audio作为一款基于Apple MLX框架的音频处理库,凭借其高效的性能和强大的功能,正在为开发者和创作者们提供更加便捷的语音处理解决方案。
项目简介
MLX-Audio 是一款在 Apple Silicon 上优化的音频处理库,提供快速高效的文本到语音(TTS)、语音到文本(STT)和语音到语音(STS)功能。其多语言支持和多种自定义选项,使得用户能够根据需要生成个性化的语音内容。
功能特点
MLX-Audio的功能模块涵盖多项先进技术,让用户可以轻松实现复杂的音频处理任务:
- 快速推理:优化针对 Apple Silicon(M系列芯片)的性能,提高语音处理效率。
- 多模型架构:支持多种模型架构,适用于 TTS、STT 和 STS。
- 多语言支持:提供多语言模型,满足全球用户需求。
- 语音自定义与克隆:用户可以根据喜好自定义语音或克隆特定的声音。
- 可调节的语速控制:可根据需求调整语音播放速度。
- 互动网页界面:配备三维音频可视化的互动网页界面,提升用户体验。
- 兼容OpenAI的REST API:方便和灵活的集成方式,适合多种应用场景。
- 量化支持:支持多种精度(如3-bit、4-bit、6-bit、8-bit等)的量化处理,提升性能。
- Swift包集成:为iOS/macOS的集成提供Swift包,开发者可以快速上手。
安装方式
MLX-Audio的安装方式非常简单,用户可以快速通过以下命令进行安装。
使用pip安装
bash
pip install mlx-audio
只安装命令行工具
从PyPI获取最新版本:
bash
uv tool install --force mlx-audio --prerelease=allow
从GitHub获取最新代码:
bash
uv tool install --force git+https://github.com/Blaizzy/mlx-audio.git --prerelease=allow
开发或Web界面安装
bash
git clone https://github.com/Blaizzy/mlx-audio.git
cd mlx-audio
pip install -e ".[dev]"
快速开始
此部分将展示如何通过命令行和Python API使用MLX-Audio。
命令行界面
以下是基本的TTS生成功能演示:
bash
# 基本的TTS生成
mlx_audio.tts.generate --model mlx-community/Kokoro-82M-bf16 --text "Hello, world!" --lang_code a
# 带语音选择和速度调整的生成
mlx_audio.tts.generate --model mlx-community/Kokoro-82M-bf16 --text "Hello!" --voice af_heart --speed 1.2 --lang_code a
# 立即播放音频
mlx_audio.tts.generate --model mlx-community/Kokoro-82M-bf16 --text "Hello!" --play --lang_code a
# 保存到指定目录
mlx_audio.tts.generate --model mlx-community/Kokoro-82M-bf16 --text "Hello!" --output_path ./my_audio --lang_code a
Python API示例
用户可以通过Python API轻松生成语音。以下是一个简单的示例:
python
from mlx_audio.tts.utils import load_model
# 加载模型
model = load_model("mlx-community/Kokoro-82M-bf16")
# 生成语音
for result in model.generate("Hello from MLX-Audio!", voice="af_heart"):
print(f"Generated {result.audio.shape[0]} samples")
支持的模型
MLX-Audio支持多种TTS、STT和STS模型,每个模型都有其特定的特性和应用场景。
文本到语音(TTS)模型
| 模型 | 描述 | 支持语言 | 仓库链接 |
|---|---|---|---|
| Kokoro | 快速、高质量的多语言TTS | 英语、日语、中文、法语等 | 链接 |
| Qwen3-TTS | 阿里巴巴的多语言TTS | 中文、英语、日语等 | 链接 |
| CSM | 带语音克隆的会话模型 | 英语 | 链接 |
| Dia | 针对对话优化的TTS | 英语 | 链接 |
语音到文本(STT)模型
| 模型 | 描述 | 支持语言 | 仓库链接 |
|---|---|---|---|
| Whisper | OpenAI的强大STT模型 | 99+种语言 | 链接 |
| Parakeet | NVIDIA的精准STT | 英语 | 链接 |
语音到语音(STS)模型
| 模型 | 描述 | 使用场景 | 仓库链接 |
|---|---|---|---|
| SAM-Audio | 文本引导的源分离 | 提取特定声音 | 链接 |
| Liquid2.5-Audio | 语音互转模型 | 语音交互 | 链接 |
高级功能:Web界面与API服务器
MLX-Audio还提供了现代的Web界面和兼容OpenAI的API,方便用户在不同场景下的应用。
启动服务器
启动API服务器:
bash
mlx_audio.server --host 0.0.0.0 --port 8000
在另一个终端中启动Web UI:
bash
cd mlx_audio/ui
npm install && npm run dev
API示例
文本到语音:
bash
curl -X POST http://localhost:8000/v1/audio/speech \
-H "Content-Type: application/json" \
-d '{"model": "mlx-community/Kokoro-82M-bf16", "input": "Hello!", "voice": "af_heart"}' \
--output speech.wav
语音到文本:
bash
curl -X POST http://localhost:8000/v1/audio/transcriptions \
-F "file=@audio.wav" \
-F "model=mlx-community/whisper-large-v3-turbo-asr-fp16"
量化与性能优化
MLX-Audio支持通过量化来降低模型体积并提高性能,用户可以轻松执行量化操作。
bash
# 转换并量化到4-bit
python -m mlx_audio.convert \
--hf-path prince-canuma/Kokoro-82M \
--mlx-path ./Kokoro-82M-4bit \
--quantize \
--q-bits 4
Swift支持
如果您需要Swift/iOS的支持,可以查看mlx-audio-swift,实现macOS和iOS上的设备语音合成。
结论
MLX-Audio 是一款功能强大的音频处理库,适用于希望利用语音技术的开发者与创作者。无论是文本到语音的合成、语音识别,还是各种语音处理任务,MLX-Audio都提供了丰富的功能和灵活的使用方式。
同类项目对比
在语音处理领域,除了MLX-Audio,还有其他开源项目如Mozilla的DeepSpeech和Google的TTS。DeepSpeech专注于语音到文本,提供准确的实时识别;而Google的TTS则是以自然的合成语音著称,适合很多应用场景。但相较于这些项目,MLX-Audio在性能优化和功能多样性上具有独特优势,特别是针对Apple Silicon的优化,使其在能够充分利用硬件上表现更加卓越。
不妨试试MLX-Audio,来提升您的语音处理体验吧!