You can use Zonos programmatically to perform zero-shot TTS and voice cloning. The workflow involves loading a pretrained model, creating a speaker embedding from a reference audio clip, preparing a conditioning dictionary with text and language, and then generating/decoding the audio.
Available models include:
Zyphra/Zonos-v0.1-hybrid (Requires 3000-series+ NVIDIA GPU)Zyphra/Zonos-v0.1-transformer
import torch
import torchaudio
from zonos.model import Zonos
from zonos.conditioning import make_cond_dict
from zonos.utils import DEFAULT_DEVICE as device
# Load the model
model = Zonos.from_pretrained("Zyphra/Zonos-v0.1-transformer", device=device)
# Prepare speaker embedding from reference audio
wav, sampling_rate = torchaudio.load("assets/exampleaudio.mp3")
speaker = model.make_speaker_embedding(wav, sampling_rate)
# Create conditioning dictionary
cond_dict = make_cond_dict(text="Hello, world!", speaker=speaker, language="en-us")
conditioning = model.prepare_conditioning(cond_dict)
# Generate audio codes
codes = model.generate(conditioning)
# Decode codes to waveform
wavs = model.autoencoder.decode(codes).cpu()
torchaudio.save("sample.wav", wavs[0], model.autoencoder.sampling_rate)