Communitygithub.com

视频翻译与配音

将视频中的语音翻译成另一种语言,使用文本转语音生成配音音频,同时保持原始视频画面不变。

视频翻译与配音 是什么?

该技能能够自动下载视频及其字幕,逐句翻译字幕内容为指定目标语言,并利用 TTS 引擎生成与原始时间轴精确对齐的配音音频。它支持通过 `youtube-downloader` 技能获取视频和字幕,依靠 `tts` 技能(基于 Noiz 后端)实现高质量语音克隆和情感匹配,最终通过 `replace_audio.sh` 脚本将新音频无缝替换到视频中,同时保留原始视频的非语音背景音。此技能尤其适用于观看外语 YouTube 视频时希望以母语收听的需求,支持自定义源语言和目标语言,并能通过 `--ref-audio-track` 参数动态提取每个字幕段落的原始人声作为克隆参考,确保语气和情感一致。目前该技能主要针对 YouTube 视频,需要视频平台提供源语言字幕,处理超长视频可能需要较长时间。

兼容平台✓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:要翻译的视频的 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。

限制

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

Individual skills in this repo

This repo contains 6 individual skills — each has its own dedicated page.

相关技能