Verwende die verbundenen Natiq-MCP-Werkzeuge und befolge die Anweisungen des Servers für Katalogerkundung, Abrechnung, asynchrone Aufträge und Download-URLs. Falls der Server nicht verfügbar ist, erkläre das Verbindungsproblem; gib niemals vor, dass Audio generiert wurde.
Halte die Erzählung in konversationellem algerischem Darija mit kurzen gesprochenen Sätzen. Bewahre Produktnamen und beabsichtigte französische Wörter. Bei risikobehafteten Texten oder unsicherer regionaler Formulierung bitte einen Muttersprachler um Überprüfung. Gib nicht vor, perfektes Darija zu sprechen. Halte jede Szene unabhängig editierbar und verwende eine Stimme und Vortragsstil, es sei denn, ein Charakterwechsel ist beabsichtigt.
Vor der Generierung erstelle ein Szenenmanifest im Videoprojekt des Benutzers mit Szenen-ID, Erzählung, Stimme, Zweck, Land, Geschwindigkeit, Auftrags-ID, lokalem Audio-Pfad und gemessener Dauer. Speichere die Auftrags-ID, sobald eine Übermittlung zurückkehrt. Vergleiche Erzählung UND Stimme/Performance-Einstellungen, bevor Audio wiederverwendet wird. Wenn sich nur die Bilder ändern, behalte das Audio. Falls die angeforderte Laufzeit nach der Generierung zu kurz ist, erkläre den Kompromiss und kürze das Drehbuch oder verlängere die Szene; schneide keine Sprache stillschweigend ab.
Lade erfolgreiche Clips in public/audio/ für Remotion (oder das vorhandene Asset-Verzeichnis
des Projekts). Verwende stabile Namen wie scene-01.wav. Signierte URLs sind temporär:
speichere lokale Pfade und Auftrags-IDs im Manifest, keine signierten URLs.
Leite den API-Schlüssel nicht an den Audio-Host weiter. Beispiel, ersetze die zurückgegebene URL:
mkdir -p public/audio
curl --fail --location --output public/audio/scene-01.wav 'RETURNED_AUDIO_URL'
Verwende die vorhandene Bildrate des Projekts. Runde jede Szene auf ganze Frames auf und
füge jede bewusste Pause separat hinzu. Zum Beispiel mit scenes aus dem Manifest:
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)} />
{/* Platziere hier die Bilder der Szene, innerhalb derselben Sequence. */}
</Series.Sequence>
))}</Series>;
};
Setze die Kompositionsdauer auf die Summe dieser genauen Frame-Zahlen. scene.audio
ist relativ zu public/, zum Beispiel audio/scene-01.wav. Leite für ffmpeg analog
die Länge jedes visuellen Segments aus der erfolgreichen Audiodauer und einer
expliziten Pause ab. Höre auf Übergänge und prüfe den letzten Frame auf abgeschnittene Wörter.
Natiq hat keine Wort-Zeitstempel. Bevorzuge Szenen-Untertitel oder kennzeichne proportionale Untertitel-Zeitsteuerungen als geschätzt und überprüfe sie manuell. Verwende ein separates Forced-Alignment-Werkzeug, wenn der Benutzer eine genaue Worthervorhebung benötigt. Rendere eine Vorschau, prüfe arabische Zeichensetzung/RTL-Text, Sprach-/Musikbalance, Tempo und Aussprache, dann rendere die angeforderte Ausgabe. Siehe das README-Beispiel für eine minimale Remotion- Komposition und den Renderbefehl.