Inglés | 中文
Una implementación de código abierto del modelo TTS de disparo cero VALL-E X de Microsoft.
Lanzamos nuestro modelo entrenado al público para investigación o uso de aplicaciones.
VALL-E X es un sorprendente modelo multilingüe de conversión de texto a voz (TTS) propuesto por Microsoft. Si bien Microsoft publicó inicialmente en su artículo de investigación, no publicó ningún código ni modelo previamente entrenado. Al reconocer el potencial y el valor de esta tecnología, nuestro equipo asumió el desafío de reproducir los resultados y entrenar nuestro propio modelo. ¡Nos complace compartir nuestro modelo VALL-E X entrenado con la comunidad, permitiendo que todos experimenten el poder del TTS de próxima generación!
Más detalles sobre el modelo se presentan en la tarjeta del modelo.
2023.09.10
2023.08.30
2023.08.23
2023.08.20
2023.08.14
git clone https://github.com/Plachtaa/VALL-E-X.git
cd VALL-E-X
pip install -r requirements.txt
Nota: Si desea realizar un mensaje, debe instalar ffmpeg y agregar su carpeta a la variable de entorno PATH.
Cuando ejecutes el programa por primera vez, descargará automáticamente el modelo correspondiente.
Si la descarga falla e informa un error, siga los pasos a continuación para descargar manualmente el modelo.
(Preste atención a las mayúsculas de las carpetas)
Compruebe si hay una carpeta de checkpoints
en el directorio de instalación. De lo contrario, cree manualmente una carpeta de checkpoints
( ./checkpoints/
) en el directorio de instalación.
Compruebe si hay un archivo vallex-checkpoint.pt
en la carpeta de checkpoints
. De lo contrario, descargue manualmente el archivo vallex-checkpoint.pt
desde aquí y colóquelo en la carpeta de checkpoints
.
Compruebe si hay una carpeta whisper
en el directorio de instalación. De lo contrario, cree manualmente una carpeta whisper
( ./whisper/
) en el directorio de instalación.
Compruebe si hay un archivo medium.pt
en la carpeta whisper
. De lo contrario, descargue manualmente el archivo medium.pt
desde aquí y colóquelo en la carpeta whisper
.
¿Aún no estás listo para configurar el entorno en tu máquina local? ¡Ningún problema! Lo cubrimos con nuestras demostraciones en línea. ¡Puedes probar VALL-E X directamente en Hugging Face o Google Colab y experimentar las capacidades del modelo sin problemas!
VALL-E X viene repleto de funcionalidades de vanguardia:
TTS multilingüe : hable en tres idiomas (inglés, chino y japonés) con una síntesis de voz natural y expresiva.
Clonación de voz sin disparos : Registre una grabación corta de 3 a 10 segundos de un orador invisible y observe cómo VALL-E X crea un discurso personalizado y de alta calidad que suena igual que él.
¡Explore nuestra página de demostración para ver muchos más ejemplos!
from utils . generation import SAMPLE_RATE , generate_audio , preload_models
from scipy . io . wavfile import write as write_wav
from IPython . display import Audio
# download and load all models
preload_models ()
# generate audio from text
text_prompt = """
Hello, my name is Nose. And uh, and I like hamburger. Hahaha... But I also have other interests such as playing tactic toast.
"""
audio_array = generate_audio ( text_prompt )
# save audio to disk
write_wav ( "vallex_generation.wav" , SAMPLE_RATE , audio_array )
# play text in notebook
Audio ( audio_array , rate = SAMPLE_RATE )
text_prompt = """
チュソクは私のお気に入りの祭りです。 私は数日間休んで、友人や家族との時間を過ごすことができます。
"""
audio_array = generate_audio ( text_prompt )
Nota: VALL-E X controla el acento perfectamente incluso al sintetizar texto de cambio de código. Sin embargo, es necesario indicar manualmente el idioma de las oraciones respectivas (ya que nuestra herramienta g2p se basa en reglas)
text_prompt = """
[EN]The Thirty Years' War was a devastating conflict that had a profound impact on Europe.[EN]
[ZH]这是历史的开始。 如果您想听更多,请继续。[ZH]
"""
audio_array = generate_audio ( text_prompt , language = 'mix' )
¡VALL-E X proporciona decenas de voces de oradores que puedes usar directamente para realizar inferencias! Explora todas las voces en el código.
VALL-E X intenta igualar el tono, la emoción y la prosodia de un preset determinado. El modelo también intenta preservar la música, el ruido ambiental, etc.
text_prompt = """
I am an innocent boy with a smoky voice. It is a great honor for me to speak at the United Nations today.
"""
audio_array = generate_audio ( text_prompt , prompt = "dingzhen" )
¡VALL-E X admite la clonación de voz! Puedes crear un mensaje de voz con cualquier persona, personaje o incluso tu propia voz, y usarlo como otros ajustes preestablecidos de voz.
Para hacer un mensaje de voz, debe proporcionar un discurso de 3 a 10 segundos de duración, así como la transcripción del discurso. También puede dejar la transcripción en blanco para permitir que el modelo Whisper genere la transcripción.
VALL-E X intenta igualar el tono, la emoción y la prosodia de un mensaje determinado. El modelo también intenta preservar la música, el ruido ambiental, etc.
from utils . prompt_making import make_prompt
### Use given transcript
make_prompt ( name = "paimon" , audio_prompt_path = "paimon_prompt.wav" ,
transcript = "Just, what was that? Paimon thought we were gonna get eaten." )
### Alternatively, use whisper
make_prompt ( name = "paimon" , audio_prompt_path = "paimon_prompt.wav" )
¡Ahora probemos el mensaje que acabamos de hacer!
from utils . generation import SAMPLE_RATE , generate_audio , preload_models
from scipy . io . wavfile import write as write_wav
# download and load all models
preload_models ()
text_prompt = """
Hey, Traveler, Listen to this, This machine has taken my voice, and now it can talk just like me!
"""
audio_array = generate_audio ( text_prompt , prompt = "paimon" )
write_wav ( "paimon_cloned.wav" , SAMPLE_RATE , audio_array )
¿No te sientes cómodo con los códigos? ¡Ningún problema! También hemos creado una interfaz gráfica fácil de usar para VALL-E X. Le permite interactuar con el modelo sin esfuerzo, lo que facilita la clonación de voz y la síntesis de voz multilingüe.
Puede iniciar la interfaz de usuario con el siguiente comando:
python -X utf8 launch-ui.py
VALL-E X funciona bien tanto en CPU como en GPU ( pytorch 2.0+
, CUDA 11.7 y CUDA 12.0).
Una GPU VRAM de 6 GB es suficiente para ejecutar VALL-E X sin descargar.
VALL-E X es similar a Bark, VALL-E y AudioLM, que genera audio en estilo GPT prediciendo tokens de audio cuantificados por EnCodec.
Comparando con la corteza:
Idioma | Estado |
---|---|
Inglés (es) | ✅ |
japonés (ja) | ✅ |
Chino simplificado (zh) | ✅ |
wget
para descargar el modelo al directorio ./checkpoints/
cuando ejecuta el programa por primera vez../checkpoints/
. .bat
para usuarios que no utilizan Python Si encuentra VALL-E X interesante y útil, ¡danos una estrella en GitHub! ️ Nos anima a seguir mejorando el modelo y añadiendo características interesantes.
VALL-E X tiene la licencia MIT.
¿Tiene preguntas o necesita ayuda? No dudes en abrir un problema o unirte a nuestro Discord.
¡Feliz clonación de voz! ?