SuperAPI AI 工具集

edgespeak-translate

通用与其它

查看项目

更新于 10-15 23:49

技能介绍

用途:把带时间轴的转录(EdgeSpeak JSON 的 segments[],含 start / end / text,可选 words[],或 .srt)翻译成目标语言。这是代理驱动技能:没有 edgespeak-cli translate,也不调用在线翻译服务,翻译质量取决于代理自身语言能力;音频在本地转录,文本也不应送往云端翻译。它位于边缘技能链条中间:edgespeak-transcribe / edgespeak-align 产出带时间轴源文件,本技能加入目标语言,edgespeak-broadcast 可把结果合成为配音。

使用前需确认:源转录、目标语言、输出形态(仅译文 SRT、双语 SRT、或每段带 translation 的 JSON)、以及译文是否用于配音(影响长度预算)。

硬性不变量:片段数量与顺序同源,不合并不拆分;id、start、end、text、words[] 原样保留;translation 非空;非语音片段(音乐、歌词、掌声、噪声)也需非空译文,直接照抄源文以保持 1:1。

做法:先读源文件并报出片段数;抽样约 5 段记录领域、语域、术语及需原样保留的品牌/人名/缩写,形成术语表;按约 30 段分块翻译,长文件(≥5 块)可并行派发子代理,每块返回 {id: translation} 映射;合并后用检查脚本验证而非目测;不静默覆盖已有文件,需确认或换新路径。

检查脚本(Node 18+,零依赖)命令:node <skill-dir>/scripts/check-translation.mjs --translated out.json --source transcript.json --lang zh。--translated 必填,--source 启用不变量检查,--lang 选择字符预算。退出码:0 干净、1 WARN、2 FAIL。FAIL 表示片段数不符、译文为空、text/start/end/id/words[] 被改或目标语言与 --lang 矛盾;WARN 为标点或替代写法、超预算、残留 TODO 等需人工判断;SKIP 表示某项未检查(无 --source、无 --lang 或该语言无校准语速),SKIP 不等于通过,应如实告知用户。检查器读 JSON 而非 SRT,故建议以 JSON 为主产物再导出 SRT。

翻译规则要点:重写而非逐词替换;标点与源一致,不添加源中不存在的破折号、括号;术语统一,一个术语只用一种译法;国家、地名、国籍默认本地化,专有机构与报刊名保留;不添加源未说的缩写或注释;数字与单位只用一种书写体系;zh/ja/ko 可删冗余指示词;保持语气与问句形式;使用目标语言标点惯例。长度预算:硬上限为 max_chars = (end - start) × CPS,zh 9、ja 20、ko 17、en 22、fr 35、es 31、pt 34、de 43、nl 33、ru 37、hi 27;理想长度为 (end - start) × source_cps × 比例(en→zh 0.35 等)。表中没有的语言仍可用,但预算检查会报告为 SKIP,不应虚构 CPS。

限制:无 CLI,不得编造命令或调用在线翻译;words[] 仍描述源语言时间轴,译文词级时间需用 edgespeak-broadcast 合成后再对音频跑 edgespeak-align;不得为省预算合并或拆分片段;长转录需分块并行,若提前停止须明确说明停止位置。