GUIA

Vozes do Supertonic 3: onde conseguir vozes próprias e como usá-las

O Supertonic 3 é um modelo aberto e pequeno de texto para fala que roda em um computador comum. Ele vem com dez vozes predefinidas, e qualquer outra voz é um único arquivo pequeno que você mesmo adiciona. Com esse arquivo, a fala em qualquer um dos 31 idiomas do modelo é gerada offline, na sua própria CPU ou GPU.

Este guia explica o que é uma voz do Supertonic 3, de onde vêm as vozes próprias agora que o projeto original do Supertonic foi arquivado e como usar uma voz com o código oficial, com o motor SuperClonica e com o Docker. A SuperClonica vende e treina vozes assim, então dizemos quando se trata do que é nosso.

O que é uma voz do Supertonic 3

Uma voz do Supertonic 3 é um estilo de voz: um arquivo JSON de cerca de 0,3 MB com dois pequenos conjuntos de números. Um define o timbre e o jeito de falar; o outro, o ritmo e as pausas. O modelo em si, cerca de 385 MB de arquivos ONNX, é o mesmo para todas as vozes e é baixado uma vez.

Como a voz é separada do modelo, trocar de voz não custa nada: a mesma instalação fala com qualquer arquivo de voz que você passar. Uma voz também funciona em todos os idiomas do modelo, do inglês, espanhol e alemão ao russo, japonês, coreano, árabe e hindi. Ela soa mais natural no idioma da gravação de onde foi feita. O chinês não está entre os 31 idiomas.

Onde conseguir vozes para o Supertonic 3

As dez vozes predefinidas, de M1 a M5 e de F1 a F5, vêm com o modelo. Para todo o resto há algumas fontes.

  • Vozes grátis no GitHub: o repositório superclonica/supertonic-voices tem arquivos de voz gratuitos com amostras de áudio em nove idiomas.
  • O catálogo da SuperClonica: mais de 170 vozes, incluindo personagens de jogos e desenhos animados, narradores, vozes masculinas, femininas e infantis. Cada página de voz tem demos e permite locutar online, de graça, uma frase curta sua; as vozes gratuitas são baixadas sem conta, e as pagas são compradas uma vez.
  • Uma voz sob encomenda: na página de encomendas você descreve a voz e anexa uma gravação, e um autor a treina para você.
  • A sua própria voz: a SuperClonica treina de graça uma voz a partir de uma gravação curta e limpa na sua própria GPU NVIDIA, com o nosso programa worker.
  • O Voice Builder, antigo serviço da Supertone para vozes próprias, não faz parte do projeto arquivado, então não é mais possível criar vozes novas lá.

Usar uma voz com o código oficial do Supertonic

O repositório arquivado do Supertonic continua funcionando. Clone-o, crie um ambiente virtual Python 3.11, instale o huggingface_hub e baixe o modelo para a pasta assets com hf download supertone-oss-archive/supertonic-3 --local-dir assets (o início rápido do projeto fixa a revisão exata). Depois instale os pacotes de py/requirements.txt.

Para falar com uma voz própria, execute o script de exemplo na pasta py e passe o arquivo de voz: python example_onnx.py --voice-style ./voice.json --text "Seu texto" --lang pt --n-test 1. O arquivo WAV aparece na pasta results. Para outro idioma, mude --lang, por exemplo para en ou ja.

Usar uma voz com o motor SuperClonica

SuperClonica é o nosso motor baseado no Supertonic 3. Ele lê os mesmos arquivos de voz sem conversão, é em média 61% mais rápido na CPU e 73% mais rápido na placa de vídeo nas nossas medições, remove o chiado do modelo entre as palavras e lê números por extenso.

Instale um pacote: python -m pip install superclonica-cpu, ou superclonica-gpu-cuda para uma GPU NVIDIA. Em Python, crie o motor uma vez e chame tts.synthesize("Olá!", voice="voice.json", lang="pt", seed=7), depois tts.save("hello.wav", audio). Na linha de comando: superclonica --text "Olá!" --voice voice.json --lang pt --output hello.wav. O modelo base é baixado na primeira execução.

Usar uma voz no Docker

A imagem superclonica/superclonica no Docker Hub roda o motor como servidor HTTP: docker run -d -p 8000:8000 -v superclonica-models:/models superclonica/superclonica:cpu, ou a tag cuda com --gpus all em uma GPU NVIDIA.

Uma requisição POST /synthesize leva o texto, o idioma e a voz: o conteúdo do JSON da voz vai dentro da própria requisição. Como uma voz tem cerca de 0,3 MB, monte a requisição em um arquivo e envie com curl -d @request.json. A resposta é um WAV de 16 bits.

Dicas para bons resultados

Alguns hábitos tiram o melhor de uma voz.

  • Informe o idioma do texto, não o da voz: uma voz russa lê um texto em inglês com lang=en.
  • Fixe uma semente (seed) quando gostar de uma tomada: o mesmo texto, voz e semente geram o mesmo áudio de novo.
  • No código oficial, escreva números, datas e abreviações como devem soar; o motor SuperClonica lê os números por extenso sozinho.
  • Divida textos longos em parágrafos. O motor SuperClonica faz isso sozinho e locuta textos longos em partes curtas, assim as palavras se repetem ou se cortam menos.
  • Ouça as demos antes de comprar: uma voz mantém o caráter da sua gravação, inclusive o sotaque.

Vozes de pessoas reais e as regras do modelo

Algumas vozes do catálogo são inspiradas em pessoas conhecidas. Não são as vozes reais delas, e essas pessoas não participaram, então não apresente esse áudio como palavras reais delas.

O Supertonic 3 é publicado sob a licença BigScience Open RAIL-M, e as suas restrições de uso valem para qualquer voz: não use a fala para se passar por alguém sem consentimento, para enganar ou assediar, e informe que o áudio foi gerado por máquina quando isso importar.