Communitygithub.com

Natiq-studio/voiceover

Erstelle algerisch-darija Sprachaufnahmen und integriere Natiq-Audio in Remotion-, Motion-Graphics- oder ffmpeg-Videoprojekte. Verwende dies, wenn ein Video eine algerische Sprachausgabe benötigt oder eine vorhandene Erzählung überarbeitet werden muss.

Was ist voiceover?

Diese Fähigkeit ermöglicht es einem KI-Agenten, über die Natiq-MCP-Schnittstelle algerisch-darija Sprachaufnahmen zu generieren und nahtlos in Videoprojekte mit Remotion, Motion Graphics oder ffmpeg zu integrieren. Sie behandelt die gesamte Pipeline: Katalogerkundung, Abrechnung, asynchrone Aufträge und Abruf von Download-URLs. Der Agent erstellt ein Szenenmanifest mit Audio-Pfaden und -Dauern, lädt erfolgreiche Clips in `public/audio/` herunter und verwendet stabile Dateinamen wie `scene-01.wav`. In Remotion wird die Sprachausgabe über `Html5Audio` und `Series.Sequence` gerendert, wobei Szenen auf ganze Frames aufgerundet werden. Die Fähigkeit legt Wert auf natürliches gesprochenes Darija mit kurzen Sätzen, bewahrt Markennamen und französische Begriffe und vermeidet es, perfektes Darija vorzutäuschen. Sie enthält Sicherheitsvorkehrungen: Temporäre signierte URLs werden nicht dauerhaft gespeichert, Auftrags-IDs werden sofort nach der Übermittlung gespeichert, und vor der Wiederverwendung von Audio werden Erzählung UND Stimme/Performance-Einstellungen verglichen. Wenn das generierte Audio zu kurz ist, wird der Kompromiss erklärt, anstatt stillschweigend Sprache zu kürzen. Wort-Zeitstempel werden nicht unterstützt; Szenen-Untertitel werden bevorzugt, oder proportionale Zeitstempel werden als geschätzt gekennzeichnet. Der Agent renderiert eine Vorschau, prüft arabische Schriftzeichen/RTL-Text, Stimme/Musik-Balance, Tempo und Aussprache, bevor er die endgültige Ausgabe liefert.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Natiq-studio/natiq-voiceover/tree/HEAD/skills/voiceover

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

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.

Verwandte Skills