動画翻訳
動画内の音声を別の言語に翻訳し、TTSで吹き替え音声を生成して元の音声トラックを置き換えます。
トリガー
- この動画を翻訳して
- この動画を英語に吹き替えて
- 把视频从 X 语译成 Y 语(日本語版では使用しません)
- 動画翻訳
ユースケース
- ユーザーが外国語のYouTube動画を視聴したいが、母語で聴きたい場合。
- ユーザーが動画リンクを提供し、音声言語の変更を明示的にリクエストする場合。
ワークフロー
ユーザーが動画の翻訳を依頼した場合:
-
動画と字幕をダウンロードする:
youtube-downloaderスキルを使って動画とその字幕をSRT形式でダウンロードします。正しい字幕を取得するため、ソース言語を指定してください。python path/to/youtube-downloader/scripts/download_video.py "VIDEO_URL" --subtitles --sub-lang <source_lang_code> -o /tmp/video-translation -
字幕を翻訳する: ダウンロードした
.srtファイルを読み込み、以下の固定プロンプトを使用して、一文ごとにターゲット言語に翻訳します。SRTのインデックスとタイムスタンプ形式は完全に維持してください。翻訳プロンプト:
以下の字幕テキストを<ソース言語>から<ターゲット言語>に翻訳してください。 翻訳テキストのみを出力してください。説明、注意書き、インデックス番号は追加しないでください。 翻訳は口語的で自然な響きにし、動画の吹き替えに適したものにしてください。
翻訳結果を新しいファイル
translated.srtとして保存します。 -
吹き替え音声を生成する:
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 -
動画の音声を置き換える:
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 -
結果を提示する: ユーザーに
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および関連スクリプトが存在することを確認してください。
- youtube-downloader (crazynomad/skills) — SKILL.md
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がインストールされていること。
制限事項
- ソース動画には、対象のソース言語の字幕(または自動生成字幕)がプラットフォーム上で利用可能である必要があります。
- 非常に長い動画の場合、翻訳と吹き替えにかなりの時間がかかる可能性があります。