#6474 英语视频场景中,双语中字翻译,除了正在说话生成的字幕,还有后续语音形成的字幕跑到了前面和现在的字幕出现在同一画面

116.162.**3 Posted at: 1 hour ago

英语视频场景中,双语中字翻译,除了正在说话生成的字幕,还有后续语音形成的字幕跑到了前面和现在的字幕出现在同一画面

17 Replies

这通常是由于字幕时间轴重叠导致的:后一句字幕的开始时间早于前一句的结束时间,于是播放时后续字幕提前出现在同一画面。

请按以下步骤排查解决:

  1. 打开输出目录(例如默认的 _video_out 中对应视频的结果文件夹),找到生成的双语 SRT 文件(如 zh-cn.srten.srt),检查相邻两条字幕的时间轴是否存在重叠(即下一条的开始时间小于上一条的结束时间)。标准 SRT 要求下一条开始时间必须 >= 上一条结束时间。
  2. 如果时间轴重叠,最常见原因是 AI 翻译时合并了相邻短句,导致翻译结果行数与时间轴行数错位。请前往 菜单 -> 工具/选项 -> 高级选项 -> 字幕翻译调整,取消勾选“发送完整字幕”,或将“AI翻译渠道每批字幕行数”调小(例如改为 10),强制 AI 逐行翻译,避免它自行合并句子。
  3. 也可以临时切换到传统翻译渠道(Google / Microsoft)验证是否还会重叠,以确认是否为 AI 翻译模型行为导致。
  4. 如果使用的是自行导入的外部 SRT,请确认其时间轴本身没有重叠,且符合标准 SRT 格式规范。
  5. 若上述操作仍无法解决,请提供软件安装目录下 logs/ 中最新的日志文件底部约30行,以及生成的重叠 SRT 片段,以便进一步分析。

请查阅相关文档:

AI翻译渠道每批字幕行数代表了什么

“AI翻译渠道每批字幕行数”是控制每次调用AI翻译接口时,一次性发送给模型翻译的字幕条数。

  • 该值越小,每次翻译的句子越少,模型越不容易自行合并或改写字幕,时间轴错位风险越低,但API请求次数增多、速度变慢。
  • 该值越大,模型看到的上下文越完整,翻译更连贯自然,但可能出现句子合并、行数错位,且超出模型上下文窗口时会报错。

如果你的问题是“翻译后字幕时间轴重叠”,建议将该值调小(例如设为10~20),并确认在“菜单 → 工具/选项 → 高级选项 → 字幕翻译调整”里没有勾选“AI翻译一次性翻译所有字幕行”。若勾选了“发送完整字幕”,该参数仍然控制每批发送的行数;若启用了“一次性翻译所有字幕行”,则该参数会被忽略,全部字幕一次发送。

没法解决合并句子使翻译更连贯自然的同时不出现时间轴提前导致的行数错位吗

这是可以做到的,关键在于修改发送给AI的提示词,而非牺牲翻译质量或降低每批行数。行数错位的根源是AI在翻译时合并了相邻短句,导致返回的行数少于输入行数,而软件按行号映射时间轴时发生错位。要避免这一点,需要让AI在“保持翻译连贯”的同时“严格保持行数一一对应”。请按以下步骤操作:1. 打开软件目录下 videotrans/prompts/srt/ 文件夹(如果勾选了“发送完整字幕”)或 videotrans/prompts/text/ 文件夹(未勾选时),找到你正在使用的AI渠道对应的提示词文件(例如 localllm.txtdeepseek.txt 等)。2. 在提示词中追加或修改如下约束指令:“翻译时必须严格保持每行一条译文,行数必须与输入行数完全一致。即使多行可以合并翻译,也必须按原行数逐行输出,不得合并、拆分或省略任何一行。”3. 保存文件后重新执行翻译。这样AI就能在批量翻译时看到完整上下文,同时按行号严格输出。4. 注意:修改提示词后,如果发现结果没变化,请删除 tmp/translate_cache/ 目录下的缓存文件,或勾选主界面的“清理已生成”,避免读取旧缓存。此外,需要说明的是,“发送完整字幕”模式下,软件本身会依赖空行来保持时间轴对齐。AI合并后产生的空行是防御机制,请不要删除,否则会导致双语字幕错位。如果修改提示词后AI仍不遵守,再考虑降低“AI翻译渠道每批字幕行数”(例如设为10),这是最后手段。请查阅相关文档:- 修改提示词- 为什么翻译后会出现"空白字幕行"?

你能给我一个英文文本的 在提示词中追加或修改如下约束指令:“翻译时必须严格保持每行一条译文,行数必须与输入行数完全一致。即使多行可以合并翻译,也必须按原行数逐行输出,不得合并、拆分或省略任何一行。” 指令吗

可以,直接在提示词末尾追加以下英文约束即可:

When translating, you must strictly keep a 1:1 mapping between input lines and output lines. The number of translated lines must be exactly the same as the source. Even if adjacent lines could naturally be merged, you must still output them line-by-line as separate lines. Never merge, split, or omit any line.

如果希望AI在保持连贯的同时更自然地翻译,可在同段提示词后附加:

You may use the full context to translate each line naturally and fluently, but you must never merge or recombine lines. Preserve the original line count and line order strictly.

保存提示词文件后重新执行翻译。若结果没有变化,请删除 tmp/translate_cache/ 目录下的缓存文件,或勾选主界面的“清理已生成”,避免读取旧缓存。

