Skip to main content

Run Retrieval-based Voice Conversion training and inference with ease.

Project description

ZeroRVC

Run Retrieval-based Voice Conversion training and inference with ease.

Features

  • Dataset Preparation
  • Hugging Face Datasets Integration
  • Hugging Face Accelerate Integration
  • Trainer API
  • Inference API
    • Index Support
  • Tensorboard Support
  • FP16 Support

Dataset Preparation

from datasets import load_dataset
from zerorvc import prepare, RVCTrainer

dataset = load_dataset("my-audio-dataset")
dataset = prepare(dataset)

trainer = RVCTrainer(
    "my-rvc-model",
    dataset_train=dataset["train"],
    dataset_test=dataset["test"],
)
trainer.train(epochs=100, batch_size=8, upload="JacobLinCool/rvc-test-1")

ZeroRVC provides a simple API to prepare your dataset for training. You only need to provide the path to your audio files. The feature extraction models will be downloaded automatically, or you can provide your own with the hubert and rmvpe arguments.

from zerorvc import prepare

dataset = prepare("./my-voices")

Since dataset is a Hugging Face Dataset object, you can easily push it to the Hugging Face Hub.

dataset.push_to_hub("my-rvc-dataset", token=HF_TOKEN)

And bring the preprocessed dataset back with the following code.

from datasets import load_dataset

dataset = load_dataset("my-rvc-dataset")

Training

Once you've prepared your dataset, you can start training your model with the RVCTrainer.

from tqdm import tqdm
from zerorvc import RVCTrainer

epochs = 100
trainer = RVCTrainer(checkpoint_dir="./checkpoints")
training = tqdm(
    trainer.train(
        dataset=dataset["train"], # preprocessed dataset
        resume_from=trainer.latest_checkpoint(), # resume training from the latest checkpoint if any
        epochs=epochs, batch_size=8
    )
)

# Training loop: iterate over epochs
for checkpoint in training:
    training.set_description(
        f"Epoch {checkpoint.epoch}/{epochs} loss: (gen: {checkpoint.loss_gen:.4f}, fm: {checkpoint.loss_fm:.4f}, mel: {checkpoint.loss_mel:.4f}, kl: {checkpoint.loss_kl:.4f}, disc: {checkpoint.loss_disc:.4f})"
    )

    # Save checkpoint every 10 epochs
    if checkpoint.epoch % 10 == 0:
        checkpoint.save(checkpoint_dir=trainer.checkpoint_dir)
        # Directly push the synthesizer to the Hugging Face Hub
        checkpoint.G.push_to_hub("my-rvc-model", token=HF_TOKEN)

print("Training completed.")

You can also push the whole GAN weights to the Hugging Face Hub.

checkpoint.push_to_hub("my-rvc-model", token=HF_TOKEN)

Inference

ZeroRVC provides an easy API to convert your voice with the trained model.

from zerorvc import RVC
import soundfile as sf

rvc = RVC.from_pretrained("my-rvc-model")
samples = rvc.convert("test.mp3")
sf.write("output.wav", samples, rvc.sr)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zerorvc-0.0.12.tar.gz (35.4 kB view details)

Uploaded Source

Built Distribution

zerorvc-0.0.12-py3-none-any.whl (44.5 kB view details)

Uploaded Python 3

File details

Details for the file zerorvc-0.0.12.tar.gz.

File metadata

  • Download URL: zerorvc-0.0.12.tar.gz
  • Upload date:
  • Size: 35.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.0

File hashes

Hashes for zerorvc-0.0.12.tar.gz
Algorithm Hash digest
SHA256 c73eb904fd1571c945a4f92e31ab286e52b510becb77b5c4eb2d3033c7e65644
MD5 5e4555086ee7b132d05b7004c7dc066c
BLAKE2b-256 56830fec460c14cb49d1f3a702fe01f6759a240e7e6910f563f2f151cc6f8991

See more details on using hashes here.

File details

Details for the file zerorvc-0.0.12-py3-none-any.whl.

File metadata

  • Download URL: zerorvc-0.0.12-py3-none-any.whl
  • Upload date:
  • Size: 44.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.0

File hashes

Hashes for zerorvc-0.0.12-py3-none-any.whl
Algorithm Hash digest
SHA256 48b6b0a2e095195ecd3507f2ac0184272d1ae80ff652c7d4de17e15b708ec089
MD5 5223327d465975fe26f4a311ea182853
BLAKE2b-256 8de7365eaba7d305ed7ad70ad842c10b980a529e24cf81038391094d0a8c2644

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page