#4430 为什么设置了最长语音持续秒数为4或5这样的值,最后输出的字幕还是会有8秒9秒的超长字幕

103.3* Posted at: 2 hours ago 👁20

为什么设置了最长语音持续秒数为4或5这样的值,最后输出的字幕还是会有8秒9秒的超长字幕

9 Replies

这是因为没有启用 Whisper预分割音频 功能,导致语音识别时未强制按设定时长切割音频片段,模型更倾向于整段识别,从而产生超长字幕。

解决方法:

  1. 打开 菜单 → 工具/选项 → 高级选项
  2. 语音识别参数 区域,找到 Whisper预分割音频? 选项,勾选它。
  3. 同时将 最长语音持续秒数 设为你需要的值(如 4 或 5)。
  4. 根据音频情况微调 静音分割持续毫秒(例如 140)和 语音阈值(0.5),帮助 VAD 准确切分。
  5. 如果使用了 clone 配音角色,请确保 最短语音持续毫秒 ≥ 3000,最长语音持续秒数 ≤ 10。

勾选后,软件会先将音频按设定时长切割为片段再送给 Whisper 识别,生成的字幕时长将严格控制在设定值内。

请查阅相关文档:

本来就是启用了Whisper预分割音频的,另外我不需要配音,只需要输出长短合适的字幕

启用了预分割音频但字幕仍超长,根本原因是 VAD (语音活动检测) 参数未能有效检测到静音间隙,导致音频片段未被正确切断。即使设定了 4 秒上限,若片段内缺乏足够长的静音,VAD 仍会将其视为一整段,进而被 Whisper 整体识别。

请按以下步骤强制分割:

  1. 进入 菜单工具/选项高级选项语音识别参数
  2. 调整静音分割持续毫秒:将默认的 500ms 降低到 140 甚至 100。值越小,VAD 对静音越敏感,更容易在短暂停顿时切分。
  3. 调整语音阈值:适当降低至 0.3 - 0.4(默认 0.5)。这会让模型更容易将低能量段判定为静音。
  4. 确保已勾选 Whisper预分割音频?,并设置 最长语音持续秒数4
  5. 选择VAD 中,确保使用了 ten-vadsilero(不要选 none)。
  6. 关键一步:如果启用了 合并过短字幕到邻近,请临时取消勾选,避免将切分后的短片段再次合并。
  7. 重新运行转录任务,观察是否还会出现超长字幕。

如果问题依旧,说明音频本身几乎无停顿(如快速播报),请考虑开启 菜单工具/选项高级选项 → 勾选 LLM重新断句,利用 AI 对识别结果进行二次分割。

请查阅相关文档:

ten-vad 和 silero有什么区别?

另外,需要启用恢复标点吗?需要启用识别说话人吗?这两者对字幕断句有帮助吗?还是说只对配音有帮助?

ten-vadsilero 是目前效果较好的两种 VAD(语音活动检测)模型集合,区别主要体现在训练数据、灵敏度和对特定语言的适应上:

  • silero:经典、广泛验证的 VAD 模型,通用性很强,对大多数场景(尤其是英语)表现稳定,静音检测可靠。
  • ten-vad:相对较新的模型,在中文及一些亚洲语种的语音边界检测上可能略有优势,预处理更精细。

通常建议先使用 ten-vad,若不理想再换 silero。对于纯字幕断句,两者差别不大,根据实际效果选取即可。


关于 恢复标点识别说话人

  • 恢复标点:启用后会在语音识别结果中自动添加逗号、句号等标点。它 不直接 辅助 VAD 切分或生成短字幕,但能让字幕更可读;如果后续使用了 LLM重新断句,带标点的文本会明显提升 AI 断句的准确性。若你只追求输出时长合适的字幕,可先不开启,若还需可读性或进一步优化断句,建议开启。
  • 识别说话人:用于区分不同说话者并标记(如 Speaker1Speaker2)。它 对字幕断句几乎无帮助,主要面向多角色配音场景;若你完全不需要配音,不必启用,开启反而会增加处理时间并可能降低稳定性。

以上两项可根据实际需求取舍,对直接字幕时长控制均无直接影响。

请查阅相关文档:

你之前的回答提到”调整语音阈值:适当降低至 0.3 - 0.4(默认 0.5)。这会让模型更容易将低能量段判定为静音。“

语音阈值不是越小越灵敏吗?怎么反而要设小?

之前的建议有误,请以本次说明为准。语音阈值越小越灵敏,意思是越容易把低能量片段当成语音,这会导致更少出现静音切割,从而产生更长的语音片段。要实现强制切分、生成合适时长的字幕,应该将语音阈值调大(例如 0.6 - 0.7),让 VAD 只把高置信度的语音判定为有效,低能量部分被当作静音,从而在停顿处更早切分。调整后,静音分割持续毫秒可以保持 140-200 即可,无需过分调低。重新运行一次,观察切分效果是否改善。若仍有超长字幕,再结合 LLM重新断句 进行二次处理。请查阅相关文档:语音识别中的VAD参数调整优化断句效果,调整语音识别时的字幕时长

LLM重新断句的话,无论使用什么渠道的旗舰模型,都会导致时间轴偏移,根本没法使用

LLM 重新断句产生时间轴偏移,是因为模型重新生成了字幕的起止时间,而原始时间轴信息在断句时被修改或丢弃。这是其工作原理决定的,尤其在通过 LLM 重新切分合并句子时,若提示词未严格约束时间轴保持原样,极易出现偏差,即使使用最先进的模型也难完全避免。

若你必须获得时间轴精准且长度合适的字幕,请按以下优先顺序尝试:

方案一:放弃 LLM 重新断句,完全依靠 VAD + Whisper 预分割硬性控制时长
这是最稳妥的方案,无需引入额外偏差。

  1. 取消勾选 LLM重新断句菜单 → 工具/选项 → 高级选项 中关闭)。
  2. 确保 Whisper预分割音频? 已勾选。
  3. 最长语音持续秒数 设为你要的目标值(如 4 秒)。
  4. 语音阈值 适当 调高 到 0.6–0.7,让 VAD 更积极地切分。
  5. 静音分割持续毫秒 设为 100–140,使更短的停顿也能触发切割。
  6. 临时取消勾选“合并过短字幕到邻近”,避免片段被重新合并。
  7. 重新执行语音识别,观察输出字幕时长是否满足要求。

方案二:若必须使用 LLM 重新断句,请修改提示词(有一定风险)
软件目录下的 prompts/recharge/recharge-llm.txt 定义了断句提示词。你可添加明确约束,要求模型不得修改任何时间轴,只允许合并或拆分句子内容时按比例分配时间,或直接保留原始时间
示例约束可写入:

重要:你必须保持原始每行字幕的时间轴不变,禁止生成新的开始和结束时间。你只可以对文本进行换行或合并,但返回时必须使用原时间轴。

修改后保存,重启软件测试。但需注意,因模型指令遵循能力差异,可能仍会偏移。

方案三:改用传统规则断句
高级选项 → 语音识别参数 中,将 rephrase 参数调整为 0(默认断句不处理)或 2(自动修正),而非使用 LLM 通道,可避免模型引入的时间偏移。此选项直接由软件内部逻辑处理,不会修改时间轴。

综上,建议优先使用方案一,以获得可靠的时间轴对齐。如果疑问仍存,请提供具体偏移示例以便进一步分析。

请查阅相关文档:

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