末尾需要空出一行另起一行吗 还是直接接在下面输入就好

直接接在下面输入即可,无需刻意空行。建议在文件原有内容末尾换行后,另起一行粘贴新指令,确保新指令单独成行更清晰。保存后重新执行翻译即可。

那么我现在再把AI翻译渠道每批字数行数调大是否更有利于我翻译准确且不再会因为合并时间轴而导致错位

可以。在你已修改提示词、强制AI保持1:1行号映射的前提下,调大“AI翻译渠道每批字幕行数”通常会更有利于翻译准确:模型能看到更多上下文,语义判断更连贯。但需同时满足以下条件,否则可能仍出错:

  1. 确保没有启用“AI翻译一次性翻译所有字幕行”(如果启用了,该参数会被忽略,全部字幕一次发送)。
  2. 每批行数不要超过所使用AI模型的上下文窗口限制。若超出,可能报“内容太长超出最大允许Token”。建议从 50~100 行开始尝试,根据模型能力调整。
  3. 修改后仍要确认翻译结果中行数与输入行数严格一致。如果发现个别模型仍不遵守提示词,可将每批行数调小(如 20~30)作为兜底。
  4. 修改参数后若结果没变化,记得删除 tmp/translate_cache/ 目录下的缓存文件,或勾选主界面的“清理已生成”,避免使用旧缓存。

声音有变声导致识别不出来语音有什么解决办法吗

变声会导致语音识别准确率下降,通常是因为音频中的人声特征被改变或噪声干扰过多。请按以下步骤尝试解决:1. 在主界面点击“设置更多参数...”,勾选“分离人声背景声”和“降噪”,先将人声从背景声中分离出来并清除噪声,再进行识别。2. 将语音识别渠道更换为更强大的模型:英文或通用内容推荐 faster-whisper(内置) 的 large-v3 或 large-v3-turbo;中文内容可尝试 Qwen-ASR(内置)、阿里 FunASR(内置) 或 Firered中文(内置)。3. 若本地模型仍无法识别,可尝试在线语音识别API(如 OpenAI 语音识别、豆包语音识别大模型极速版等),其对变声的鲁棒性通常更强。4. 进入“菜单 → 工具/选项 → 高级选项 → 语音识别参数”,可适当调小“语音阈值”(如从默认值降至更低),让VAD对轻微变声片段更灵敏,避免被误判为静音;同时可尝试增大“识别准确度beam_size”或“识别准确度best_of”到3-5,提升识别精度。5. 若变声导致音频音调异常,建议先用外部音频工具尽可能还原正常音调,再导入软件识别。如果上述方法均无效,请提供软件安装目录下 logs/ 中最新的日志文件底部约30行,以便进一步分析。

这些修改会影响正常的语音识别吗 还是在不影响原语音的情况对变声识别更精准

这些修改是全局生效的,并不仅仅针对变声情况,但不同项目的取舍不同。具体如下:1. “分离人声背景声”和“降噪”:对正常语音识别通常也有益,能减少背景干扰;但如果降噪过度,可能损伤细小语音或导致个别字被误删。2. 更换更强的模型(large-v3/turbo、API识别):对正常语音和变声都有提升,但会显著增加耗时和显存占用。3. 调低VAD“语音阈值”:会让识别更灵敏,但代价是可能把噪声误识别为语音,产生多余字幕,对正常语音也可能增加幻觉内容。4. 增大“识别准确度beam_size/best_of”:可提高整体准确率,但会消耗更多显存和计算时间,对变声和正常语音同时起作用。因此,并没有“完全不影响正常语音”的调整。建议先记录当前参数,逐步修改并测试;若变声视频处理完成后,可将参数恢复到原值,再处理正常视频。如果调整后仍无法识别变声音频,请提供软件安装目录下 logs/ 中最新的日志文件底部约30行,以便进一步分析。

结尾出现一句字幕一直不消失和其他字幕在一个画面直到结束是什么原因

这通常是因为字幕文件的最后一条字幕结束时间大于视频实际总时长,或相邻字幕时间轴重叠,导致最后一句一直停留到画面结束。请按以下步骤检查并解决:1. 打开输出目录下对应视频的结果文件夹(如默认 _video_out 中),找到生成的双语 SRT 文件(如 zh-cn.srt、en.srt)。2. 检查最后一条字幕的结束时间是否大于视频总时长。如果大于,则该字幕会一直显示到视频结束。3. 检查相邻字幕是否存在时间轴重叠,即后一句的开始时间小于前一句的结束时间。这会导致两句字幕同时出现在同一画面。4. 最常见原因是AI翻译合并了相邻短句,导致行数错位、时间轴错位。如果确实使用了AI翻译,请确认已按之前提示修改提示词,强制AI保持1:1行号映射;或临时降低“AI翻译渠道每批字幕行数”,验证是否恢复。5. 修改后如果结果没变化,请删除 tmp/translate_cache/ 目录下的缓存文件,或勾选主界面的“清理已生成”,避免使用旧缓存。如果以上方法仍无法解决,请提供软件安装目录下 logs/ 中最新的日志文件底部约30行,以及生成的字幕文件片段,以便进一步分析。

Post Your Reply
Open source and free maintenance is not easy. If this project is helpful to you, please consider making a small donation to help the project continue to maintain and update.

Dondate via ko-fi.com

Dondate via PayPal

Related resource