
onetake 多语言视频指南一条合成文件如何零成本输出日语版配音与字幕【免费下载链接】onetakeMotion films that never cut to the next slide: every beat grows out of the one before, one continuous camera, continuity measured by an oracle. A Claude Agent Skill for product launch films and feature demos.项目地址: https://gitcode.com/gh_mirrors/on/onetakeonetake 是一个用于制作一镜到底产品动效短片的 Claude Agent Skill它把整条片子写成一个 HTML 合成文件window.__seek(t)每个画面值都是时间的纯函数。正因为它不是录像而是数据多语言本地化几乎零成本同一份合成文件挂一个?lang查询参数就能输出日语版配音与字幕画面时间轴原封不动。下面用一条日语版为例讲清从文案表到响度对齐的完整路径。为什么一条合成文件能零成本输出多语言版本传统流程里做日语版要重拍重新录屏、重新配音、重新剪辑动效每改一次每个语言版本都要同步改一遍。onetake 的路线相反所有文案都是数据。界面里的每一句话从第一行起就放在字符串表STR[lang]里换语言只是换一张表——产品甚至不需要真的提供日语界面镜头想去哪就去哪。复刻界面是矢量 DOM2.5 倍放大一个下拉框和全景一样清晰录屏做不到这一点不产生复制品。每语言复制一份合成文件意味着之后的每个动效修复都要做两次。onetake 的硬规则写得很直白A second language never forks the composition——第二语言永不叉出新的合成文件。方法细节在 references/product-demo.md一句话总结一个文件多个剪辑。第一步文案进字符串表语言只是参数在复刻产品界面时规则要求每个字符串第一行就进表渲染时通过UIK.tr(lang)取当前语言的字符串lib/ui_kit.js 中定义缺失时回落到英文默认不带参数 源语言且必须保持逐像素不变日语字体按需加载UIK.loadFont(Noto Sans JP, …, {need: lang ja})只在该语言下才请求 CJK 字体拉丁文继续用品牌主字体。这一步没有任何渲染成本差异——语言差异被压进了一张表和一段字体加载。第二步日语配音——Kokoro TTS 与平假名注音日语合成语音有一个坑Kokoro 的 espeak 路径读不了汉字。onetake 的解法是一行一行手写平假名注音品牌名按实际念法拼写比如 エクセル、エイチティーエムエル再用misaki[ja]音素化。工具链在 scripts/vo_tools.pytts先生成日语配音vo_tools.py tts vo/ja/lines.txt --read vo/ja/read.txt --voice jf_alpha --lang ja --out vo/ja--read指定逐行注音文件words用 faster-whisper 拆出逐词时间戳——注意这里只信 Whisper 的时间不信它的字品牌名常被听错plan按 0.45 s 呼吸间隔排台词落点subs生成日语字幕CJK 单行上限更严--max-cjk 20字幕走的是原始lines.txt注音文件只给 TTS 用。关键心法不是翻译是重写。每条日语台词按日语自然的语序和长度重新写秒数与源语言大致持平凡是念到界面标签的句子必须用复刻界面上显示的本地化标签原文。第三步对时间轴不对口型——timeWarp 节点映射日语说プロモード、切り替え而英文是switch to Pro mode——同一件事词序和时长都不同。如果重排所有节拍等于把片子重做一遍。onetake 的做法是 lib/ui_kit.js 里的UIK.timeWarp(knots)节拍、镜头关键帧、手势路径、声音事件全部只在源语言时间轴上创作一次为日语选一组节点knots[影片时间, 创作时间]对放在含义相同的词上而不是只在句首放日语先说Pro 模式下拉菜单就在「プロ」出现时打开在「切り替え」出现时选中渲染时seek(tf)画的是t U(tf)——镜头、滚动、每个节拍都跟着换算字幕用影片时间tf声音事件经Ui映射仍然落准检查slopes创作秒/影片秒保持约 0.5 ~ 1.4 之间低于下限动作看起来慢放高于上限动作显得赶。换配音 移动节点而不是重剪片子。第四步质量关卡——frame_diff 像素校验与响度对齐多语言流程有两个零成本承诺也各有一个自动验收源语言逐像素不变冻结已验收的合成文件用 scripts/frame_diff.py 在多个时间点上比对comp.html与comp.html?langja只要源语言任何一帧被改动就会被判失败。渲染日语版直接render.py comp.html?langja查询参数就在路径里响度逐语言对齐峰值归一化不等于听感一致——某次更密的日语人声归一化后比源版整条响 5 LU。最后一步用 ffmpeg 的ebur128把每个语言版本的集成响度对齐到源混音。完整路径速查环节工具文件字符串表 / 字体按需加载UIK.tr·UIK.loadFontlib/ui_kit.js日语配音 注音 字幕tts --read·words·subsscripts/vo_tools.py时间轴映射UIK.timeWarp(knots)lib/ui_kit.js源语言像素校验frame_diff.pyscripts/frame_diff.py方法论全文第 5 节Languages: one composition, many cutsreferences/product-demo.md带配音的功能演示案例拆解案例 READMEcases/skill-demo-15s/README.md记住三件事文案从第一行起就是表第二语言永不叉合成文件节点跟着含义相同的词走。做到这三点一条 onetake 合成文件输出日语版配音与字幕就是换张表、换个查询参数的事。【免费下载链接】onetakeMotion films that never cut to the next slide: every beat grows out of the one before, one continuous camera, continuity measured by an oracle. A Claude Agent Skill for product launch films and feature demos.项目地址: https://gitcode.com/gh_mirrors/on/onetake创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考