Communitygithub.com

Natiq-studio/voiceover

Créez des narrations en darija algérienne et intégrez l'audio Natiq dans des projets Remotion, motion graphics ou ffmpeg.

Qu'est-ce que voiceover ?

Cette compétence permet de générer des voix off en darija algérien (Natiq) et de les intégrer directement dans des projets vidéo comme Remotion, des animations motion graphics ou des montages ffmpeg. Elle est idéale lorsque vous avez besoin d'une narration locale algérienne pour une vidéo ou que vous souhaitez réviser une narration existante. La compétence utilise les outils MCP connectés de Natiq pour la découverte de catalogue, la facturation, les tâches asynchrones et les URLs de téléchargement. Elle insiste sur la conservation d'un style de narration conversationnel en darija algérien, avec des phrases courtes, tout en préservant les noms de produits et les mots français intentionnels. Avant la génération, elle crée un manifeste des scènes contenant l'identifiant, la narration, la voix, le but, le pays, la vitesse, l'ID de tâche, le chemin audio local et la durée mesurée, puis télécharge les clips réussis dans un répertoire dédié (par exemple `public/audio/`). Elle prend également en charge la gestion des pauses, l'arrondi des scènes à des durées entières d'images et la vérification des transitions et du cadrage final pour éviter les mots coupés.

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

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Utilisez les outils MCP connectés de Natiq et suivez les instructions du serveur pour la découverte du catalogue, la facturation, les tâches asynchrones et les URLs de téléchargement. Si le serveur est indisponible, expliquez le problème de connexion ; ne prétendez jamais que l'audio a été généré.

Gardez la narration conversationnelle en darija algérien, avec des phrases parlées courtes. Préservez les noms de produits et les mots français intentionnels. Pour les contenus à enjeux élevés ou les formulations régionales incertaines, demandez une relecture par un locuteur natif. Ne revendiquez pas un darija parfait. Gardez chaque scène modifiable indépendamment, et conservez une seule voix et un seul style de rendu, sauf si un changement de personnage est intentionnel.

Avant la génération, créez un manifeste des scènes dans le projet vidéo de l'utilisateur contenant l'ID de scène, la narration, la voix, le but, le pays, la vitesse, l'ID de tâche, le chemin audio local et la durée mesurée. Enregistrez l'ID de tâche dès qu'une soumission est retournée. Comparez la narration ET les réglages de voix/performance avant de réutiliser un audio. Si seuls les visuels changent, conservez l'audio. Si la durée demandée est trop courte après génération, expliquez le compromis et raccourcissez le script ou prolongez la scène ; ne coupez pas la parole en silence.

Téléchargez les clips réussis dans public/audio/ pour Remotion (ou le répertoire d'actifs existant du projet). Utilisez des noms stables comme scene-01.wav. Les URLs signées sont temporaires : stockez les chemins locaux et les ID de tâche dans le manifeste, pas les URLs signées. Ne transmettez pas la clé API à l'hôte audio. Exemple, en substituant l'URL retournée :

mkdir -p public/audio
curl --fail --location --output public/audio/scene-01.wav 'RETURNED_AUDIO_URL'

Utilisez la fréquence d'images du projet existant. Arrondissez chaque scène à des images entières et ajoutez toute pause intentionnelle séparément. Par exemple, avec scenes du manifeste :

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)} />
      {/* Mettez ici les visuels de la scène, à l'intérieur de la même Sequence. */}
    </Series.Sequence>
  ))}</Series>;
};

Définissez la durée de la composition sur la somme de ces nombres exacts d'images. scene.audio est relatif à public/, par exemple audio/scene-01.wav. Pour ffmpeg, dérivez de même la longueur de chaque segment visuel à partir de la durée audio réussie et de toute pause explicite. Écoutez les transitions et vérifiez la dernière image pour les mots coupés.

Natiq n'a pas d'horodatages de mots. Privilégiez les légendes au niveau de la scène, ou étiquetez les minutages proportionnels des légendes comme estimés et révisez-les manuellement. Utilisez un outil d'alignement forcé séparé si l'utilisateur a besoin d'un surlignage précis des mots. Rendez un aperçu, vérifiez la forme arabe/texte RTL, l'équilibre voix/musique, le rythme et la prononciation, puis rendez la sortie demandée. Référez-vous à l'exemple du README pour une composition Remotion minimale et une commande de rendu.

Skills associés