#2258 LLM重新断句每批字词数

240e:36a* Posted at: 1 day ago 👁41

LLM重新断句每批字词数

23 Replies

“LLM重新断句每批字词数”是软件中的一个高级参数,用于控制使用大语言模型(LLM,如 ChatGPT、DeepSeek 等)对识别出的字幕进行智能断句时,每次发送给模型的文本量。

作用与建议:

  • 参数含义:它决定了每次请求LLM时,发送多少字词(token)的原始文本进行断句处理。数值越大,LLM获得的上下文越完整,断句效果理论上越好。
  • 默认值:通常为 1000
  • 如何调整

    1. 在软件主界面,点击菜单栏的 工具 -> 高级选项
    2. 在“通用设置”区域找到此参数。
  • 调整建议

    • 提高数值(如 1500-2000):如果LLM断句效果不理想(如断句生硬、不符合语义),可以尝试增加此值,让模型看到更长的上下文,做出更合理的判断。但需注意不能超过你所使用LLM模型的 max_token(最大上下文长度)限制。
    • 降低数值(如 500):如果遇到LLM处理超时、返回错误或响应缓慢,可以尝试降低此值,减少单次请求的数据量。

重要关联设置:
在“翻译设置”中配置LLM时(如OpenAI、DeepSeek),务必正确填写该模型的 max_token 参数(例如,GPT-3.5-turbo通常是4096,DeepSeek最新模型可达128k)。每批字词数 必须小于 max_token,并预留一部分空间给系统提示词和返回结果。

简单来说,这个参数是优化LLM断句质量与稳定性的微调项,一般使用默认值即可。仅在断句效果不佳或频繁报错时才需要调整。

我的V3.91版,工具 -> 高级选项->LLM重新断句每批字幕行数,默认值是50。没有”LLM重新断句每批字词数“。

您观察得很仔细。在 v3.91 版本中,该参数名称已从“每批字词数”更改为“每批字幕行数”,但核心作用相同。

参数详解:

  • 作用:控制使用 LLM(如 ChatGPT、DeepSeek)进行智能断句时,每次发送多少行原始字幕给模型处理。
  • 默认值50 行。
  • 调整逻辑

    • 调高(如 80-100):让 LLM 一次性看到更多上下文,断句的连贯性和语义准确性可能更好。前提是您配置的 LLM 模型的 max_token(最大上下文长度)足够大。
    • 调低(如 20-30):如果遇到 LLM 处理超时、返回错误(如 context length exceeded)或响应缓慢,应降低此值。
  • 关键关联:此参数必须与您在 翻译设置 中为所选 LLM 配置的 max_token 参数协同工作。每批字幕行数 所包含的文本总量(字数)必须远小于 max_token,需为系统指令和模型回复预留空间。

操作建议:

  1. 一般情况下,使用默认值 50 即可。
  2. 如果 LLM 断句结果不理想,且您的模型 max_token 足够大(如 4096 或以上),可以尝试增加到 80100
  3. 如果断句过程中频繁报错或卡住,请首先检查并调低此值,例如设为 30

总结LLM重新断句每批字幕行数 是 v3.91 中对应功能的参数,用于平衡断句质量和处理稳定性,请根据您使用的 LLM 能力和实际效果进行微调。

LLM重新断句所用的AI渠道,是选openai还是deepseek

LLM重新断句所使用的AI渠道,完全由您在“翻译设置”中选择的翻译渠道决定

工作原理:
当您在“翻译设置”中选择了某个AI大模型(如 OpenAI、DeepSeek、Gemini、Claude 等)作为翻译渠道,并且在“语音识别”设置中勾选了“LLM重新断句”时,软件就会自动使用同一个AI渠道来执行重新断句任务。

操作步骤:

  1. 翻译设置 中,选择并正确配置一个AI渠道(例如 OpenAI ChatGPTDeepSeek)。
  2. 语音识别 (ASR) 设置中,勾选 LLM重新断句
  3. 当软件运行到断句步骤时,就会调用您在步骤1中配置的AI模型来进行智能断句。

