Use as ferramentas MCP do Natiq conectadas e siga as instruções do servidor para descoberta de catálogo, faturamento, jobs assíncronos e URLs de download. Se o servidor estiver indisponível, explique o problema de conexão; nunca finja que o áudio foi gerado.
Mantenha a narração em Darija argelina com tom de conversa e frases curtas e faladas. Preserve nomes de produtos e palavras em francês intencionais. Para conteúdo de alto risco ou fraseado regional incerto, peça uma revisão de um falante nativo. Não afirme que o Darija é perfeito. Mantenha cada cena editável de forma independente, e mantenha uma única voz e estilo de entrega, a menos que uma mudança de personagem seja intencional.
Antes da geração, crie um manifesto de cenas no projeto de vídeo do usuário contendo: ID da cena, narração, voz, propósito, país, velocidade, ID do job, caminho local do áudio e duração medida. Salve o ID do job assim que uma submissão retornar. Compare a narração E as configurações de voz/performance antes de reutilizar áudio. Se apenas os visuais mudarem, mantenha o áudio. Se o tempo solicitado for muito curto após a geração, explique o tradeoff e encurte o roteiro ou estenda a cena; não corte a fala silenciosamente.
Baixe os clipes bem-sucedidos para public/audio/ no Remotion (ou o diretório de
esse projeto onde os assets já existem). Use nomes estáveis como scene-01.wav. URLs
assinadas são temporárias: armazene caminhos locais e IDs de job no manifesto, não URLs
assinadas. Não encaminhe a chave de API para o host de áudio. Exemplo, substituindo a URL retornada:
mkdir -p public/audio
curl --fail --location --output public/audio/scene-01.wav 'RETURNED_AUDIO_URL'
Use a taxa de quadros existente do projeto. Arredonde cada cena para cima, para quadros
inteiros, e adicione qualquer pausa deliberada separadamente. Por exemplo, com scenes do manifesto:
import {Html5Audio, Series, staticFile, useVideoConfig} from 'remotion';
export const Narration = ({scenes}) => {
const {fps} = useVideoConfig();
return <Series>{scenes.map(scene => (
<Series.Sequence key={scene.id}
durationInFrames={Math.ceil(scene.duration_seconds * fps) + scene.pauseFrames}>
<Html5Audio src={staticFile(scene.audio)} />
{/* Coloque os visuais da cena aqui, dentro da mesma Sequence. */}
</Series.Sequence>
))}</Series>;
};
Defina a duração da composição como a soma dessas contagens exatas de quadros. scene.audio
é relativo a public/, por exemplo audio/scene-01.wav. Para ffmpeg, da mesma forma,
derive o comprimento de cada segmento visual a partir da duração bem-sucedida do áudio e de
qualquer pausa explícita. Ouça as transições e verifique o quadro final quanto a palavras cortadas.
Natiq não tem timestamps de palavras. Prefira legendas em nível de cena, ou rotule temporizações proporcionais de legendas como estimadas e revise-as manualmente. Use uma ferramenta de alinhamento forçado separada se o usuário precisar de destaque preciso de palavras. Renderize uma prévia, verifique a formatação árabe/texto RTL, equilíbrio voz/música, ritmo e pronúncia, depois renderize a saída solicitada. Consulte o README de exemplo para uma composição Remotion mínima e comando de renderização.