Inglês | 中文
Uma implementação de código aberto do modelo VALL-E X zero-shot TTS da Microsoft.
Divulgamos nosso modelo treinado ao público para pesquisa ou uso de aplicativos.
VALL-E X é um incrível modelo multilíngue de conversão de texto em fala (TTS) proposto pela Microsoft. Embora a Microsoft tenha publicado inicialmente seu artigo de pesquisa, ela não lançou nenhum código ou modelo pré-treinado. Reconhecendo o potencial e o valor desta tecnologia, a nossa equipa assumiu o desafio de reproduzir os resultados e treinar o nosso próprio modelo. Temos o prazer de compartilhar nosso modelo VALL-E X treinado com a comunidade, permitindo que todos experimentem o poder do TTS da próxima geração!
Mais detalhes sobre o modelo são apresentados na ficha de 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: Se quiser fazer um prompt, você precisa instalar o ffmpeg e adicionar sua pasta à variável de ambiente PATH.
Ao executar o programa pela primeira vez, ele baixará automaticamente o modelo correspondente.
Se o download falhar e reportar um erro, siga as etapas abaixo para baixar manualmente o modelo.
(Por favor, preste atenção à capitalização das pastas)
Verifique se existe uma pasta checkpoints
no diretório de instalação. Caso contrário, crie manualmente uma pasta checkpoints
( ./checkpoints/
) no diretório de instalação.
Verifique se existe um ficheiro vallex-checkpoint.pt
na pasta checkpoints
. Caso contrário, baixe manualmente o arquivo vallex-checkpoint.pt
aqui e coloque-o na pasta checkpoints
.
Verifique se existe uma pasta whisper
no diretório de instalação. Caso contrário, crie manualmente uma pasta whisper
( ./whisper/
) no diretório de instalação.
Verifique se existe um arquivo medium.pt
na pasta whisper
. Caso contrário, baixe manualmente o arquivo medium.pt
aqui e coloque-o na pasta whisper
.
Ainda não está pronto para configurar o ambiente em sua máquina local? Sem problemas! Nós ajudamos você com nossas demonstrações online. Você pode experimentar o VALL-E X diretamente no Hugging Face ou no Google Colab, experimentando os recursos do modelo sem complicações!
VALL-E X vem repleto de funcionalidades de última geração:
TTS multilíngue : fale em três idiomas – inglês, chinês e japonês – com síntese de fala natural e expressiva.
Clonagem de voz zero-shot : registre uma gravação curta de 3 a 10 segundos de um locutor invisível e observe o VALL-E X criar uma fala personalizada e de alta qualidade que soa exatamente como eles!
Explore nossa página de demonstração para muito mais exemplos!
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 o acento perfeitamente mesmo ao sintetizar texto de troca de código. No entanto, você precisa indicar manualmente o idioma das respectivas sentenças (já que nossa ferramenta g2p é baseada em regras)
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 fornece dezenas de vozes de alto-falante que você pode usar diretamente para inferência! Procure todas as vozes no código
VALL-E X tenta combinar o tom, o tom, a emoção e a prosódia de um determinado preset. O modelo também tenta preservar música, ruído ambiente, 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 suporta clonagem de voz! Você pode fazer um comando de voz com qualquer pessoa, personagem ou até mesmo com sua própria voz e usá-lo como outras predefinições de voz.
Para fazer um prompt de voz, você precisa fornecer um discurso de 3 a 10 segundos de duração, bem como a transcrição do discurso. Você também pode deixar a transcrição em branco para permitir que o modelo Whisper gere a transcrição.
VALL-E X tenta combinar o tom, o tom, a emoção e a prosódia de um determinado prompt. O modelo também tenta preservar música, ruído ambiente, 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" )
Agora vamos testar o prompt que acabamos de fazer!
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 )
Não se sente confortável com códigos? Sem problemas! Também criamos uma interface gráfica amigável para o VALL-E X. Ela permite que você interaja com o modelo sem esforço, facilitando a clonagem de voz e a síntese de fala multilíngue.
Você pode iniciar a IU com o seguinte comando:
python -X utf8 launch-ui.py
VALL-E X funciona bem em CPU e GPU ( pytorch 2.0+
, CUDA 11.7 e CUDA 12.0).
Uma GPU VRAM de 6 GB é suficiente para executar o VALL-E X sem descarregamento.
VALL-E X é semelhante a Bark, VALL-E e AudioLM, que gera áudio no estilo GPT prevendo tokens de áudio quantizados pelo EnCodec.
Comparando com a casca:
Linguagem | Status |
---|---|
Inglês (pt) | ✅ |
Japonês (já) | ✅ |
Chinês, simplificado (zh) | ✅ |
wget
para baixar o modelo para o diretório ./checkpoints/
quando você executa o programa pela primeira vez../checkpoints/
. .bat
para usuários não-python Se você acha o VALL-E X interessante e útil, dê-nos uma estrela no GitHub! ️ Isso nos incentiva a continuar melhorando o modelo e adicionando recursos interessantes.
VALL-E X é licenciado sob a licença MIT.
Tem dúvidas ou precisa de ajuda? Sinta-se à vontade para abrir uma edição ou entrar em nosso Discord
Feliz clonagem de voz! ?