#4039 如何添加双语硬字幕,包括样式的调整,如中文字大小,英文字大小等

2409:8a55* Posted at: 3 hours ago 👁30

如何添加双语硬字幕,包括样式的调整,如中文字大小,英文字大小等

15 Replies

要添加双语硬字幕并调整中英文字体大小,需要分别设置原始语言和目标语言的字幕样式。

操作步骤:

  1. 选择字幕类型:在主界面“嵌入字幕”选项中,选择“嵌入硬字幕(双)”。
  2. 调整字幕样式

    • 点击“设置更多参数...”按钮,在弹出的窗口中点击“修改硬字幕”。
    • 在弹出的“字幕样式编辑器”中,你会看到两个独立的样式设置区域:

      • 原始语言字幕样式:用于设置原始语言(例如中文)的字幕样式。
      • 目标语言字幕样式:用于设置目标语言(例如英文)的字幕样式。
    • 在每个区域中,你可以分别设置字体大小字体颜色描边阴影位置等所有样式属性。
    • 调整完毕后,点击“保存并应用”即可。

关键点:双语硬字幕的样式是分开独立设置的,你可以为两种语言设置完全不同的字体大小和样式。

请查阅相关文档:

没有看到两个独立的样式设置区域

在“字幕样式编辑器”中,两个独立的样式设置区域是上下排列的。请仔细检查编辑器窗口,通常布局如下:

  1. 窗口顶部是“原始语言字幕样式”区域,用于设置原始语言(如中文)的字幕。
  2. 窗口下方是“目标语言字幕样式”区域,用于设置目标语言(如英文)的字幕。
    如果确实没有看到两个区域,请确认你已在主界面选择了“嵌入硬字幕(双)”选项。只有选择了“双字幕”类型,样式编辑器才会显示两个独立的设置区域。如果问题依旧,请尝试重启软件或检查是否为最新版本。

请查阅相关文档:

没有哦,已经选择了嵌入硬字幕(双),但在修改硬字幕样式的面板里,只看到了中文字幕,英文看不到

这是由于软件界面可能未完全加载或存在显示问题。请按以下步骤操作:

  1. 关闭并重新打开样式编辑器:先关闭“字幕样式编辑器”窗口,然后再次点击“修改硬字幕”按钮重新打开。
  2. 检查编辑器窗口大小:尝试向下拖动或拉大“字幕样式编辑器”窗口,因为“目标语言字幕样式”区域可能因窗口过小而被隐藏。
  3. 重启软件:如果上述方法无效,请完全关闭 pyVideoTrans 并重新启动,然后再次尝试。
  4. 检查软件版本:确保你使用的是最新版本(v3.98)。旧版本可能存在此界面显示问题。

如果问题仍然存在,请提供软件安装目录下 logs/ 文件夹中最新日志文件(复制底部约30行内容)以便进一步分析。

请查阅相关文档:

'orig_name': '000006.m4a'}}
[DEBUG] result={'visible': True, 'value': 'C:\Users\Admin\AppData\Local\Temp\gradio\532c97a63d288e1e76237d3a386477da367a26c8d56867ca0bfa6038b8d56f79\spk_1776000251.wav', '__type__': 'update'}
[DEBUG] result={'visible': True, 'value': 'C:\Users\Admin\AppData\Local\Temp\gradio\6c3b42d7ff435428991c7d39efa5a5088916dee185b0f5f6af4ad3b7ec83e4bc\spk_1776000258.wav', '__type__': 'update'}
[DEBUG] result={'visible': True, 'value': 'C:\Users\Admin\AppData\Local\Temp\gradio\d77edd6e38da4c1207c0872cf6b5fb973a9b2e780c26b320376a606c7b2966a9\spk_1776000265.wav', '__type__': 'update'}
[DEBUG] result={'visible': True, 'value': 'C:\Users\Admin\AppData\Local\Temp\gradio\24cc38fcabb47e0045d300c51640fc322d79f30082b59c83128989a2ba818437\spk_1776000270.wav', '__type__': 'update'}
[DEBUG] result={'visible': True, 'value': 'C:\Users\Admin\AppData\Local\Temp\gradio\8202ca51d3926c6b403d7a4f2281362cec8a1931278c65aa742e4a073a06ec28\spk_1776000278.wav', '__type__': 'update'}
[DEBUG] [字幕配音]渠道10:共耗时:325s
[DEBUG] [SpeedRate] Init. AudioRate=False, VideoRate=False, Rubberband=True
[DEBUG] [SpeedRate] 未启用变速,进入普通拼接模式。
[DEBUG] concat_txt='D:/win-pyvideotrans-v3.98-327/tmp/17908/6d86bd3649/final_audio_concat.txt',filelist[0]='D:/win-pyvideotrans-v3.98-327/tmp/17908/6d86bd3649/silence_gap_0.wav'
[DEBUG] [Audio-Concat] 最终音频已生成: D:/win-pyvideotrans-v3.98-327/tmp/17908/6d86bd3649/target.wav
[DEBUG] 跳过二次识别, 因设置了嵌入双字幕,二次识别后双字幕时间戳将无法保持一致,因此跳过:self.cfg.subtitle_type=4
[DEBUG]


==准备要嵌入的字幕:self.cfg.subtitle_type=4
=
[DEBUG] 最终确定字幕嵌入类型:4 ,目标字幕语言:chi, 字幕文件:D:/win-pyvideotrans-v3.98-327/tmp/17908/6d86bd3649/shuang.srt