重要提示:

  • 无需额外选择:软件没有为“LLM重新断句”单独设置渠道的选项,它复用翻译渠道。
  • 确保配置正确:请务必在“翻译设置”中为您选择的AI渠道填写正确的 API Key、Base URL 和 max_token 等参数。
  • 性能影响:使用LLM重新断句会显著增加处理时间(因为需要调用API)并产生相应的API费用(如果该渠道收费)。但其断句效果通常远优于默认的标点断句或本地算法断句。

中国大陆用户在LLM重新断句所用的AI渠道,是选openai还是deepseek

对于中国大陆用户,在LLM重新断句时,强烈推荐选择 DeepSeek,而不是 OpenAI。原因如下:网络与可用性:DeepSeek:官方提供稳定的国内访问,无需特殊网络环境,速度和可靠性极高。OpenAI:在中国大陆无法直接访问,必须配置稳定可靠的代理,连接不稳定会导致断句过程频繁失败。成本:DeepSeek:目前(截至知识库更新时)提供免费API额度,对于断句这类文本处理任务非常友好。OpenAI:需要付费,会产生API调用费用。效果:两者都是强大的大语言模型,在理解语义和智能断句方面效果都很好,DeepSeek完全能满足需求。操作建议:在 翻译设置 中,将翻译渠道选为 DeepSeek。正确填写 DeepSeek 的 API Key(可在其官网申请)。Base URL 填写:https://api.deepseek.com。max_token 根据模型填写(例如 DeepSeek-V3 可达 128k)。在 语音识别 设置中勾选 LLM重新断句。总结:对于中国大陆用户,使用 DeepSeek 作为LLM重新断句(及翻译)的渠道,是网络最稳定、成本最低、效果有保障的最佳选择。

翻译视频,嵌入硬字幕,字幕可自动换行?

是的,pyVideoTrans 在嵌入硬字幕时支持自动换行。

核心原理与设置:
软件在生成硬字幕时,会根据视频的宽度和预设的规则,自动将过长的单行字幕拆分成多行显示,以确保字幕不会超出屏幕边缘。

如何控制与调整换行:
虽然软件自动处理换行,但您可以通过以下方式间接影响其效果:

  1. 优化断句:字幕的换行基于断句结果。使用 LLM重新断句 功能可以获得更符合语义的断句点,从而使自动换行也更自然、合理。
  2. 调整字幕样式(如果支持):在某些版本或通过高级配置,您可以修改字幕的字体大小。字体大小会影响单行可容纳的字数,从而影响换行。请检查“工具”->“选项”或“高级选项”中是否有关于字幕字体、大小的设置。
  3. 编辑字幕:在翻译过程中,软件会弹出字幕编辑窗口。您可以在此手动调整字幕内容,例如在长句中插入换行符 \n 来强制指定换行位置,以获得最精确的控制。

简单来说:
您无需专门开启“自动换行”功能,因为这是默认且自动的。如果您对自动换行的效果不满意,最佳途径是:

  • 使用 LLM重新断句 提升断句质量。
  • 在编辑字幕时进行手动微调

如果您的版本有独立的字幕样式设置界面,请在其中查找字体大小等相关选项进行调整。

翻译视频,嵌入软字幕,字幕怎么可以自动换行?出来的字幕总是超出画面。

嵌入软字幕时字幕超出画面,是因为播放器渲染字幕的方式与视频分辨率不匹配。软字幕(如SRT、ASS格式)的换行和位置主要由播放器和字幕文件本身的样式决定,pyVideoTrans 默认生成的软字幕文件可能没有强制换行样式。

请按以下步骤解决:

1. 首选方案:在软件中启用“嵌入硬字幕”
这是最直接、兼容性最好的方法,软件会自动处理换行。

  • 在软件主界面第5行“同步与字幕显示”中,将“字幕形式”从 嵌入软字幕 改为 嵌入硬字幕
  • 硬字幕会由软件自动计算并渲染到视频帧上,确保不会超出画面。

