mcpField
V
video-translation

video-translation

github.com/noizai创意与媒体5312.0k 次安装4 周前更新
代码仓库

关于 video-translation

video-translation 可翻译视频语音、生成配音并替换原音轨,适合需要目标语言配音的场景。它通过字幕时间戳对齐 TTS,并可保留翻译片段之外的非语音背景音。

主要功能

  1. 01下载视频和字幕
  2. 02逐句翻译字幕
  3. 03按时间轴对齐 TTS 配音
  4. 04使用参考音频克隆声音
  5. 05合并配音与视频

适用场景

  1. 01以配音观看外语视频
  2. 02将视频链接内容译成目标语言
  3. 03保留翻译片段之外的背景音

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/noizai/skills --skill video-translation

安装后在 Claude Code 中输入/video-translation确认已加载。

附带文件scripts/replace_audio.shscripts/srt_to_duck.py

详细介绍

视频翻译

将视频中的语音翻译成另一种语言,使用 TTS 生成配音,并替换原音轨。

触发语

  • 翻译这个视频
  • 给这个视频配英语音
  • 把视频从 X 语译成 Y 语
  • 视频翻译

使用场景

  • 用户想观看外语 YouTube 视频,但更希望听到母语配音。
  • 用户提供视频链接,并明确要求更改音频语言。

工作流

用户要求翻译视频时:

  1. 下载视频和字幕: 使用 youtube-downloader skill 下载视频及其 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 skill,根据翻译后的 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 后端配置 NOIZ_API_KEY。如果尚未设置,先引导用户前往 https://developers.noiz.ai/api-keys 获取 API 密钥。用户提供密钥后,询问他们是否希望持久保存;如果同意,可以在项目的 .env 文件中写入或更新 NOIZ_API_KEY=...,也可以运行 bash skills/tts/scripts/tts.sh config --set-api-key YOUR_KEY 进行保存。
  • 已安装 ffmpeg。

限制

  • 平台上必须提供源视频的字幕(或自动生成的字幕),且字幕语言必须与源语言一致。
  • 翻译和配音很长的视频可能需要大量时间。

评论

支持 Markdown