影片翻譯
將影片中的語音翻譯成另一種語言,使用 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:要翻譯的影片網址。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及相關腳本存在。
- youtube-downloader (crazynomad/skills) — SKILL.md
安裝:從 crazynomad/skills 複製或 clone
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。
限制
- 來源影片必須在該平台上具備可用的字幕(或自動產生字幕),且為來源語言。
- 非常長的影片可能需要花費大量時間進行翻譯與配音。