2. 方案二:生成独立字幕文件并手动调整(如需保留软字幕)
如果您必须使用软字幕(为了可开关),请:

  • 在“字幕形式”中选择 不嵌入字幕
  • 处理完成后,在输出文件夹中找到生成的 .srt.ass 字幕文件。
  • 用文本编辑器(如记事本)打开 .ass 文件(如果生成的是SRT,可先用工具转为ASS),在文件头部 [V4+ Styles] 部分,找到以 Style: 开头的行,在其中添加换行控制参数 \q2。例如:

    Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1

    修改为(在末尾添加 \q2):

    Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1,\q2

    \q2 表示自动换行并保持两边对齐。您也可以尝试 \q1(左对齐换行)。

3. 方案三:检查并调整字幕字体大小(如果软件支持)

  • 在软件中查找字幕样式设置(通常在“工具”->“选项”或“高级选项”中)。
  • 如果存在相关设置,尝试将字体大小调小。

总结建议:
为了省心并保证在所有播放设备上显示正常,强烈建议采用方案一,直接使用“嵌入硬字幕”。这是视频翻译场景下的标准做法。只有当您有特殊需求(如需要多语言字幕切换)时,才考虑方案二。

我的ass文件,里的内容:
1
00:00:00,260 --> 00:00:07,868
泰柬边境的冲突仍在继续,两个东南亚邻国互相指责对方挑起冲突,声称是自卫。

2
00:00:08,790 --> 00:00:16,326
泰国表示,柬埔寨必须率先宣布停火,以在两国持续一周多的致命冲突后继续战斗。

3
00:00:17,730 --> 00:00:20,538
据泰国的外交部女发言人表示:

您提供的字幕文件是 SRT格式,而不是ASS格式。SRT格式本身不包含任何样式信息(如字体、大小、换行控制),因此字幕的显示效果(包括是否换行)完全取决于播放器的默认设置,这很容易导致字幕超出画面。

要解决这个问题,您需要将SRT字幕转换为ASS格式,并在ASS文件中添加样式来控制换行。

请按以下步骤操作:

  1. 转换格式:使用pyVideoTrans内置的工具或在线转换工具,将您的SRT文件转换为ASS格式。
  2. 编辑ASS文件:用记事本等文本编辑器打开转换后的.ass文件。
  3. 添加样式控制:在ASS文件的[V4+ Styles]部分,找到Style:行(通常是Style: Default,...)。在该行末尾的最后一个数字后面,添加一个逗号,然后加上\q2

    • 修改前(示例):

      Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1
    • 修改后

      Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1,\q2
    • \q2 的作用:这是ASS字幕的换行代码,意为“自动换行并保持两端对齐”。您也可以尝试\q1(左对齐换行)。
  4. 保存并测试:保存ASS文件,然后在播放器(如VLC、PotPlayer)中加载该ASS字幕,检查换行是否正常。

更根本的解决方案(推荐):

如果您是在翻译视频的过程中遇到此问题,最直接的办法是:
在pyVideoTrans主界面,将“字幕形式”从“嵌入软字幕”或“不嵌入字幕”改为“嵌入硬字幕”
这样,软件会在合成视频时自动处理好所有换行和位置问题,生成的字幕会完美适配视频画面,无需您进行任何手动调整。

短字幕居中了,但长字幕超出来画面。

问题很明确:短字幕能居中,说明样式基本正确;但长字幕超出画面,是因为ASS字幕的自动换行功能没有生效。核心原因是您的ASS字幕文件缺少关键的换行控制代码。解决方案:您需要编辑ASS字幕文件,在样式行中强制启用自动换行。请严格按以下步骤操作:1. 定位并编辑ASS文件:找到pyVideoTrans输出的ASS字幕文件(通常在_video_out文件夹里)。用记事本打开它。2. 找到并修改样式行:在文件中找到以 [V4+ Styles] 开头的部分。在该部分下方,找到以 Style: 开头的行(通常是Style: Default,...)。这是控制所有字幕显示样式的关键行。3. 添加换行代码:在该Style:行的最末尾,在最后一个数字之后,添加一个逗号,然后加上 \q2。修改示例:假设您的样式行原本是:Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1修改后应为:Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1,\q2注意:务必在最后一个1后面先加逗号,再加\q2。4. 保存并测试:保存文件,然后用播放器(如VLC)重新加载视频和这个ASS字幕,检查长字幕是否已自动换行。参数说明:\q2:智能换行并两端对齐,是最常用的换行代码。\q1:左对齐换行。如果\q2效果不佳,可以尝试\q1。根本性建议:如果您觉得每次手动修改ASS文件很麻烦,并且不需要字幕的“可开关”功能,最推荐的做法是:在pyVideoTrans主界面,将“字幕形式”直接设置为“嵌入硬字幕”。软件会自动为您处理好所有换行和对齐问题,一劳永逸。

