Communitygithub.com

Natiq-studio/voiceover

アルジェリア・ダリジャ方言のナレーションを作成し、NatiqオーディオをRemotion、モーショングラフィックス、またはffmpegのビデオプロジェクトに統合します。動画にアルジェリア語のボイスオーバーが必要な場合や、既存のナレーションを修正する場合に使用します。

voiceover とは?

このスキルは、AIエージェントがNatiq MCPツールを使用してアルジェリア・ダリジャ方言のボイスオーバーを生成し、それをRemotion、モーショングラフィックス、またはffmpegベースのビデオプロジェクトに統合することを可能にします。カタログ検索、課金、非同期ジョブ、ダウンロードURLなどをサーバーの指示に従って処理します。サーバーが利用できない場合は、音声が生成されたふりをせずに接続問題を説明します。ナレーションは会話調のアルジェリア・ダリジャで、短い文章を使用し、製品名や意図的なフランス語単語は保持します。シーンごとに独立して編集可能なマニフェストを作成し、ジョブIDを保存し、生成後はローカルの`public/audio/`に安定したファイル名(例:`scene-01.wav`)でダウンロードします。Remotionでは`<Series>`と`<Series.Sequence>`を使用して各シーンの音声長さに合わせたフレーム数で構成し、ffmpegでも同様に処理します。Natiqには単語タイムスタンプがないため、シーンレベルのキャプションを使用するか、比例配分のキャプションタイミングを「推定」と明記します。プレビュー後、アラビア語の字形やRTLテキスト、声と音楽のバランス、発音を確認してから最終出力をレンダリングします。

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

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

接続されたNatiq MCPツールを使用し、カタログ検出、課金、非同期ジョブ、ダウンロードURLについてはサーバーの指示に従ってください。サーバーが利用できない場合は、接続の問題を説明し、音声が生成されたふりをしないでください。

ナレーションは会話調のアルジェリア・ダリジャで、短い話し言葉の文を使用してください。製品名や意図的なフランス語単語は保持してください。重要なコピーや地域特有の表現が不明な場合は、ネイティブスピーカーによるレビューを依頼してください。完璧なダリジャを主張しないでください。各シーンは独立して編集可能に保ち、意図的なキャラクター変更がない限り、声と配信スタイルは1つに統一してください。

生成前に、ユーザーのビデオプロジェクトにシーンマニフェストを作成し、シーンID、ナレーション、声、用途、国、速度、ジョブID、ローカル音声パス、測定された長さを含めてください。送信が返されたらすぐにジョブIDを保存してください。音声を再利用する前に、ナレーションと声/パフォーマンス設定の両方を比較してください。ビジュアルのみが変更された場合は、音声をそのまま保持してください。生成後に要求された実行時間が短すぎる場合は、トレードオフを説明し、スクリプトを短くするかシーンを延長してください。音声を勝手にカットしないでください。

成功したクリップは、Remotionの場合はpublic/audio/(またはプロジェクトの既存のアセットディレクトリ)にダウンロードしてください。scene-01.wavのような安定した名前を使用してください。署名付きURLは一時的です。署名付きURLではなく、ローカルパスとジョブIDをマニフェストに保存してください。APIキーを音声ホストに転送しないでください。例(返されたURLを置き換えて使用):

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

既存のプロジェクトのフレームレートを使用してください。各シーンを整数フレームに切り上げ、意図的なポーズは別途追加してください。たとえば、マニフェストのscenesを使用する場合:

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)} />
      {/* シーンのビジュアルをここに、同じSequence内に配置します。 */}
    </Series.Sequence>
  ))}</Series>;
};

コンポジションの長さは、これらの正確なフレーム数の合計に設定してください。scene.audioはpublic/からの相対パスです(例:audio/scene-01.wav)。ffmpegの場合も同様に、成功した音声の長さと明示的なポーズから各ビジュアルセグメントの長さを導出してください。トランジションを確認し、最終フレームで単語が切れていないかチェックしてください。

Natiqには単語タイムスタンプはありません。シーンレベルのキャプションを使用するか、比例配分のキャプションタイミングは推定としてラベル付けし、手動でレビューしてください。ユーザーが正確な単語のハイライトを必要とする場合は、別の強制アライメントツールを使用してください。プレビューをレンダリングし、アラビア語の字形/RTLテキスト、声と音楽のバランス、ペース、発音を確認してから、要求された出力をレンダリングしてください。最小限のRemotionコンポジションとレンダリングコマンドの例については、READMEの例を参照してください。

関連スキル