Zonos-TTS

ZyphraAI最近推出了其全新的多语言文本到语音模型Zonos-TTS,标志着语音合成技术的又一进步。

GitHub 仓库:https://github.com/Zyphra/Zonos

Zonos 遵循简单的架构:通过 eSpeak 进行文本规范化和音素化,然后通过转换器或混合主干进行 DAC 令牌预测。架构概述如下。

该模型不仅开源且可商用,支持实时语音克隆,并经过大量英语语音数据的训练,展现出卓越的性能。用户可以选择本地部署或API服务,且提供了免费的音频生成服务,极大地降低了使用门槛。

  • Zonos-TTS模型基于Apache2.0许可证,完全开源且可商用。
  • 提供本地部署和API服务,普通用户每月可免费生成100分钟音频。
  • 在RTX4090显卡上以约2倍实时速度运行,展现出极高的效率。

用法

Python

import torch
import torchaudio
from zonos.model import Zonos
from zonos.conditioning import make_cond_dict
from zonos.utils import DEFAULT_DEVICE as device

# model = Zonos.from_pretrained("Zyphra/Zonos-v0.1-hybrid", device=device)
model = Zonos.from_pretrained("Zyphra/Zonos-v0.1-transformer", device=device)

wav, sampling_rate = torchaudio.load("assets/exampleaudio.mp3")
speaker = model.make_speaker_embedding(wav, sampling_rate)

cond_dict = make_cond_dict(text="Hello, world!", speaker=speaker, language="en-us")
conditioning = model.prepare_conditioning(cond_dict)

codes = model.generate(conditioning)

wavs = model.autoencoder.decode(codes).cpu()
torchaudio.save("sample.wav", wavs[0], model.autoencoder.sampling_rate)

Gradio 界面(推荐)

uv run gradio_interface.py
# python gradio_interface.py

这应该会sample.wav在你的项目根目录中生成一个文件。

对于重复采样,我们强烈建议使用 gradio 接口,因为最小示例需要在每次运行时加载模型。

特征

  • 具有语音克隆的零样本 TTS:输入所需文本和 10-30 秒的说话人样本以生成高质量 TTS 输出
  • 音频前缀输入:添加文本和音频前缀,以实现更丰富的说话者匹配。音频前缀可用于引发诸如耳语之类的行为,而这些行为在从说话者嵌入克隆时可能难以复制
  • 多语言支持:Zonos-v0.1 支持英语、日语、中文、法语和德语
  • 音频质量和情绪控制:Zonos 提供对生成音频的多个方面的细粒度控制。其中包括语速、音调、最大频率、音频质量以及快乐、愤怒、悲伤和恐惧等各种情绪。
  • 快速:我们的模型在 RTX 4090 上的运行实时系数约为 2 倍(即每 1 秒的计算时间生成 2 秒的音频)
  • Gradio WebUI:Zonos 配备了易于使用的 Gradio 界面来生成语音
  • 简单的安装和部署:只需使用我们的存储库打包的 docker 文件即可安装和部署 Zonos。

安装

系统要求

  • 操作系统: Linux(最好是 Ubuntu 22.04/24.04)、macOS
  • GPU: 6GB+ VRAM,混合还需要 3000 系列或更新的 Nvidia GPU

    注意:如果有足够的可用 RAM,Zonos 也可以在 CPU 上运行。但是,这会比在专用 GPU 上运行慢很多,并且可能不足以进行交互式使用。

对于实验性的 Windows 支持,请查看此 fork。
另请参阅Docker 安装

系统依赖项

Zonos 依赖于 eSpeak 库 phonemization。您可以使用以下命令在 Ubuntu 上安装它:

apt install -y espeak-ng # For Ubuntu
# brew install espeak-ng # For MacOS

Python 依赖项

我们强烈建议使用较新版本的uv进行安装。如果您尚未安装 uv,可以通过 pip: 进行安装pip install -U uv。

安装到新的 uv 虚拟环境(推荐)

uv sync
uv sync --extra compile # optional but needed to run the hybrid
uv pip install -e .

使用 uv 安装到系统/活动环境中

uv pip install -e .
uv pip install -e .[compile] # optional but needed to run the hybrid

使用 pip 安装到 system/actived 环境中

pip install -e .
pip install --no-build-isolation -e .[compile] # optional but needed to run the hybrid

确认其正常运行

为了方便起见,我们提供了一个最小的示例来检查安装是否有效:

uv run sample.py
# python sample.py

Docker 安装

git clone https://github.com/Zyphra/Zonos.git
cd Zonos

# For gradio
docker compose up

# Or for development you can do
docker build -t zonos .
docker run -it --gpus=all --net=host -v /path/to/Zonos:/Zonos -t zonos
cd /Zonos
python sample.py # this will generate a sample.wav in /Zonos
作者:Jeebiz  创建时间:2025-02-21 14:18
最后编辑:Jeebiz  更新时间:2025-05-12 09:20