一个人讲话的视频做配音不难,难的是画面里出现两个说话人。给所有人配同一个合成音,访谈和播客立刻变得没法看;翻译出来的句子又常常塞不进原来的时间轴。开源工具 miragea-dub(MIT 协议)给出的解法是:每个说话人各自克隆一条声音,台词按原时长重新贴合,最后输出配音版 MP4、音轨和字幕。

打开网易新闻 查看精彩图片

这套流程针对的就是多说话人场景。按工具自己的拆解,一次多说话人配音要做四件事:转写视频、区分说话人、把每句翻译成能在同一时间槽里说出口的长度、再用接近原声的声音为每个说话人配音。miragea-dub 可以走命令行,也可以作为面向 AI 智能体的 MCP 服务器或 Agent Skill 运行。声音来自 Miragea 语音 API,本地不需要 GPU。

效果可以先听。演示片段里两条声音都从视频本身克隆而来,把西班牙语音轨重新转写一遍,返回的译文几乎逐字吻合。

第一步:安装

用 pipx 安装 miragea-dub,环境里需要 ffmpeg;从 Miragea 工作区拿到 API key 后写入环境变量,再跑一次 doctor 自检。想先离线试跑,可以用 demo 命令配合测试音。

第二步:转写并找出说话人

执行 prepare 命令并指定目标语言和说话人数,会生成一份 dub.json。语音识别返回的字幕切分是按固定宽度来的,有时会切在词中间,工具会借助带标点的完整文本把它们重新合并成整句。随后一个无需 GPU 的聚类步骤给每句标上说话人编号。在演示片段里,六句台词全部分配正确。

第三步:翻译,每句都有长度预算

每一行都带着长度预算。译文可以自己填,也可以让 Claude 或 Cursor 通过 MCP 服务器代劳,或者用 translate 命令接任意兼容 OpenAI 的端点。句子短不短很关键,配音得塞得进去。

第四步:克隆、合成、贴合、混音

render 命令为每个说话人从视频里截取 8 到 20 秒的参考音频,挂到临时链接上,再用这条声音合成每一句。为了贴合时间轴,句子会被轻微加速,上限 1.35 倍;仍然塞不进去的,会被列进 lines_to_shorten 清单。

第五步:发布

产出包括带配音、原始音频和字幕的 MP4,供 YouTube 附加音轨功能使用的 m4a,SRT/VTT 字幕,以及一份 JSON 报告。

在 Claude、Cursor 或 Codex 里用也很直接:在 MCP 配置里声明 miragea-dub 命令和 API key 即可;或者从 miragea-skills 安装 video-dubbing 技能,翻译交给智能体完成,不必再准备第二个大模型密钥。

两个常见问题:两人访谈能不能保留两条声音?可以,每个说话人都从自己的台词克隆。有没有托管配音应用的开源替代?这条流水线是 MIT 协议,但声音需要 Miragea API key;VideoLingo、pyvideotrans 这类更大的图形界面项目也存在,而这个工具走的是小巧、可脚本化、面向智能体的路线。

最后一句提醒来自工具本身:只克隆你有权限克隆的声音。