Auto-Synced-Translated-Dubs
基于字幕文件的 AI 配音合成工具,自动翻译 + TTS 生成多语言配音,与原视频完美同步
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
基于字幕文件的 AI 配音合成工具,自动翻译 + TTS 生成多语言配音,与原视频完美同步
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你是否曾为一部精彩的外语视频着迷,却苦于听不懂原声?你是否想把一个 YouTube 频道的内容本地化到另一个市场,却为专业配音的高昂成本望而却步?ThioJoe 的 Auto Synced & Translated Dubs 正是为解决这些问题而生——它将视频字幕文件自动翻译,再用 AI 合成配音,最终产出一段与原视频完美同步的多语言音频轨道。整个过程不需要专业配音演员,不需要音频工程师,只需要一份字幕文件、几个 API 密钥,以及不到半小时的等待。
Auto Synced & Translated Dubs(简称 ASTD)由 GitHub 用户 ThioJoe 创建和维护,GitHub 页面为 github.com/ThioJoe/Auto-Synced-Translated-Dubs。项目采用 AGPL-3.0 开源许可证,当前版本为 v0.21.0(发布于 2025 年 1 月)。截至分析时,该项目已获得 1,730 颗 Stars、163 个 Forks,GitHub Issues 区有 26 个未关闭的问题,社区活跃度较高。
ThioJoe 在 README 中坦诚地透露了这款工具的个人使用场景:他使用 OpenAI Whisper 在本地对视频进行语音识别转写,然后通过 Descript 工具对齐并校正字幕,最后导出 SRT 文件送入 ASTD 进行翻译和配音合成。这种工作流说明了该工具的核心定位——服务于有一定技术能力的个人创作者和小型团队,而非面向完全不懂技术的普通用户。
从技术领域来看,该项目横跨多个 AI 子领域:自然语言处理(翻译)、语音合成(TTS)和音视频处理(ffmpeg),是当前 AI 应用落地中"多模态流水线"的典型案例。项目 topics 标注为 ai、dubbing、subtitles、text-to-speech、translation、tts,非常清晰地反映了它的功能边界。
理解 ASTD 的技术原理,最好的方式是从它处理一个字幕文件的全流程入手。整个流水线分为五个阶段:
第一步:翻译字幕文本。 项目支持两种翻译引擎——Google Cloud Translation API 和 DeepL API。Google 提供了更快的速度和更低的价格,且支持更多语言;DeepL 在翻译质量上普遍被认为更优,但速度稍慢、价格更高。值得注意的是,Google 还提供了一种 LLM 模式,在某些场景下翻译结果更加自然地道。翻译结果会生成一份新的 SRT 字幕文件,保留原字幕的时间戳。
第二步:计算音频时长。 工具并不直接用翻译后的文字合成配音,而是先根据 SRT 中每个字幕行的时间戳,计算出"这段话应该说多长"——这是配音能否与原视频同步的关键。如果配音太快或太慢,最终叠加到视频上时就会与画面脱节。
第三步:文本转语音合成。 这是整个流程中成本最高的环节。项目同时支持三大 TTS 引擎:
第四步:音频时长调整(可选两步法)。 默认情况下,项目使用 ffmpeg 或 rubberband 库来拉伸/压缩音频,使其精确匹配第二步计算出的目标时长。对于 Azure 用户,由于可以在合成阶段指定时长,这一步可以完全跳过。对于追求更高音质的用户,项目还提供了"两步合成法"——第一遍合成后记录实际时长,计算语速修正值,第二遍用修正后的语速重新合成,这样得到的音频质量比简单拉伸更好,但成本翻倍。
第五步:音频轨道构建。 最终,用 ffmpeg 将所有配音片段按照原始时间戳插入,生成一个完整的音频文件。这个文件可以直接叠加到原视频上,最终输出的多语言配音将与原画面完美同步。
项目代码组织清晰,主入口为 main.py,核心逻辑封装在 Scripts/ 目录下的模块化文件中:
Scripts/TTS.py(约 32KB):这是代码量最大的核心模块,负责与三大 TTS 引擎交互。模块内置了发音覆盖(pronunciation overrides)、SSML 标签注入(interpret-as、phoneme、alias)等高级功能,允许用户精细控制特定词汇的发音方式。例如,通过 SSML_Customization/phoneme_pronunciation.csv 可以为专有名词指定 IPA 音标发音。
Scripts/translate.py(约 50KB):负责翻译逻辑,代码行数最多。值得关注的是其 YouTube 字幕同步下载功能——可以直接调用 YouTube Data API,下载某个视频的自动字幕(Auto Captions),然后将其作为翻译和配音的输入,这极大简化了内容本地化的工作流。
Scripts/audio_builder.py(约 14KB):音频轨道构建模块,使用 ffmpeg 进行音频片段插入,并实现了 rubberband 和 ffmpeg 两种时长拉伸算法。rubberband 是专业音频处理库,基于频谱分析而非简单的时间拉伸,音质更好。
Scripts/segmentation.py(约 15KB):字幕分段与重排模块,包含 SRT 时间格式转换、自动换行等功能。
Scripts/load_configs.py:统一加载 config.ini、cloud_service_settings.ini 和 batch.ini 三个配置文件。
Tools/ 目录:包含多个独立工具脚本,如 TrackAdder.py(将音频轨道合并到视频)、TitleTranslator.py(翻译 YouTube 视频标题和描述)、TranscriptAutoSyncUploader.py(上传字幕到 YouTube 并让平台自动对齐)等。这些工具围绕 YouTube 创作者的工作流进行了专门优化。
代码采用 Python 3.9+,依赖管理通过 requirements.txt 完成,主要依赖包括 google-cloud-texttospeech、azure-cognitiveservices-speech、deepl、pydub(音频处理)、pyrubberband(音频拉伸)和 ffprobe-python(ffmpeg 封装)。
ASTD 提供了丰富的定制选项,这让它从"一个玩具脚本"进化为真正可投入生产的工作流工具:
不翻译短语列表(Don't Translate):通过 SSML_Customization/dont_translate_phrases.txt,用户可以列出品牌名、专有名词、人名等不需要翻译的词汇,系统会自动在翻译前将这些词包裹特殊标记,翻译完成后还原,确保翻译 API 不会"自作主张"地处理它们。
手动翻译映射表:通过 SSML_Customization/Manual_Translations.csv,用户可以指定某些词汇的精确翻译结果,覆盖机器翻译的默认输出。这对于技术术语、行业黑话或文化相关表达尤其有用。
音素发音控制:通过 SSML_Customization/Phoneme_Pronunciation.csv,可以为特定词汇指定 IPA 音标发音,解决某些 TTS 引擎对专有名词发音不准确的问题。
批量处理:通过 batch.ini 文件,用户可以同时配置多个语言轨道(每个语言对应一个 [LANGUAGE-X] 配置段落),程序将按顺序逐一处理,实现一次配置、多个语言同时输出的效果。
部署难度:简单(2/5)。 该项目是纯 Python CLI 工具,无 Web 界面,无 Docker 支持,部署需要手动完成以下步骤:
pip install -r requirements.txt 安装 Python 依赖config.ini、cloud_service_settings.ini、batch.ini 三个配置文件python main.py硬件需求极低:无需 GPU,无需大容量磁盘(仅需几百 MB),但由于涉及大量网络 API 调用,稳定的互联网连接是必需条件。
需要提醒的是,该工具目前仅支持单人配音——如果视频中有多个角色分别说话,标准工作流会将不同角色的配音混在一起。想要实现分角色配音,需要为每个角色分别准备单独的 SRT 文件,用不同的语音分别处理后再手动混合。
当前版本的局限性值得正视:
尽管如此,该项目仍在活跃维护中(v0.21.0 于 2025 年 1 月发布,更新了 Azure Batch API 兼容性),社区反馈的问题大多能得到回应。对于有字幕资源的内容创作者和本地化团队,这是一个极具性价比的配音自动化方案。
ASTD 处于一个正在快速增长的交叉领域——AI 驱动的内容本地化。随着全球内容消费市场的多元化,视频内容的跨语言传播需求爆发式增长:
从技术趋势来看,端侧(on-device)TTS 模型(如 Kokoro、XTTS)的崛起,有望在未来大幅降低 API 调用成本,使这类工具的运营成本接近于零。同时,多说话人分离(diarization)和情感控制技术的成熟,将进一步提升 AI 配音的自然度和表现力。
Stars 增长轨迹方面,该项目 1,730 颗 Stars 在同类工具中属于中上水平(对比:同类开源配音工具普遍在 200-2,000 Stars 区间),增长速度稳健,反映出市场需求的真实存在。