Usa las herramientas MCP de Natiq conectadas y sigue las instrucciones del servidor para el descubrimiento del catálogo, facturación, trabajos asíncronos y URLs de descarga. Si el servidor no está disponible, explica el problema de conexión; nunca finjas que se generó el audio.
Mantén la narración en árabe dialectal argelino (Darija) conversacional, con frases habladas cortas. Conserva los nombres de productos y palabras francesas intencionales. Para textos de alto riesgo o frases regionales dudosas, solicita una revisión por parte de un hablante nativo. No afirmes que el Darija es perfecto. Mantén cada escena como una unidad independientemente editable, y mantén una sola voz y estilo de entrega a menos que se indique un cambio de personaje.
Antes de la generación, crea un manifiesto de escenas en el proyecto de vídeo del usuario que contenga: ID de escena, narración, voz, propósito, país, velocidad, ID del trabajo, ruta de audio local y duración medida. Guarda el ID del trabajo tan pronto como se reciba la respuesta de envío. Compara la narración Y la configuración de voz/rendimiento antes de reutilizar el audio. Si solo cambian los visuales, conserva el audio. Si el tiempo de ejecución solicitado es demasiado corto después de la generación, explica la compensación y acorta el guion o extiende la escena; no cortes el discurso en silencio.
Descarga los clips exitosos en public/audio/ para Remotion (o el directorio de activos existente
del proyecto). Usa nombres estables como scene-01.wav. Las URLs firmadas son temporales:
almacena rutas locales e IDs de trabajo en el manifiesto, no URLs firmadas.
No reenvíes la clave de API al host de audio. Ejemplo, sustituyendo la URL devuelta:
mkdir -p public/audio
curl --fail --location --output public/audio/scene-01.wav 'RETURNED_AUDIO_URL'
Usa la velocidad de fotogramas del proyecto existente. Redondea cada escena hacia arriba a fotogramas
completos y añade cualquier pausa deliberada por separado. Por ejemplo, con scenes del manifiesto:
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)} />
{/* Pon aquí los visuales de la escena, dentro de la misma Sequence. */}
</Series.Sequence>
))}</Series>;
};
Establece la duración de la composición como la suma de esos recuentos exactos de fotogramas.
scene.audio es relativo a public/, por ejemplo audio/scene-01.wav. Para ffmpeg, de manera
similar, deriva la longitud de cada segmento visual de la duración de audio exitosa y cualquier
pausa explícita. Escucha las transiciones y verifica el último fotograma para detectar palabras
cortadas.
Natiq no tiene marcas de tiempo por palabra. Prefiere subtítulos a nivel de escena, o etiqueta los tiempos de subtítulos proporcionales como estimados y revísalos manualmente. Usa una herramienta separada de alineación forzada si el usuario necesita un resaltado preciso de palabras. Genera una vista previa, comprueba la forma árabe/texto RTL, el balance voz/música, el ritmo y la pronunciación, luego renderiza la salida solicitada. Consulta el ejemplo del README para una composición y comando de renderizado mínimo de Remotion.