LuxTTS 基于ZipVoice架构的高质量、高速度语音克隆模型,能以超过150倍实时速度生成48kHz音频。

本教程将涵盖从环境配置到运行推理,以及部署Web UI和应对其他场景的完整流程。

📥 第一步:环境准备与安装

建议创建一个干净的Python环境,以避免依赖冲突。

  1. 克隆仓库

    1
    2
    git clone https://github.com/ysharma3501/LuxTTS.git
    cd LuxTTS
  2. 安装依赖
    项目根目录下的 requirements.txt 包含了核心依赖。推荐使用 pip 安装:

    1
    pip install -r requirements.txt

    注意:根据社区实践,LuxTTS可能还需要额外安装 LinaCodecpiper-phonemize 等依赖。如果后续运行报错,可以尝试单独安装:

    1
    2
    pip install git+https://github.com/ysharma3501/LinaCodec.git
    pip install piper-phonemize --find-links https://k2-fsa.github.io/icefall/piper_phonemize.html

🚀 第二步:基础使用与推理

安装完成后,你可以通过简单的Python脚本快速体验语音克隆。

  1. 加载模型

    1
    2
    3
    4
    5
    from zipvoice.luxvoice import LuxTTS

    # 根据你的硬件选择设备: 'cuda' (NVIDIA GPU), 'cpu', 或 'mps' (Apple Silicon)
    # 模型会从 Hugging Face (YatharthS/LuxTTS) 自动下载
    lux_tts = LuxTTS('YatharthS/LuxTTS', device='cuda')
  2. 准备参考音频
    准备一段你想克隆的声音样本(至少3秒长,支持wav/mp3格式),将其放在项目目录下,例如 audio_file.wav

  3. 执行语音克隆

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    import soundfile as sf
    from IPython.display import Audio

    text = "Hey, what's up? I'm feeling really great if you ask me honestly!"
    prompt_audio = 'audio_file.wav'

    # 编码参考音频 (首次运行因加载librosa会稍慢)
    encoded_prompt = lux_tts.encode_prompt(prompt_audio, rms=0.01)

    # 生成语音
    final_wav = lux_tts.generate_speech(text, encoded_prompt, num_steps=4)

    # 保存音频 (48kHz)
    final_wav = final_wav.numpy().squeeze()
    sf.write('output.wav', final_wav, 48000)

    # 在Jupyter环境中播放
    display(Audio(final_wav, rate=48000))

⚙️ 第三步:调整参数以获得更好效果

LuxTTS提供了一些可调参数,你可以根据输出效果进行微调:

  • num_steps: 采样步数,推荐3-4步以平衡效率与质量。
  • t_shift: 采样参数,较高值可能音质更好但会增加发音错误
  • rms: 控制参考音频音量,推荐0.01左右
  • return_smooth: 如果听到金属音,可以尝试设为 True
  • ref_duration: 参考音频使用时长(秒),设短可加速编码。若发现音频伪影,可尝试设为1000

🖥️ 可选:部署Gradio Web UI (Pinokio)

如果你想通过图形界面使用LuxTTS,可以部署社区提供的Gradio应用。

  • 使用Pinokio:社区提供了Pinokio启动器 [PierrunoYT/LuxTTS-Pinokio]。在Pinokio中打开该项目,点击 Install,完成后点击 Start,即可通过显示的 http://127.0.0.1:7860 地址使用Web界面。

  • 直接运行:如果项目中有 app.py 类似的Gradio入口文件,你也可以直接运行:

    1
    python app.py

🌐 其他部署方式与场景

  • 云端API部署:LuxTTS也在Fal.ai平台上提供了API服务。你可以通过HTTP API调用,无需本地部署,适合希望快速集成的场景。
  • Apple设备优化:社区提供了专为Apple芯片优化的CoreML版本 [FluidInference/luxtts-coreml],可在iPhone和Mac上获得更好的性能。
  • 日语模型:社区还提供了针对日语微调的模型 [ayutaz/LuxTTS],可通过加载特定权重使用。

💡 关键要点与提示

  • 性能优势:LuxTTS的核心优势在于高速(150倍实时)、高质量(48kHz)和低显存占用(<1GB VRAM)。
  • 硬件要求:在GPU上运行可获得最佳速度,但CPU上也能达到实时以上速度。建议使用至少3秒的参考音频以获得良好克隆效果。
  • 故障排除
    • 如遇到 librosa 相关错误,请确保其已正确安装。
    • 如果生成的音频有金属音,尝试设置 return_smooth=True
    • 确认参考音频路径正确,且文件未损坏。

如果在部署中遇到具体问题,可以查阅其GitHub仓库的Issues或社区讨论。希望这份指南能帮你顺利运行LuxTTS。