Tortoise é um programa de texto em fala criado com as seguintes prioridades:
Este repo contém todo o código necessário para executar o TTTS TTS no modo de inferência.
Colab é a maneira mais fácil de experimentar isso. Eu montei um caderno que você pode usar aqui: https://colab.research.google.com/drive/1wvqupqwidbuvewwounglpghu3hg_cbr?usp=sharing
Se você deseja usar isso no seu próprio computador, deve ter uma GPU da NVIDIA.
Primeiro, instale o pytorch usando estas instruções: https://pytorch.org/get-started/locally/. No Windows, eu recomendo usar o caminho de instalação do CONDA. Disseram -me que, se você não fizer isso, gastará muito tempo perseguindo problemas de dependência.
Em seguida, instale a tartaruga e suas dependências:
git clone https://github.com/neonbjb/tortoise-tts.git
cd tortoise-tts
python setup.py install Se você estiver no Windows, também precisará instalar o PysoundFile: conda install -c conda-forge pysoundfile
Este script permite que você fale uma única frase com uma ou mais vozes.
python tortoise/do_tts.py --text " I'm going to speak this " --voice random --preset fastEste script fornece ferramentas para ler grandes quantidades de texto.
python tortoise/read.py --textfile < your text to be read > --voice randomIsso dividirá o arquivo de texto em frases e depois as converterá para a fala uma de cada vez. Ele produzirá uma série de clipes falados à medida que são gerados. Depois que todos os clipes forem gerados, ele os combinará em um único arquivo e a saída isso também.
Às vezes, a tartaruga estraga uma saída. Você pode re-gerar qualquer clipes ruins, reencontrando read.py com o argumento-Regenerate.
Tartaruga pode ser usada programaticamente, assim:
reference_clips = [ utils . audio . load_audio ( p , 22050 ) for p in clips_paths ]
tts = api . TextToSpeech ()
pcm_audio = tts . tts_with_preset ( "your text here" , voice_samples = reference_clips , preset = 'fast' )A tartaruga foi treinada especificamente para ser um modelo de vários falantes. Ele faz isso consultando clipes de referência.
Esses clipes de referência são gravações de um orador que você fornece para orientar a geração de fala. Esses clipes são usados para determinar muitas propriedades da saída, como o tom e o tom da voz, a velocidade falando e até mesmo defeitos como um lisp ou gaguejando. O clipe de referência também é usado para determinar aspectos relacionados a não-voz da saída de áudio, como volume, ruído de fundo, qualidade de gravação e reverb.
Incluí um recurso que gera aleatoriamente uma voz. Essas vozes não existem e serão aleatórias toda vez que você a executa. Os resultados são bastante fascinantes e eu recomendo que você brinque com ele!
Você pode usar a voz aleatória passando 'aleatório' como o nome da voz. Tartaruga cuidará do resto.
Para os do espaço de ML: isso é criado projetando um vetor aleatório no espaço latente do condicionamento de voz.
Este repositório vem com várias vozes pré-embaladas. As vozes anteriores com "Train_" vieram do conjunto de treinamento e têm um desempenho muito melhor do que as outras. Se seu objetivo é um discurso de alta qualidade, recomendo que você escolha um deles. Se você quiser ver o que a tartaruga pode fazer por um imitação de tiro zero, dê uma olhada nos outros.
Para adicionar novas vozes à tartaruga, você precisará fazer o seguinte:
Como mencionado acima, seus clipes de referência têm um impacto profundo na produção de tartaruga. A seguir estão algumas dicas para escolher bons clipes:
A tartaruga é principalmente um modelo de decodificador autoregressivo combinado com um modelo de difusão. Ambos têm muitos botões que podem ser transformados e abstraí -lo por uma questão de facilidade de uso. Fiz isso gerando milhares de clipes usando várias permutações das configurações e usando uma métrica para realismo e inteligibilidade de voz para medir seus efeitos. Definei os padrões para as melhores configurações gerais que consegui encontrar. Para casos de uso específicos, pode ser eficaz brincar com essas configurações (e é muito provável que eu tenha perdido alguma coisa!)
Essas configurações não estão disponíveis nos scripts normais embalados com tartaruga. Eles estão disponíveis, no entanto, na API. Consulte api.tts para uma lista completa.
Algumas pessoas descobriram que é possível fazer uma engenharia pronta com tartaruga! Por exemplo, você pode evocar emoção, incluindo coisas como "I'm Realmente triste", antes do seu texto. Eu criei um sistema de redação automatizado que você pode usar para aproveitar isso. Funciona tentando redigir qualquer texto no prompt, cercado por colchetes. Por exemplo, o aviso "[Estou realmente triste], por favor, me alimente." Só falará as palavras "Por favor, alimente -me" (com uma tonalidade triste).
A tartaruga ingera clipes de referência, alimentando -os individualmente através de um pequeno submodelo que produz um ponto latente e depois pegando a média de todos os latentes produzidos. A experimentação que fiz indicou que esses latentes de pontos são bastante expressivos, afetando tudo, do tom a taxa de fala e anormalidades da fala.
Isso se presta a alguns truques interessantes. Por exemplo, você pode combinar alimentar duas vozes diferentes para a tartaruga e ele produzirá como ela acha que a "média" dessas duas vozes soa.
Use o script get_conditioning_latents.py para extrair latentes de condicionamento para uma voz que você instalou. Este script despejará os latentes em um arquivo de picles. PTH. O arquivo conterá uma única tupla, (AutoRegressive_latent, difusion_latent).
Como alternativa, use a api.texttosteech.get_conditioning_latents () para buscar os latentes.
Depois de brincar com eles, você pode usá -los para gerar discursos criando um subdiretório em vozes/ com um único arquivo ".th" que contém os latentes de condicionamento em conserva como uma tupla (AutoRegressive_latent, Diffusion_latent).
Por preocupações de que esse modelo possa ser mal utilizado, construí um classificador que representa a probabilidade de um clipe de áudio ter vindo da tartaruga.
Este classificador pode ser executado em qualquer computador, o uso é o seguinte:
python tortoise/is_this_from_tortoise.py --clip=<path_to_suspicious_audio_file>
Este modelo tem 100% de precisão no conteúdo dos resultados/ e vozes/ pastas neste repositório. Ainda assim, trate esse classificador como um "sinal forte". Os classificadores podem ser enganados e também não é impossível para esse classificador exibir falsos positivos.
O Tortoise TTS é inspirado no Dalle do Openai, aplicado aos dados da fala e usando um decodificador melhor. É composto por 5 modelos separados que funcionam juntos: https://nonint.com/2022/04/25/tortoise-architectural-design-doc/