video-localization について
Video Localization は、each::sense を使って動画を他言語の視聴者向けに調整するチームのためのスキルです。吹き替え、音声クローン、リップシンク、字幕生成を一連のローカライズ作業にまとめます。
主な機能
- 01動画音声の翻訳と吹き替え
- 02話者の声のクローン生成
- 03口の動きの同期
- 04原文または翻訳字幕の生成
- 05複数言語版の作成
活用シーン
- 01動画を他言語に吹き替え
- 02地域別のマーケティング動画制作
- 03研修・Eラーニング動画の翻訳
- 04世界向け YouTube 動画の準備
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ eachlabs/ skills --skill video-localizationインストール後、Claude Code で/video-localizationを入力して読み込まれたか確認します。
同梱ファイルreferences/SSE-EVENTS.md
詳細
動画のローカライズ
each::sense を使用して、動画を複数の言語にローカライズし、吹き替えます。このスキルは、世界中のユーザーにコンテンツを配信するための音声翻訳、音声クローニング、リップシンク、字幕生成に対応しています。
主な機能
- AI 吹き替え:動画の音声を任意の言語に翻訳して吹き替えます
- 音声クローニング:言語が変わっても話者のアイデンティティを維持します
- リップシンク:翻訳音声に合わせて唇の動きを同期させます
- 字幕生成:原文または翻訳先の言語で字幕を自動生成します
- 多言語版の作成:複数の市場向けにローカライズ版を作成します
- マーケティングコンテンツのローカライズ:地域の視聴者に合わせて広告コンテンツを調整します
- E ラーニングの翻訳:研修・教育コンテンツを翻訳します
- YouTube のローカライズ:動画を海外の視聴者向けに準備します
クイックスタート
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Dub this English video into Spanish with lip sync"}],
"model": "eachsense/beta",
"stream": true,
"mode": "max",
"video_urls": ["https://example.com/my-video.mp4"]
}'
対応言語
| 言語 | コード | 吹き替え | 字幕 | 音声クローニング |
|---|---|---|---|---|
| 英語 | en | はい | はい | はい |
| スペイン語 | es | はい | はい | はい |
| フランス語 | fr | はい | はい | はい |
| ドイツ語 | de | はい | はい | はい |
| イタリア語 | it | はい | はい | はい |
| ポルトガル語 | pt | はい | はい | はい |
| 中国語 | zh | はい | はい | はい |
| 日本語 | ja | はい | はい | はい |
| 韓国語 | ko | はい | はい | はい |
| ヒンディー語 | hi | はい | はい | はい |
| アラビア語 | ar | はい | はい | はい |
ユースケースの例
1. 英語からスペイン語への吹き替え
自然な音声合成による基本的な吹き替えです。
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Translate and dub this English video into Spanish. Use a natural-sounding voice that matches the original speaker tone and energy."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max",
"video_urls": ["https://example.com/english-video.mp4"]
}'
2. リップシンク付き動画翻訳
プロフェッショナルな仕上がりを実現する、唇の動きの同期を含む完全なローカライズです。
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Translate this video from English to French with full lip sync. The lip movements should match the French audio perfectly. Maintain the original background music and sound effects."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max",
"video_urls": ["https://example.com/presentation-video.mp4"]
}'
3. 字幕生成
原文または翻訳先の言語で正確な字幕を生成します。
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Generate subtitles for this video. First transcribe the English audio, then create Spanish subtitles. Output both SRT files and a video with burned-in Spanish subtitles."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max",
"video_urls": ["https://example.com/interview.mp4"]
}'
4. 動画の多言語版
1 つのワークフローで、複数の市場向けにローカライズ版を作成します。
# Start multi-language localization session
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "I need to localize this product video into Spanish, French, and German. Start with Spanish dubbing with lip sync."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max",
"session_id": "localization-project-001",
"video_urls": ["https://example.com/product-demo.mp4"]
}'
# Continue with French version
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Now create the French version with the same quality settings."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max",
"session_id": "localization-project-001"
}'
# Continue with German version
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Finally, create the German version."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max",
"session_id": "localization-project-001"
}'
5. 吹き替え用の音声クローニング
吹き替え版でも元の話者の声の特徴を維持します。
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Dub this video from English to Japanese using voice cloning. Clone the original speaker voice so they sound like themselves speaking Japanese. Maintain their unique voice characteristics, tone, and speaking style."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max",
"video_urls": ["https://example.com/ceo-message.mp4"]
}'
6. マーケティング動画のローカライズ
文化的な配慮を踏まえて、地域の視聴者に合わせてマーケティングコンテンツを調整します。
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Localize this marketing video for the Latin American market. Translate to Spanish with a neutral Latin American accent, not Spain Spanish. Apply lip sync and ensure the messaging resonates with the target audience. Keep the energy and excitement of the original."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max",
"video_urls": ["https://example.com/brand-ad.mp4"]
}'
7. 研修動画の翻訳
企業研修や教育コンテンツを翻訳します。
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Translate this employee training video from English to Mandarin Chinese. Use clear, professional narration suitable for corporate training. Include both dubbed audio and Chinese subtitles for accessibility. Technical terms should be accurately translated."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max",
"video_urls": ["https://example.com/onboarding-training.mp4"]
}'
8. YouTube 動画のローカライズ
海外の YouTube 視聴者向けにコンテンツを準備します。
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Localize this YouTube video for Portuguese-speaking audiences (Brazilian Portuguese). Dub the narration with lip sync, generate Portuguese subtitles in SRT format, and create a localized thumbnail with Portuguese text overlay."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max",
"video_urls": ["https://example.com/youtube-tutorial.mp4"]
}'
9. 広告クリエイティブのローカライズ
地域ごとの市場に合わせて広告コンテンツを調整します。
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Localize this 30-second ad for the German market. Translate and dub to German with lip sync. Ensure the call-to-action is culturally appropriate. Keep the same pacing and emotional impact as the original English version."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max",
"video_urls": ["https://example.com/product-ad-30s.mp4"]
}'
10. E ラーニングコンテンツの翻訳
教育コースや教材を翻訳します。
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Translate this e-learning module from English to Korean. The instructor should be dubbed with voice cloning to maintain authenticity. Generate Korean subtitles and ensure all on-screen text references are noted for manual localization. Educational terminology must be accurately translated."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max",
"video_urls": ["https://example.com/course-module-1.mp4"]
}'
ベストプラクティス
動画の品質
- ソースの品質:高品質なソース動画を使用してください(1080p 以上を推奨)
- 明瞭な音声:背景ノイズを最小限に抑え、ソース音声が明瞭であることを確認してください
- 単独の話者:話者が 1 人のコンテンツで最良の結果が得られます。複数の話者がいる場合は、より多くの処理が必要です
吹き替えのヒント
- 自然な話速:AI が唇の動きに合うように話速を調整します
- 感情の維持:翻訳でも元の感情的なトーンが維持されます
- 背景音声:元の音楽や効果音は維持されます
リップシンクの最適化
- 顔の見えやすさ:話者の顔がはっきり見えるようにしてください
- 安定した照明:顔が十分に照らされていると、リップシンクの結果が向上します
- 正面向き:正面向き、またはわずかに角度をつけたショットで最良の結果が得られます
字幕作成のベストプラクティス
- 読書速度:字幕は無理なく読める速度で表示されます
- 改行:読みやすいように適切に分割されます
- タイミングの同期:音声やシーンの切り替わりと正確に同期します
モードの選択
ニーズに応じて適切なモードを選択してください。
| モード | 最適な用途 | 速度 | 品質 |
|---|---|---|---|
max | 最終制作、クライアントへの納品、放送 | 遅い | リップシンクと音声の品質が最も高い |
eco | 下書き、社内レビュー、クイックプレビュー | 速い | 良好な品質で、処理も速い |
推奨:初回レビューには eco モードを使用し、最終納品には max モードを使用してください。
複数ターンのローカライズワークフロー
session_id を使用して、ローカライズプロジェクトを反復的に進めます。
# Initial localization request
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Dub this video into Spanish with lip sync"}],
"model": "eachsense/beta",
"stream": true,
"session_id": "dubbing-project-xyz",
"video_urls": ["https://example.com/source-video.mp4"]
}'
# Request adjustments based on review
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "The voice sounds too formal. Can you make it more conversational and energetic?"}],
"model": "eachsense/beta",
"stream": true,
"session_id": "dubbing-project-xyz"
}'
# Add subtitles to the approved version
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Add Spanish subtitles to this dubbed version"}],
"model": "eachsense/beta",
"stream": true,
"session_id": "dubbing-project-xyz"
}'
バッチローカライズ
複数の動画や言語を効率よく処理します:
# Use eco mode for batch processing drafts
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Create Spanish dubbed versions of these 3 marketing videos with subtitles"}],
"model": "eachsense/beta",
"stream": true,
"mode": "eco",
"video_urls": [
"https://example.com/video1.mp4",
"https://example.com/video2.mp4",
"https://example.com/video3.mp4"
]
}'
エラー処理
| エラー | 原因 | 解決策 |
|---|---|---|
Failed to create prediction: HTTP 422 | 残高不足 | eachlabs.ai でチャージしてください |
Video too long | 元動画が制限を超えています | 短いセグメントに分割してください |
Audio not detected | 動画に音声がありません | 動画に音声が含まれていることを確認してください |
Face not detected | リップシンクに使える顔が見つかりません | 話者が映っている動画を使用してください |
| タイムアウト | 生成処理が複雑です | クライアントのタイムアウトを最低 10 分に設定してください |
技術的な注意事項
- クライアントのタイムアウト:動画処理では、HTTP クライアントのタイムアウトを最低 10 分に設定してください
- 動画の長さ:最良の結果を得るには、1 セグメントあたり 10 分未満が最適です
- 出力形式:生成される動画は、H.264 エンコーディングの MP4 です
- 字幕形式:字幕出力には SRT ファイルが提供されます
関連スキル
each-sense- コア API ドキュメントvideo-generation- オリジナルの動画コンテンツを作成しますvideo-edit- 動画を編集、補正しますvoice-audio- 音声合成と音声生成
コメント
Markdown 対応