DEV Community

Cover image for Narração em português grátis e offline com Piper (Python)
Nuvem Dev
Nuvem Dev

Posted on

Narração em português grátis e offline com Piper (Python)

Você não precisa de API paga pra narrar vídeo em português. O Piper roda local. Testei os comandos abaixo no Linux, Python 3.12, sem GPU.

1. Instalar

pip install piper-tts
python3 -m piper.download_voices pt_BR-faber-medium
Enter fullscreen mode Exit fullscreen mode

Isso baixa pt_BR-faber-medium.onnx e o .json de configuração pra pasta atual.

2. Gerar um áudio

echo "Olá, essa é uma narração gerada offline." > t.txt
python3 -m piper -m pt_BR-faber-medium.onnx -i t.txt -f t.wav
Enter fullscreen mode Exit fullscreen mode

Uma frase curta levou cerca de 3 segundos aqui, CPU comum. O --length-scale 1.1 deixa a fala um pouco mais lenta.

3. Narrar uma pasta de roteiros

Um .txt por cena dentro de roteiro/:

import subprocess, pathlib

MODELO = "pt_BR-faber-medium.onnx"
for i, arq in enumerate(sorted(pathlib.Path("roteiro").glob("*.txt")), 1):
    saida = f"narracao_{i:02d}.wav"
    subprocess.run(["python3", "-m", "piper", "-m", MODELO,
                    "-i", str(arq), "-f", saida], check=True)
    print(arq.name, "->", saida)
Enter fullscreen mode Exit fullscreen mode

Saída que obtive com dois roteiros de teste:

a.txt -> narracao_01.wav
b.txt -> narracao_02.wav
Enter fullscreen mode Exit fullscreen mode

4. Juntar com o vídeo (ffmpeg)

ffmpeg -i video.mp4 -i narracao_01.wav -map 0:v -map 1:a -c:v copy -c:a aac -shortest final.mp4
Enter fullscreen mode Exit fullscreen mode

Limites honestos

A voz é clara, mas menos expressiva que serviços pagos. Pra tutorial e conteúdo informativo funciona bem. Pra anúncio emocional, teste um serviço pago, como o ElevenLabs (https://go.nowto.link/elevenlabs). Pela página de preços, o plano grátis deles não tem licença comercial; o Starter, que tem, custa US$ 6 por mês.

Newsletter completa: https://nuvemdev.substack.com

Divulgação: o link do ElevenLabs é de afiliado; posso ganhar comissão sem custo extra pra você.

Top comments (0)