Vozes
Os caminhos dos scripts são relativos a este SKILL.md, e speak.py é executado a partir da pasta do filme. Esta etapa é opcional: gravações ou áudio de qualquer outra ferramenta também funcionam. Coloque-os em audio/voice/<id da linha>.wav ou defina file na linha.
Fale com a pessoa no idioma dela.
Configurar a chave (uma vez)
Os custos são debitados da conta da própria pessoa. Peça para ela executar isso no terminal dela:
python <pasta dula-start>/scripts/configure.py
No Claude Code, ela pode digitar ! python <caminho>/configure.py.
Nunca peça a chave na conversa, e nunca leia ou imprima ~/.dula-craft/config.env. Para verificar se uma chave está definida, use configure.py --status. Se alguém colar uma chave na conversa, diga para revogá-la no console e criar uma nova.
Projetar as vozes
Adicione voices no nível superior de config/film.json:
"voices": {
"mochi": {"desc": "Um menino de cerca de oito anos, alegre e vivo, ritmo rápido, respiração leve"},
"gran": {"desc": "Uma mulher de setenta anos, voz quente e levemente rouca, lenta, dicção muito clara"}
}
As linhas podem ter uma delivery:
{"id": "l03", "who": "mochi", "text": "S-sério?", "delivery": "Surpreso e encantado, um tremor na primeira palavra, subindo no final"}
Campos opcionais de voz: lang define o idioma (por padrão, o idioma da linha); speaker define um ID de voz oficial da Volcano; reference aponta para áudio de referência para o qual a pessoa tem direitos de uso.
Escreva desc e delivery em inglês ou no idioma das linhas. Descreva a própria voz: idade, tensão, respiração, ritmo e peso. Apenas "Feliz" não vai mudar uma voz. Não escreva "parece com determinado ator ou personagem" e não escolha vozes que imitem personagens conhecidos ou pessoas reais. Vozes também trazem riscos de semelhança e direitos autorais.
Gerar
python <esta pasta>/scripts/speak.py --dry-run # Veja os prompts sem gastar nada
python <esta pasta>/scripts/speak.py
A primeira linha de cada personagem se torna a referência de voz para as linhas seguintes, então ouça a primeira linha primeiro. Se não estiver correta, altere desc e refaça. Após alterar uma primeira linha, use --only para refazer as linhas seguintes daquele personagem para que sigam a nova voz.
Quando você alterar uma linha ou uma voz e executar novamente, apenas o que mudou é regenerado.
Ambiente e efeitos sonoros
python <esta pasta>/scripts/speak.py --sound "Um quarto velho e silencioso, um pássaro distante de vez em quando" --seconds 10 --out audio/sfx/quarto.wav
Sempre defina --seconds. A cobrança segue a duração, e sem ele um clipe pode durar 30 segundos ou mais. É aproximado, e solicitações muito curtas tendem a retornar mais longas. Clipes gerados costumam ser baixos, então dê aos sons da história um level_db em film.json (veja a referência de film.json).
Gere uma coisa de cada vez. Não peça um prompt para diálogo, efeitos e música juntos, ou você não conseguirá ajustar os níveis separadamente e os lábios ficarão errados.
Verifique o resultado
- Ouça se possível. Se não puder, diga à pessoa "este áudio não foi verificado auditivamente".
- Coisas que você pode fazer sozinho: verifique se as durações fazem sentido (5 segundos para uma linha curta é um problema). Se uma ferramenta de transcrição como Whisper estiver disponível, compare o texto dela com o roteiro. Palavras muito baixas podem estar faltando, o que é sinal para refazê-las.
deliveryé um pedido, não um controle exato. Durações de pausa em particular não são confiáveis, então encurte a linha ou regenere se o ritmo estiver errado.- O mesmo prompt dá um resultado diferente a cada vez, então regenere em caso de erros.
Problemas comuns
| Sintoma | Correção |
|---|---|
Chave rejeitada, ou Audio Generation 1.0 não está habilitado | Verifique se o serviço está ativado. A chave deve vir do console de fala, e chaves Ark não funcionam |
| Uma palavra é lida errada | Regenerar, ou reformular a linha |
| Linhas não soam como uma pessoa só | Certifique-se de que a primeira linha está correta, depois refaça as posteriores com --only, ou defina um speaker |
| O final de uma linha é cortado | Peça uma delivery mais lenta, ou regenere |