Crie um app web de texto em fala com Gradio
Uma pequena página onde você digita um texto e ouve numa voz natural é um primeiro projeto de IA clássico, uma ferramenta interna útil e uma boa demo de produto. O Gradio transforma uma função Python nessa página em poucas linhas, e o motor gratuito SuperClonica fornece a voz num processador comum.
Este guia mostra o app mínimo, como adicionar vozes e ajustes e como hospedá-lo de graça; a nossa própria demo no Hugging Face Spaces é feita exatamente assim.
O que você vai construir
Tudo roda dentro do seu processo Python: os textos não são enviados a nenhum serviço de fala.
- Uma caixa de texto, um seletor de voz e um player com botão de download.
- Dez vozes padrão e qualquer voz do catálogo que você tenha.
- Roda num notebook, num servidor ou numa CPU gratuita na nuvem.
- Sem placa de vídeo e sem API paga.
Ouça as vozes primeiro
Antes de programar, ouça as vozes nas páginas delas: escreva uma frase de 30 a 100 caracteres, escolha o idioma e clique no botão para gerar. Em poucos segundos você sabe quais vozes oferecer no app.
O app mínimo
A saída Audio do Gradio recebe um par de taxa de amostragem e array de áudio, então devolva (rate, audio) nessa ordem.
- Instale os dois pacotes: python -m pip install superclonica-cpu gradio.
- Escreva o app: import gradio as gr; from superclonica import Superclonica; tts = Superclonica(); def speak(text, voice): audio, rate = tts.synthesize(text, voice=voice, lang="pt"); return (rate, audio) — depois gr.Interface(fn=speak, inputs=[gr.Textbox(label="Text"), gr.Dropdown(["F1", "F2", "M1", "M2"], label="Voice")], outputs=gr.Audio()).launch().
- Rode o arquivo com Python e abra o endereço local que o Gradio mostra.
- Na primeira execução o modelo Supertonic 3 é baixado, cerca de 385 MB; depois ele inicia em segundos.
Vozes, velocidade e muitos usuários
Adicione vozes do catálogo passando o caminho de um arquivo de voz no lugar de F1 ou F2, e ofereça um menu de idiomas com os códigos dos 31 idiomas suportados. A velocidade muda no motor, por exemplo tts.speed = 1.1, de 0.7 a 2.0. Crie o motor uma vez no início do arquivo e, quando várias pessoas usarem o app ao mesmo tempo, envolva a chamada num threading lock para as requisições irem uma de cada vez.
Hospede grátis
O Hugging Face Spaces roda apps Gradio em CPU gratuita: coloque o arquivo num Space como app.py com um requirements.txt que liste superclonica-cpu, e o Space faz o build. A nossa própria demo da SuperClonica roda assim em dois núcleos de CPU compartilhados. Limite o tamanho do texto num app público e ofereça só vozes que você pode compartilhar: as vozes padrão são grátis sob a licença do modelo, enquanto vozes compradas no catálogo são para os seus próprios projetos.