Narração de Voz com IA · Voice-over com edge-tts
Síntese frase a frase → remoção de silêncio → WAV 48 kHz → durations.json. Dessa forma, legendas e durações de cena são alinhadas com a narração real – sem mais dessincronização.
Parte de ecommerce-video-skills · Script:
scripts/tts_edge.py(dependências apenasedge-tts+ ffmpeg)
Entradas Inputs
- Roteiro de narração (uma frase por linha, ou campo
linedostoryboard.json) - Idioma / preferência de tom (masculino/feminino, animado/sério), velocidade
- Ambiente:
pip install edge-tts, ffmpeg, rede com acesso ao serviço TTS da Microsoft
Passos Steps
-
Reescreva o roteiro para ser "bem lido" (veja regras), com 8–20 caracteres por frase.
-
Escolha o tom (
python scripts/tts_edge.py --list zh-CNpara ver todos):Cenário Tom Recomendado Entusiasmo/Produto (masculino) zh-CN-YunxiNeuralEntusiasmo Amigável (feminino) zh-CN-XiaoxiaoNeural/zh-CN-XiaoyiNeuralPromoção Intensa zh-CN-YunjianNeuralExplicação Profissional zh-CN-YunyangNeuralTaiwan / Hong Kong zh-TW-HsiaoChenNeural/zh-HK-HiuMaanNeuralEnglish en-US-AndrewNeural·en-US-AvaNeural·en-US-EmmaNeural -
Sintetize:
pip install edge-tts # Teste uma frase python scripts/tts_edge.py "Saiu de casa com água gelada e antes do meio-dia já está morna?" --voice zh-CN-YunxiNeural --rate "+10%" -o out/hook.wav # Storyboard completo (uma frase por cena → build/tts/l00.wav … + durations.json) python scripts/tts_edge.py --storyboard storyboard.json --outdir build/tts -
Teste 2 frases antes de processar tudo: velocidade
+5%~+15%soa mais natural para narração de vendas; acima de+20%parece apressado. -
Passe para
ffmpeg-auto-assemble(que chamará este script automaticamente) ou para seu software de edição.
Regras de Reescrita do Roteiro Script rules
- Escreva números como são lidos:
2 núcleos 8G→dois núcleos oito G;24h→vinte e quatro horas; em siglas, insira espaços entre letrasA I. Legenda pode manter a grafia original (camposub). - Cada frase deve dizer uma única coisa; vírgula é ponto de respiração, ponto final ou interrogação para dar entonação natural.
- Elimine termos formais: "Este produto possui…" → "Este copo…".
- Se uma marca em inglês for lida errada, escreva a pronúncia fonética ou aproximada no
line, enquantosubmantém a grafia correta.
Template de Prompt Prompt template
Reescreva o texto promocional abaixo para narração TTS: cada frase com 8–20 caracteres, uma ideia por frase, linguagem coloquial;
números e letras escritos como são lidos; além disso, produza uma coluna "Legenda" mantendo a grafia original e **negrito** em 1 palavra-chave.
Não adicione argumentos de venda ou dados que não estejam no original. Original: {…}
Lista de Verificação Checklist
- Teste 2 frases para confirmar tom/velocidade
- Pronúncia correta de números, inglês, nomes de marcas
-
durations.jsongerado, duração total dentro do esperado - Antes de uso comercial, verifique exigências de rotulagem de áudio gerado por IA na plataforma/região (ex: exigir marcador "Gerado por IA")
Problemas Comuns e Correções Failure fixes
| Problema | Correção |
|---|---|
edge-tts failed / timeout | Problema de rede; script já tenta 3 vezes; troque de rede ou tente mais tarde; offline use assemble.py --tts none para pré-visualizar vídeo |
| Pronúncia errada | Escreva pronúncia fonética/aproximada no line, sub mantém original |
| Pausa longa entre frases | Remoção automática de silêncio já aplicada; ajuste pad do storyboard (padrão 0.25s) |
| Voz monótona | Troque para YunjianNeural/XiaoyiNeural; --pitch "+5Hz"; termine frases com ?/! |
| Necessidade de voz humana | edge-tts é sintetizada; para alta exigência, use gravação real – pipeline funciona igual (coloque áudio em build/tts/lXX.wav) |
O edge-tts é mantido pela comunidade (rany2/edge-tts, LGPL-3.0), chamando serviços online da Microsoft; este repositório apenas o instala como dependência, sem incluir seu código.