[DEBUG] 检测到硬件编码器 hevc_nvenc,正在调整参数...
tmp_target_mp4='D:/win-pyvideotrans-v3.98-327/tmp/17908/6d86bd3649/laste_target.mp4',self.cfg.targetdir_mp4='D:/_Output/_video_out/1. English_UE_01_Install_Unreal-mp4/1. English_UE_01_Install_Unreal.mp4'
等待 uuid_signal 线程退出
正在等待线程 PrepareVideo 结束...
正在等待线程 SpeechToText 结束...
正在等待线程 DiarizSpeaker 结束...
正在等待线程 TranslationSRT 结束...
正在等待线程 DubbingSrt 结束...
正在等待线程 SpeechToText2 结束...
正在等待线程 AlignVieoAudioSrt 结束...
正在等待线程 AssembVideoAudioSrt 结束...
正在等待线程 TaskDone 结束...
Successfully killed ffmpeg processes using taskkill

根据日志信息,问题已定位。日志显示 self.cfg.subtitle_type=4,这代表“嵌入软字幕(双)”,而非“嵌入硬字幕(双)”。因此,在“修改硬字幕样式”面板中只会显示单一样式区域。

要设置双语硬字幕样式,必须确保在主界面选择了“嵌入硬字幕(双)”,其对应的 subtitle_type 应为 3。

解决方案:

  1. 在主界面的“嵌入字幕”选项中,请确认并选择 嵌入硬字幕(双)
  2. 重新点击“设置更多参数...” -> “修改硬字幕”,此时样式编辑器应显示两个独立的样式设置区域。

请查阅相关文档:

[95.0%] Translation successful but transfer failed.

这是由于翻译渠道在返回结果时出现了网络传输问题。翻译本身成功,但数据在传输回软件的过程中失败。

解决方案:

  1. 降低并发:在 菜单 -> 工具/选项 -> 高级选项 -> 字幕翻译调整 中,将 AI翻译渠道每批字幕行数传统翻译渠道每批字幕行数 都调小(例如从默认值调为 5 或 10)。
  2. 增加延迟:在同一设置区域,将 翻译后暂停秒 适当增加(例如设为 3-5 秒),以降低请求频率。
  3. 检查网络:如果你使用了网络代理,请确保代理连接稳定。可以尝试暂时关闭代理或更换节点。
  4. 更换渠道:如果问题持续,可以尝试切换到另一个翻译渠道(例如从 OpenAI 切换到 DeepSeek 或 Gemini)。

如果以上方法均无效,请提供更完整的日志文件(包含该错误出现前后的上下文)以便进一步分析。

这个信息并不是出现在翻译环节,是配音完成之合

你提供的信息 [95.0%] Translation successful but transfer failed. 出现在配音完成后,这通常意味着在“视频翻译”流程的最后合成阶段,软件在整合翻译后的字幕、配音和视频时,数据传输出现了问题。具体原因可能是:临时文件路径过长或包含特殊字符。软件内部在处理最终合并时,某个环节(如字幕嵌入、音视频合成)的数据传输失败。解决方案:简化路径:确保输入视频的文件名简短,且存放路径不包含中文、空格或特殊符号。例如,将视频移动到 D:\videos 并重命名为 test.mp4。清理缓存:在主界面勾选“清理已生成”,然后重新处理视频。这将强制重新生成所有中间文件。检查输出目录:确保输出目录(默认为原视频目录下的 _video_out)有足够的写入权限,且路径同样简短。如果问题依旧,请提供更完整的日志(包含该错误出现前后约50行的内容),以便准确定位是哪个合成步骤失败。

是否跟二次语音识别有关

是的,很可能与“二次识别”有关。根据知识库中的常见问题(FAQ 第12条),v3.97及以后版本,如果选中了“二次识别”,在某些情况下(尤其是同时翻译多个视频时)可能导致显存或内存不足,从而在后续合成阶段出现类似 [95.0%] Translation successful but transfer failed. 的错误。解决方案:取消选中“二次识别”:在主界面右上角,取消勾选“二次识别”选项。重新处理视频:确保主界面已勾选“清理已生成”,然后重新开始翻译任务。如果取消“二次识别”后问题解决,但你又需要精确对齐的字幕,可以尝试以下替代方案:在“高级选项” -> “字幕配音调整”中,选中“保留每条字幕的配音文件”。这样你可以在配音校对阶段手动调整时间轴。请查阅相关文档:总是提示显存不足

双字幕该如何通过ass.json文件进行设置?

要使用 ass.json 文件设置双字幕样式,需要分别创建并配置原始语言和目标语言的字幕样式。操作步骤:定位配置文件:软件根目录下应存在 ass.json 文件。如果没有,可以在完成一次视频翻译并嵌入双字幕(硬或软)后,在输出文件夹或临时文件夹中找到生成的 ass.json 文件作为模板。理解结构:一个典型的双字幕 ass.json 文件应包含两个独立的样式块(Style),分别对应原始语言和目标语言。例如:json{"Styles": [{"Name": "Default","Fontname": "Microsoft YaHei","Fontsize": 20,... // 这是原始语言字幕样式}, {"Name": "Default2","Fontname": "Arial","Fontsize": 18,... // 这是目标语言字幕样式}],"Events": [...] // 字幕文本和时间轴}修改样式:你可以分别修改两个 Style 块中的属性,例如 Fontsize(字体大小)、Fontname(字体名称)、PrimaryColour(主要颜色)、OutlineColour(描边颜色)等,以实现中英文字体大小和样式的差异化。应用配置:将修改好的 ass.json 文件放置在软件根目录,或在进行视频翻译前,通过“修改硬字幕”编辑器加载并应用此配置文件。关键点:必须确保 ass.json 文件中包含两个独立的 Style 定义,并且字幕事件(Events)正确引用了这两个样式。如果软件未自动识别,你可能需要在“字幕样式编辑器”中手动加载此文件。请查阅相关文档:设置字幕的字体

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.

Related resource