#
XTTS com clonagem de voz
Saudações! Então, você ficou impressionado com aqueles posts do Reddit mostrando o quão longe a tecnologia chegou para o text-to-speech de IA?
Sentindo-se animado para dar à sua waifu/husbando robótico um novo e brilhante modulador de voz?
Não tema, esta impressionante tecnologia inovadora já está disponível no seu SillyTavern local, você só precisa de um simples...
#
Pré-requisitos
- Versão mais recente do SillyTavern.
- Miniconda instalado.
- (Windows) Visual C++ Build Tools instalado.
- Arquivos WAV com clipes de voz para clonar (~10 segundos por arquivo). Requisitos do arquivo: PCM, Mono, 22050Hz, 16-bit (converta via Audacity).
- Crie uma pasta com subpastas "speakers" e "output". Coloque os arquivos WAV em "speakers".
Exemplo de estrutura de pastas:
C:\xtts
- speakers
- alice.wav
- bob.wav
- output
#
Instalação
daswer123 criou um servidor de API que executa o modelo XTTSv2 no seu computador e se conecta à extensão TTS do SillyTavern.
É completamente independente da API Extras e usaria um ambiente separado.
Muito importante: Não instale os seguintes requisitos no seu ambiente Extras ou Python do sistema. Isso quebrará seus outros pacotes, fará downgrades desnecessários, etc.
A seguinte instrução é fornecida usando Miniconda, mas você também pode fazer isso com venv (não coberto aqui). Abra o prompt de comando do Anaconda e siga as instruções linha por linha.
#
Colocando o servidor em funcionamento
Navegue até a pasta que você criou no passo 4 dos pré-requisitos.
cd C:\xttsCrie um novo ambiente conda. A partir de agora, vamos chamá-lo de
xtts.conda create -n xttsAtive o ambiente recém-criado.
conda activate xttsInstale Python 3.10 no seu ambiente. Confirme com "y" quando solicitado.
conda install python=3.10Instale o servidor XTTS com seus requisitos.
pip install xtts-api-server pydubInstale PyTorch. Isso pode levar algum tempo. A seguinte linha instala PyTorch com suporte de aceleração GPU (CUDA). Se você quiser usar apenas inferência de CPU, remova a última parte que começa com
--index-url.pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118Inicie o servidor XTTS no host e porta padrão: http://localhost:8020
python -m xtts_api_serverDurante sua primeira inicialização, o modelo será baixado (cerca de ~2 GB). Não se esqueça de ler o aviso legal da Coqui AI com muito cuidado. Haha, estou brincando, apenas aperte "y" novamente.
#
Conectando ao SillyTavern
- Abra o painel de extensões, expanda o menu TTS e escolha "XTTSv2" na lista de provedores.
- Escolha seu idioma de text-to-speech no dropdown Language (ficarei triste se não for polonês).
- Verifique se o endpoint do provedor aponta para http://localhost:8020 e "Available voices" mostra uma lista de suas amostras de voz.
- Escolha qualquer personagem e defina um mapeamento entre a amostra de voz e o personagem. Se a lista de personagens estiver vazia, clique em "Reload" algumas vezes.
- Configure o restante das configurações de TTS de acordo com suas preferências.
#
Está tudo pronto agora!
Clique no ícone de megafone no menu de ações de contexto para qualquer mensagem e ouça a bela voz clonada emanando de seus alto-falantes. A geração leva algum tempo e não é em tempo real mesmo em GPUs RTX de última geração.
#
Streaming?
É possível usar streaming HTTP com a versão mais recente do servidor XTTS para obter os pedaços de áudio gerado assim que estiver disponível!
#
Isso não funciona com RVC!
O áudio ainda será gerado (assumindo que você está usando a versão mais recente da extensão RVC) e convertido, mas não transmitido em streaming pois o RVC requer ter o arquivo de áudio completo antes de iniciar a conversão. Streaming com RVC ainda está sendo investigado...
#
Como obter suporte de streaming?
- Atualize o SillyTavern para a versão mais recente.
Atualize o servidor XTTS para a versão mais recente.
conda activate xtts pip install xtts-api-server --upgrade- Inicie e conecte o XTTS ao ST como de costume.
- Habilite a configuração "Streaming" da extensão XTTS no SillyTavern.
#
Áudio entrecortado?
Tente aumentar a configuração "chunk size".
Para referência: com um chunk size de 200, a RTX 3090 pode produzir áudio ininterrupto ao custo de uma latência de áudio ligeiramente aumentada.
#
Como reiniciar o servidor TTS?
Apenas faça os passos 1, 3 e 7 da instrução de instalação.
#
Android??
Improvável, não pode executar aplicativos que requerem PyTorch sem alguma magia negra arcana para a qual não fornecemos suporte. Você pode tentar por sua conta e risco, mas nenhum suporte será fornecido se você enfrentar problemas.
Sua melhor solução é hospedar a API TTS no seu PC pela rede local, apenas não se esqueça de especificar o host e a porta para escutar - veja README.