Communitygithub.com

video-translation

動画の音声を別の言語に翻訳し、TTSで吹き替え音声を生成して元の動画に合成します。

video-translation とは?

このスキルは、動画内の音声(台詞)を指定された言語に翻訳し、テキスト読み上げ(TTS)技術を使って吹き替え音声を生成し、元の動画ファイルの音声トラックと置き換えます。元の動画の画質や非音声部分の背景音はそのまま保持されるため、自然な視聴体験が得られます。主にYouTubeなどの動画共有プラットフォームを想定しており、ユーザーが動画URLと翻訳先言語を指定するだけで動作します。内部では、youtube-downloaderスキルによる字幕ダウンロード、TTSスキル(Noizバックエンド)によるタイムライン精度の吹き替え音声生成、そしてffmpegを用いた音声置き換えという一連のワークフローを自動実行します。制約として、元の動画にソース言語の字幕(または自動生成字幕)が利用可能である必要があります。また、非常に長い動画は処理に時間がかかる可能性があります。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/noizai/skills/tree/main/skills/video-translation

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

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

ドキュメント

動画翻訳

動画内の音声を別の言語に翻訳し、TTSで吹き替え音声を生成して元の音声トラックを置き換えます。

トリガー

  • この動画を翻訳して
  • この動画を英語に吹き替えて
  • 把视频从 X 语译成 Y 语(日本語版では使用しません)
  • 動画翻訳

ユースケース

  • ユーザーが外国語のYouTube動画を視聴したいが、母語で聴きたい場合。
  • ユーザーが動画リンクを提供し、音声言語の変更を明示的にリクエストする場合。

ワークフロー

ユーザーが動画の翻訳を依頼した場合:

  1. 動画と字幕をダウンロードする: youtube-downloader スキルを使って動画とその字幕をSRT形式でダウンロードします。正しい字幕を取得するため、ソース言語を指定してください。

    python path/to/youtube-downloader/scripts/download_video.py "VIDEO_URL" --subtitles --sub-lang <source_lang_code> -o /tmp/video-translation
    
  2. 字幕を翻訳する: ダウンロードした .srt ファイルを読み込み、以下の固定プロンプトを使用して、一文ごとにターゲット言語に翻訳します。SRTのインデックスとタイムスタンプ形式は完全に維持してください。

    翻訳プロンプト:

    以下の字幕テキストを<ソース言語>から<ターゲット言語>に翻訳してください。 翻訳テキストのみを出力してください。説明、注意書き、インデックス番号は追加しないでください。 翻訳は口語的で自然な響きにし、動画の吹き替えに適したものにしてください。

    翻訳結果を新しいファイル translated.srt として保存します。

  3. 吹き替え音声を生成する: tts スキルを使用して、翻訳されたSRTからタイムライン精度の音声をレンダリングします。Noizバックエンドが自動的に各文の長さを元の動画の字幕タイムスタンプに合わせます。

    各文に対してオリジナル話者の正確なトーンと感情を再現するため、元の動画ファイルを --ref-audio-track に渡してください。TTSエンジンが各字幕の正確なタイムスタンプで元の音声を自動的に切り出し、そのセグメントの参照として使用します。

    基本的な voice_map.json を作成します:

    {
      "default": {
        "target_lang": "<target_lang_code>"
      }
    }
    

    タイムライン精度の音声をレンダリングします:

    bash skills/tts/scripts/tts.sh render --srt translated.srt --voice-map voice_map.json --backend noiz --auto-emotion --ref-audio-track original_video.mp4 -o dubbed.wav
    
  4. 動画の音声を置き換える: replace_audio.sh スクリプトを使用して、元の動画と新しい吹き替え音声をマージします。翻訳されたセグメント以外の元の動画の非音声背景音を保持するため、--srt ファイルを渡します。

    bash skills/video-translation/scripts/replace_audio.sh --video original_video.mp4 --audio dubbed.wav --output final_video.mp4 --srt translated.srt
    
  5. 結果を提示する: ユーザーに final_video.mp4 ファイルのパスを返します。

入力

  • 必須入力:
    • VIDEO_URL: 翻訳する動画のURL。
    • target_language: 音声の翻訳先言語。
  • オプション入力:
    • source_language: 元の動画の言語(自動検出されない場合、または明示的に指定する場合)。
    • reference_audio: 動的な元の動画トラックの代わりに音声クローンに使用する特定の音声ファイル/URL。

出力

  • 成功: 音声が置き換えられた最終的な動画ファイルのパス。
  • 失敗: ダウンロード、TTS、または音声置き換えのどの段階で失敗したかを示す明確なエラーメッセージ。

要件

  • 依存関係(他のスキル)
    • youtube-downloader (crazynomad/skills) — SKILL.md
      インストール: crazynomad/skills から skills/youtube-downloader ディレクトリをクローンまたはコピーして、あなたの skills/ フォルダに配置し、skills/youtube-downloader/scripts/download_video.py が利用可能になるようにしてください。
    • tts (NoizAI/skills) — SKILL.md
      このリポジトリにまだない場合: NoizAI/skills から skills/tts ディレクトリをクローンまたはコピーして、あなたの skills/ フォルダに配置してください。skills/tts/scripts/tts.sh および関連スクリプトが存在することを確認してください。
  • NOIZ_API_KEY が Noiz バックエンド用に設定されていること。設定されていない場合は、まずユーザーに https://developers.noiz.ai/api-keys からAPIキーを取得するよう案内してください。ユーザーがキーを提供した後、それを永続化するかどうかを尋ねます。同意する場合は、プロジェクトの .env ファイルに NOIZ_API_KEY=... を書き込むか更新するか、bash skills/tts/scripts/tts.sh config --set-api-key YOUR_KEY を実行して保存します。
  • ffmpeg がインストールされていること。

制限事項

  • ソース動画には、対象のソース言語の字幕(または自動生成字幕)がプラットフォーム上で利用可能である必要があります。
  • 非常に長い動画の場合、翻訳と吹き替えにかなりの時間がかかる可能性があります。

Individual skills in this repo

This repo contains 6 individual skills — each has its own dedicated page.

関連スキル