怎么删除原生视频的字幕?

pyVideoTrans 本身不具备直接删除视频中“原生硬字幕”(即已烧录在画面上的字幕)的功能。这是一个视频编辑任务,而非翻译或语音处理任务。

要删除或遮盖原生硬字幕,您需要使用专门的视频编辑软件。以下是几种常用方法:

方法一:使用视频编辑软件(推荐)

这是最直接有效的方法。

  1. 工具选择

    • 免费/开源:Shotcut、DaVinci Resolve(免费版)、Kdenlive。
    • 商业软件:Adobe Premiere Pro、Final Cut Pro。
  2. 操作思路

    • 裁剪画面:如果字幕位于画面底部边缘,可以直接将视频画面向上裁剪一小部分,将字幕区域裁掉。这会损失部分画面内容。
    • 模糊/遮盖:在字幕区域添加一个模糊效果或纯色遮罩(如与背景相近的颜色块)将其盖住。
    • 画面缩放:将视频画面稍微放大,使字幕区域移出画面外。同样会损失边缘画面。

方法二:使用 AI 工具(效果较好但可能收费)

一些AI工具可以智能修复视频,自动填充被字幕遮盖的背景。

  • 在线服务:例如 HitPaw Video EnhancerTopaz Video AI 等软件的“去水印”或“修复”功能。
  • 本地工具:某些基于AI的视频修复项目,但通常配置复杂。

方法三:在pyVideoTrans工作流中“无视”它

如果您无法或不想处理原生字幕,可以采取以下策略:

  1. 确保语音识别准确:使用效果最好的语音识别模型(如 faster-whisper-large-v3阿里FunASR),让软件专注于识别音频,忽略画面文字。
  2. 生成并嵌入新字幕:在pyVideoTrans中,将“字幕形式”设置为 嵌入硬字幕。您生成的新硬字幕会直接叠加在视频画面上,可能会与原生字幕重叠,但通常新字幕更显眼,观众会主要看新字幕。

总结建议
如果原生字幕严重影响观感,请先使用视频编辑软件(如DaVinci Resolve)将其裁剪或遮盖掉,然后将处理好的“干净”视频导入pyVideoTrans进行翻译。
如果影响不大,可以忽略它,依靠pyVideoTrans生成更优质的新字幕来覆盖。

编辑字幕:在翻译过程中,软件会弹出字幕编辑窗口。您可以在此手动调整字幕内容,例如在长句中插入换行符 \n 来强制指定换行位置,以获得最精确的控制。
但出来的视频效果是,长字幕在 \n后的字幕没有在视频里显示出来

