Communitygithub.com

video-translation

翻譯並配音影片,將原始音軌替換為 TTS 生成的配音,同時保留影片內容不變。

video-translation 是什麼?

這項技能可將影片中的語音翻譯成另一種語言,並使用文字轉語音(TTS)技術生成配音音軌,取代原始音訊。使用者只需提供影片連結與目標語言,技能便會自動下載影片與字幕、逐句翻譯字幕內容、產生與時間軸同步的配音音檔,最後將配音與原始影片合併,保留非語音的背景音。此技能支援 YouTube 等平台的影片,並可選用原片語者語音進行語音克隆,以維持語氣與情感的一致性。它依賴 youtube-downloader 與 tts 兩個外部技能,並需設定 NOIZ_API_KEY 與安裝 ffmpeg。適合想用母語觀看外語影片的使用者,但源影片必須具備可用的字幕。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/noizai/skills/tree/main/skills/video-translation

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

影片翻譯

將影片中的語音翻譯成另一種語言,使用 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:要翻譯的影片網址。
    • target_language:要將音訊翻譯成的語言。
  • 選擇性輸入:
    • source_language:原始影片的語言(若未自動偵測或指定時使用)。
    • reference_audio:用於語音克隆的特定音訊檔案/網址,以取代動態的原始影片音軌。

輸出

  • 成功:最終影片檔案(含替換音訊)的路徑。
  • 失敗:明確的錯誤訊息,指出下載、TTS 或音訊替換哪個步驟失敗。

需求

  • 依賴項目(其他技能)
    • youtube-downloader (crazynomad/skills) — SKILL.md 安裝:從 crazynomad/skills 複製或 clone skills/youtube-downloader 目錄到您的 skills/ 資料夾中,確保 skills/youtube-downloader/scripts/download_video.py 可用。
    • tts (NoizAI/skills) — SKILL.md 若此儲存庫中尚未包含:從 NoizAI/skills 複製或 clone 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.

相關技能