LuxTTS 是什么

LuxTTS 是一个基于 ZipVoice 架构的轻量语音合成模型,主打高速声音克隆,在单张 GPU 上能达到 150 倍实时速度。
先说背景。做配音内容的人都知道,ElevenLabs 这类商业服务按字符收费,跑量大了一个月几十美元很正常。而自己部署开源 TTS 模型,以前的问题是要么速度慢,要么对显卡要求高,普通人一台 10 系、20 系显卡根本跑不顺畅。
LuxTTS 这个项目的出现,思路不一样。它不靠堆参数量来提升效果,而是走轻量化路线------整体设计用于高质量声音克隆和写实语音生成,同时把速度控制在超过实时 150 倍的水平,并且能塞进 1GB 显存以内,也就是说任何有独立显卡的机器都能跑起来。
软件核心特点
1. 声音克隆能力
LuxTTS 的声音克隆达到了同类顶尖水平,能和体积大它 10 倍的模型相媲美。
怎么理解这句话?F5-TTS 的参数量是 336M,MaskGCT 是 1048M,而 LuxTTS 底层 ZipVoice 架构只有 123M 参数左右。ZipVoice 在 100 万小时多语种数据集上训练,语音质量能与 MaskGCT(1048M 参数)和 F5-TTS(336M 参数)媲美,尤其是在可理解度(低 WER)和自然度方面表现突出。
LuxTTS 在这个基础上做了进一步优化,把采样步数压缩到 4 步,并引入了质量更好的采样方式。
2. 48kHz 音频输出
这点值得单独说。LuxTTS 使用 48kHz 声码器,而大多数 TTS 模型上限是 24kHz。
24kHz 对于一般的语音合成够用,但如果你在做播客、短视频旁白、或者需要后期混音的内容,48kHz 在细节保留上有实际区别,高频段不会那么"闷"。
3. 速度
在 GPU 上速度可达实时 150 倍,在 CPU 上也能超过实时速度运行。
实际测试下来,一段 10 秒的语音,GPU 模式下生成时间不到 0.1 秒。CPU 模式虽然慢一些,但对于非实时场景(比如批量生成配音稿)完全够用,不需要专门买显卡。
4. 显存占用
模型占用 1GB 以内显存,可以跑在任何有本地 GPU 的机器上。
这个门槛真的很低。GTX 1060 6GB、RTX 3060、甚至集成显卡较强的设备都能运行。比较一下 F5-TTS,显存占用通常要 4GB 起,对 VRAM 紧张的用户来说 LuxTTS 更友好。
5. 开源授权
模型和代码均以 Apache-2.0 许可证发布。
Apache-2.0 意味着商用没有障碍,可以集成进自己的产品,也可以修改代码后分发,只需保留原始版权声明。这比一些"仅限非商业使用"的开源模型宽松得多。
用 LuxTTS 能做什么、能赚什么钱
这里说点实际的,因为很多人装这类工具不只是为了玩。
短视频配音:自媒体账号频繁更新内容,每期都雇人配音成本高。用 LuxTTS 克隆一个固定声音,批量生成旁白音频,一次性省掉这笔费用。按市面上配音报价 30-100 元/分钟计算,一个月更新 20 条视频,省下来的钱覆盖服务器费用绰绰有余。
有声书和播客制作:LuxTTS 支持为视频、播客和故事内容制作旁白,不用等录音棚排期。有一定质量要求的内容创作者可以用它跑出素材,再做简单后期处理。
企业客服语音:对于需要跨大量通话保持品牌声音一致性的场景,LuxTTS 能在高并发下保持稳定输出。相比每月付费的 SaaS 方案,自部署后边际成本几乎为零。
接外包单子:Fiverr 等平台上,AI 语音克隆服务的单价在 5-50 美元不等,具体取决于定制程度。掌握本地部署技术后,成本主要是电费,利润空间相当可观。
硬件要求
GPU 模式(推荐)
模型支持 NVIDIA CUDA GPU,1GB 显存以内即可运行。
- 最低:任何支持 CUDA 的 NVIDIA 显卡,显存 ≥ 2GB(留出余量)
- 推荐:RTX 3060 / RTX 4060 或以上,速度更快,生成质量更稳定
- 目前 float32 模式:代码默认 float32 精度。如果切换到 float16,速度可以再提升将近一倍。
CPU 模式
CPU 上也能超过实时速度运行。
- 现代多核处理器(Intel i5/i7 第 8 代以上,或 AMD Ryzen 5/7)
- 推荐 8GB 以上内存
- 通过
threads参数可以指定使用的线程数
Mac 支持
代码已加入 MPS 支持,Apple Silicon 芯片(M1/M2/M3/M4)可使用 device='mps' 运行,速度介于 CPU 和 NVIDIA GPU 之间,适合 Mac 用户本地跑。
系统环境
- Python 3.8 以上
- PyTorch(安装 requirements.txt 会自动处理依赖)
- Git(用于克隆代码仓库)
- 网络连接(首次运行需从 Hugging Face 下载模型权重)
与其他主流 TTS 系统对比
| 项目 | 参数量 | 音频质量 | 声音克隆 | 显存占用 | 速度(GPU) | 授权 |
|---|---|---|---|---|---|---|
| LuxTTS | ~123M | 48kHz | ✅ 零样本 | <1GB | ~150x 实时 | Apache-2.0 |
| F5-TTS | 336M | 24kHz | ✅ 零样本 | ~4GB | ~33x 实时 | MIT |
| Kokoro-82M | 82M | 24kHz | ❌ 不支持 | <1GB | <0.3s/句 | Apache-2.0 |
| XTTS-v2 | 467M | 24kHz | ✅ 6秒样本 | ~4GB | 中等 | CPML |
| ElevenLabs | 闭源 | 高 | ✅ | 云端 | 快 | 商业付费 |
分析几个关键差异:
LuxTTS vs F5-TTS:F5-TTS 在语音自然度和发音准确度上表现突出,是社区公认的均衡选手。但 F5-TTS 显存占用更高,生成速度也比 LuxTTS 慢约 4-5 倍。如果主要需求是声音克隆且对硬件有限制,LuxTTS 更合适。
LuxTTS vs Kokoro:Kokoro 只有 82M 参数,速度极快,但不支持从音频样本克隆声音。这是本质区别。Kokoro 适合用固定预设声音做 TTS,LuxTTS 适合克隆某个特定人的声音。
LuxTTS vs ElevenLabs:ElevenLabs 效果很好,但按字符收费。LuxTTS 本地部署后,除了硬件和电费,没有持续成本。对于高频用量的场景,长期来看本地方案更划算。
安装教程
方法一:本地安装(推荐有开发基础的用户)
第一步:准备环境
确认 Python 已安装。打开命令行,输入:
bash
python --version
显示 Python 3.8.x 或以上版本则可以继续。如果没有,去 python.org 下载安装包,安装时勾选"Add Python to PATH"。
第二步:克隆代码仓库
bash
git clone https://github.com/ysharma3501/LuxTTS.git
cd LuxTTS
如果没有安装 Git,去 git-scm.com 下载安装。
第三步:安装依赖
bash
pip install -r requirements.txt
这一步会自动下载 PyTorch、librosa、soundfile 等所有依赖包。根据网速不同,可能需要 5-20 分钟。
如果遇到 pip install 报错,可以先升级 pip:
bash
pip install --upgrade pip
然后重新运行安装命令。
第四步:加载模型
首次运行时,模型权重会从 Hugging Face 自动下载(约 500MB),需要网络连接。
python
from zipvoice.luxvoice import LuxTTS
# GPU 用户
lux_tts = LuxTTS('YatharthS/LuxTTS', device='cuda', threads=2)
# CPU 用户
# lux_tts = LuxTTS('YatharthS/LuxTTS', device='cpu', threads=2)
# Mac M系列芯片用户
# lux_tts = LuxTTS('YatharthS/LuxTTS', device='mps')
第五步:准备参考音频
声音克隆需要一段参考音频。建议参考音频至少 3 秒以上,格式为 WAV 文件。
录制要求:
- 环境安静,减少背景噪音
- 说话清晰,语速正常
- 时长建议 5-10 秒
- 保存为
.wav格式(也支持.mp3,但 WAV 效果更稳定)
第六步:生成语音
下面是带参数说明的完整示例:
python
import soundfile as sf
from zipvoice.luxvoice import LuxTTS
lux_tts = LuxTTS('YatharthS/LuxTTS', device='cuda')
text = "这里输入你想要合成的文本内容"
prompt_audio = 'reference.wav' # 参考音频路径
# 参数设置
rms = 0.01 # 音量大小,0.01 是推荐值,调高声音更响
t_shift = 0.9 # 采样参数,调高音质可能更好但发音准确率下降
num_steps = 4 # 采样步数,3-4 是效率与质量的平衡点
speed = 1.0 # 语速控制,数值越小语速越慢
return_smooth = False # 开启后声音更平滑,但清晰度略降
# 编码参考音频(第一次运行会因为 librosa 初始化多花约 10 秒)
encoded_prompt = lux_tts.encode_prompt(prompt_audio, rms=rms)
# 生成语音
final_wav = lux_tts.generate_speech(
text,
encoded_prompt,
num_steps=num_steps,
t_shift=t_shift,
speed=speed,
return_smooth=return_smooth
)
# 保存输出
final_wav_np = final_wav.numpy().squeeze()
sf.write('output.wav', final_wav_np, 48000)
print("生成完成,已保存到 output.wav")
第七步:常见问题处理
生成的声音有金属感 :把 return_smooth 改为 True,可以减少这种情况。
发音有错误 :把 t_shift 降低,比如从 0.9 调到 0.7,发音准确率会提升,但声音质量可能略降。
生成速度慢 :检查是否真的在用 GPU,可以在代码里加 print(lux_tts.device) 确认。CPU 模式下速度会明显更慢。
方法二:Google Colab(不需要本地配置,免费GPU)
如果本地没有 GPU,或者不想折腾环境配置,官方提供了 Google Colab 笔记本,可以直接在浏览器里运行,使用 Google 提供的免费 GPU。
打开链接:https://colab.research.google.com/drive/1cDaxtbSDLRmu6tRV_781Of_GSjHSo1Cu
按顺序运行各个代码块,上传参考音频,填入文本,点击运行即可。适合偶尔用一用、不想在本地装环境的情况。
方法三:Hugging Face Spaces(纯网页,零配置)
官方提供了 Hugging Face Space,可以直接上传一段 WAV 录音,输入想要合成的文字,点击生成,在浏览器里听结果。
地址:https://huggingface.co/spaces/YatharthS/LuxTTS
这个方法完全不需要安装任何东西,适合只是想试试效果的人。注意免费 Space 有时候会排队,等待时间不固定。
方法四:社区 UI 工具(更友好的界面)
社区贡献者基于 LuxTTS 做了几个带图形界面的工具,包括 Lux-TTS-Gradio(Gradio 应用)、OptiSpeech(更简洁的 UI)和 LuxTTS-Comfyui(在 ComfyUI 里使用的节点插件)。
如果你已经在用 ComfyUI 做图像生成工作流,LuxTTS-Comfyui 可以直接把语音合成整合进去,一个界面处理图文音视频,不需要切来切去。
一点个人看法
LuxTTS 在 GitHub 上 Star 数量不算多,但从技术路线来看,它选择的方向是对的------把一个大模型能做的事,用更少的资源来完成,这才是个人用户真正需要的东西。商业服务永远在涨价,自己能跑的工具才是稳的。
目前这个项目还在 float32 阶段,按照作者的说法 float16 支持正在路线图里,到时候速度还会再翻一倍。架构本身(ZipVoice 蒸馏 + 改进采样 + 48kHz 声码器)已经比较成熟,后续只要维持更新,潜力还有不少。