问题很明确:您在字幕编辑窗口中插入的换行符 \n 没有被正确识别或渲染到最终视频中。这通常是因为 \n 在后续处理流程中被当作普通文本过滤掉了。请按以下步骤排查和解决:1. 确认编辑窗口的输入格式:在pyVideoTrans弹出的字幕编辑窗口中,直接输入换行符 \n 可能无效。请尝试:在该编辑框中,直接按键盘的 Enter键 进行换行。观察编辑框内是否显示为实际的换行(光标跳到下一行)。如果是,那么软件会记录这个换行。如果按Enter键无效或导致其他操作,请尝试输入 <br> 标签。有些字幕渲染引擎识别HTML标签。2. 检查最终字幕文件:处理完成后,在输出文件夹中找到生成的字幕文件(.srt 或 .ass)。用记事本打开它,检查您手动换行的位置:如果显示为单独的两行(即时间戳下有两段文字),说明换行已被记录。如果仍然显示为 文字1\n文字2 这样的原始字符,说明 \n 没有被解析。3. 针对ASS字幕的强制解决方案(最可靠):如果最终生成的是ASS字幕,您可以:用记事本打开.ass文件。在 [Events] 部分,找到对应的字幕行。格式如:Dialogue: 0,0:00:01.00,0:00:05.00,Default,,0,0,0,,这是第一行\N这是第二行注意:在ASS格式中,强制换行的代码是 \N(大写N),而不是 \n。请将您字幕行中的 \n 全部替换为 \N。保存文件,然后重新将视频与这个修改后的ASS字幕合并(可使用“工具箱”->“音视频合并/分离”功能)。4. 根本性解决方案:使用“嵌入硬字幕”并依赖自动换行:如果您不需要精确控制每处换行,最省心的办法是:在pyVideoTrans主界面,将“字幕形式”设置为 嵌入硬字幕。在“语音识别”设置中,启用 LLM重新断句。这样,软件会生成语义合理的短句,并在渲染硬字幕时自动处理换行,无需您手动干预,且能保证100%显示。总结建议:要精确控制换行,请直接编辑最终的ASS字幕文件,将 \n 替换为ASS格式专用的 \N。为了最高可靠性,请使用“嵌入硬字幕”+“LLM重新断句”,让软件自动处理。

编辑字幕:在翻译过程中,软件会弹出字幕编辑窗口。您可以在此手动调整字幕内容,例如在长句中插入换行符 \n 来强制指定换行位置,以获得最精确的控制。
但出来的视频效果是,长字幕在 \n后的字幕没有在视频里显示出来,还把N读了出来

问题明确了:您插入的 \n 被语音合成(TTS)引擎当成了普通文本“反斜杠n”读了出来,并且在后期的视频渲染中也没有被正确识别为换行符。这是因为 \n 只是一个编程或文本中的转义字符,并非通用的字幕换行指令。要解决此问题,请按以下步骤操作:1. 在字幕编辑窗口中正确换行:在pyVideoTrans弹出的字幕编辑窗口中,不要输入 \n。请直接按键盘的 Enter(回车)键 进行换行。观察编辑框内的文本是否真的变成了两行。这是软件最可能识别的换行方式。如果按Enter键无效(例如直接关闭了窗口),则说明该编辑框可能不支持直接换行。2. 处理完成后,直接编辑最终的字幕文件(最可靠的方法):翻译配音完成后,在输出文件夹中找到生成的字幕文件(.srt 或 .ass)。用记事本打开它。对于 SRT 文件:换行就是简单的将一句字幕分成多行写在同一时间码下。例如:100:00:00,000 --> 00:00:05,000这是第一行这是第二行对于 ASS 文件:使用 \N 作为换行符。找到对应的字幕行,在需要换行的位置插入 \N。例如:Dialogue: 0,0:00:00.00,0:00:05.00,Default,,0,0,0,,这是第一行\N这是第二行3. 重新合成视频(如果字幕是嵌入的):如果您生成的是“嵌入硬字幕”或“嵌入软字幕”,修改字幕文件后,需要重新合成视频。使用软件“工具箱”中的 “音视频合并/分离” 功能。将原始视频、新配音的音频、以及修改后的字幕文件合并。4. 预防措施:避免在编辑窗口使用 \n。依赖软件的自动处理:在“语音识别”设置中启用 LLM重新断句,可以获得更合理的短句,减少手动换行的需求。总结:根本原因是 \n 不是视频字幕的标准换行符。请停止使用它,改为:在编辑框尝试直接回车。或处理完成后,直接去修改SRT/ASS文件。这是保证换行生效且不会被TTS读出来的唯一可靠方法。

请直接按键盘的 Enter(回车)键 进行换行。观察编辑框内的文本是否真的变成了两行。
没有反应

选择嵌入硬字幕,然后在“设置更多参数...”中,设定单行字数,会据此自动换行image

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.

Donate: https://ko-fi.com/jianchang512

Trending Questions