Absortio

Email → Summary → Bookmark → Email

GitHub - CorentinJ/Real-Time-Voice-Cloning: Clone a voice in 5 seconds to generate arbitrary speech in real-time

Extracto

Clone a voice in 5 seconds to generate arbitrary speech in real-time - CorentinJ/Real-Time-Voice-Cloning

Resumen

Resumen Principal

Este repositorio presenta una implementación de SV2TTS (Transfer Learning from Speaker Verification to Multispeaker Text-To-Speech Synthesis), un framework de aprendizaje profundo que permite la clonación de voz en tiempo real mediante un vocoder eficiente. Desarrollado como una tesis de maestría, el sistema se estructura en tres etapas fundamentales: primero, genera una representación digital única de una voz a partir de unos pocos segundos de audio; segundo y tercero, utiliza esta representación como referencia para sintetizar voz a partir de cualquier texto proporcionado. El proyecto integra investigaciones clave como WaveRNN para el vocoder en tiempo real, Tacotron para el sintetizador de voz y GE2E para el codificador, sentando una base importante en el campo de la síntesis de voz. Aunque el ámbito del Deep Learning avanza rápidamente, este proyecto destaca por su enfoque de código abierto y su metodología innovadora en la clonación vocal.

Elementos Clave

  • Framework SV2TTS de tres etapas: El núcleo del proyecto es el sistema Transfer Learning from Speaker Verification to Multispeaker Text-To-Speech Synthesis (SV2TTS). Este marco se descompone en tres fases: la creación de una representación digital compacta de una voz a partir de un fragmento de audio corto, seguida por el uso de esta representación como plantilla para generar discurso sintetizado a partir de texto arbitrario en las etapas dos y tres, demostrando su capacidad de adaptación.
  • Implementación de Arquitecturas Clave: El repositorio integra varias publicaciones científicas fundamentales para lograr su funcionalidad. Incluye la implementación de WaveRNN (Efficient Neural Audio Synthesis) como vocoder para la síntesis de audio en tiempo real, Tacotron (Towards End-to-End Speech Synthesis) como el sintetizador principal, y GE2E (Generalized End-To-End Loss for Speaker Verification) para el codificador que extrae las características del hablante, lo que permite la clonación y transferencia del estilo de voz.
  • Instalación y Ejecución Multiplataforma: El proyecto soporta sistemas operativos Windows y Linux, facilitando su adopción. Requiere la instalación de ffmpeg para el procesamiento de archivos de audio. La gestión de paquetes de Python se realiza mediante uv, que simplifica la creación de entornos virtuales. Los usuarios pueden ejecutar el toolbox tanto con una interfaz gráfica (GUI) como en línea de comandos (CLI), con opciones optimizadas para GPUs NVIDIA (--extra cuda) o CPUs (--extra cpu), asegurando accesibilidad para diversas configuraciones de hardware.
  • Gestión de Modelos y Datos: Los modelos preentrenados esenciales para el funcionamiento del sistema se descargan automáticamente, simplificando el proceso de configuración inicial. Para tareas de entrenamiento o experimentación más avanzada con el toolbox, se recomienda la descarga del dataset LibriSpeech/train-clean-100. Además, el sistema es compatible con otros datasets y permite a los usuarios utilizar sus propios archivos de audio o grabar nuevas muestras directamente con las herramientas incluidas.

Análisis e Implicaciones

Este proyecto de clonación de voz en tiempo real abre puertas significativas para la personalización de interfaces de usuario, la creación de contenido multimedia y herramientas de accesibilidad. Su naturaleza de código abierto y la capacidad de clonar voces con pocos segundos de audio tienen un potencial disruptivo en el desarrollo de aplicaciones innovadoras.

Contexto Adicional

El repositorio fue la tesis de maestría de su creador, y aunque las tecnologías de Deep Learning evolucionan rápidamente, este trabajo establece un fundamento robusto para la investigación y el desarrollo futuros en la síntesis de voz.

Contenido

Real-Time Voice Cloning

This repository is an implementation of Transfer Learning from Speaker Verification to Multispeaker Text-To-Speech Synthesis (SV2TTS) with a vocoder that works in real-time. This was my master's thesis.

SV2TTS is a deep learning framework in three stages. In the first stage, one creates a digital representation of a voice from a few seconds of audio. In the second and third stages, this representation is used as reference to generate speech given arbitrary text.

Video demonstration (click the picture):

Toolbox demo

Papers implemented

URL Designation Title Implementation source
1806.04558 SV2TTS Transfer Learning from Speaker Verification to Multispeaker Text-To-Speech Synthesis This repo
1802.08435 WaveRNN (vocoder) Efficient Neural Audio Synthesis fatchord/WaveRNN
1703.10135 Tacotron (synthesizer) Tacotron: Towards End-to-End Speech Synthesis fatchord/WaveRNN
1710.10467 GE2E (encoder) Generalized End-To-End Loss for Speaker Verification This repo

Heads up

Like everything else in Deep Learning, this repo has quickly gotten old. Many SaaS apps (often paying) will give you a better audio quality than this repository will. If you wish for an open-source solution with a high voice quality:

  • Check out paperswithcode for other repositories and recent research in the field of speech synthesis.
  • Check out Chatterbox for a similar project up to date with the 2025 SOTA in voice cloning

Running the toolbox

Both Windows and Linux are supported.

  1. Install ffmpeg. This is necessary for reading audio files. Check if it's installed by running in a command line
  1. Install uv for python package management
# On Windows:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# On Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Alternatively, on any platform if you have pip installed you can do
pip install -U uv
  1. Run one of the following commands
# Run the toolbox if you have an NVIDIA GPU
uv run --extra cuda demo_toolbox.py
# Use this if you don't
uv run --extra cpu demo_toolbox.py

# Run in command line if you don't want the GUI
uv run --extra cuda demo_cli.py
uv run --extra cpu demo_cli.py

Uv will automatically create a .venv directory for you with an appropriate python environment. Open an issue if this fails for you

(Optional) Download Pretrained Models

Pretrained models are now downloaded automatically. If this doesn't work for you, you can manually download them here.

(Optional) Download Datasets

For playing with the toolbox alone, I only recommend downloading LibriSpeech/train-clean-100. Extract the contents as <datasets_root>/LibriSpeech/train-clean-100 where <datasets_root> is a directory of your choosing. Other datasets are supported in the toolbox, see here. You're free not to download any dataset, but then you will need your own data as audio files or you will have to record it with the toolbox.

Fuente: GitHub