#5724 I was using version 3.97 and my set up works (all my settings are correct, etc), I can perform video dubbing with voice

108.160* Posted at: 1 hour ago

I was using version 3.97 and my set up works (all my settings are correct, etc), I can perform video dubbing with voice clone from Chinese to English, there are few errors about speaker mixing but that is acceptable.

I recently upgraded to latest version 4.04, I did follow every setting from my previous install of version 3.97, included hugging face access token, and using same models, but I am having issue with my subtitle slice, instead of 6-10 seconds of split based on [VAD max speech duration], my result is way longer like 40 seconds long, sometimes over a minute, I have identical settings from my older version but not sure where the issue is.

My search saying about [LLM resegmentation], I don't find one setting that turns this off completely, but I did follow all the settings found in [best results recommendation] like [min speech duration = 3000ms], [max speech duration = 10s], enable [whisper pre-segment audio], enable [merge short titles], etc.

Can you provide guidance on why this is happening? older version 3.97 works correctly in subtitles split and assigning speaker role, but newer version 4.04 does not work on subtitles split.

Thank you.

9 Replies

This is likely caused by changes in the default settings or configuration interpretation between v3.97 and v4.04. The most probable reasons are:

  1. LLM Resegmentation inadvertently enabled – In v4.04, the "rephrase" (LLM resegmentation) option may be enabled by default or through your previous configuration being incompatible. LLM resegmentation merges short sentences into much longer ones, resulting in 40+ second subtitle blocks.
    Fix: Go to Menu → 工具/选项 → 高级选项 → 语音识别参数 and ensure the field "重新断句" (rephrase) is set to "0" (默认断句). Also double-check that "LLM重新断句所用AI渠道" is empty or set to "None". If you have a model selected there, change it to empty or "默认".
  2. VAD model or parameters changed – v4.04 might have altered the default VAD model or threshold values.
    Fix: In the same "语音识别参数" section, verify that "选择VAD" is the same as you used in v3.97 (e.g., "silero_vad" or "webrtcvad"). Also check "语音阈值" and "非语音阈值" – if they are too high or too low, VAD may not split properly. Try resetting them to default (usually 0.5 and 0.5 respectively) and re-test.
  3. "Whisper预分割音频" interaction – This option pre-cuts audio before feeding to Whisper. In combination with VAD, it should produce ~10s clips. If VAD is not properly configured, the pre‑division may fall back to whole‑file processing.
    Fix: Ensure "Whisper预分割音频" is enabled and that the "最长语音持续(秒)" is set to 10 (or 6) and "最短语音持续(毫秒)" is 3000–4000.
  4. Subtle configuration migration issue – Since you copied settings manually, some new defaults in v4.04 might override your old values.
    Fix: Consider deleting the videotrans/params.json and videotrans/cfg.json files (after backing up your API keys) to force a clean reset, then re‑enter only the essential changes.

Please check the above points, especially the LLM resegmentation setting, as it is the most common cause of unexpectedly long subtitle segments after an upgrade.

Please refer to the relevant documentation:

I have installed version 4.04 separately on as a second instance with my version 3.97.

Currently, my version 3.97 still works completely fine, I have set all my settings on version 4.04 on a new install and not upgraded. I did copy each item identical from v3.97 to v4.04 but could not get it to work.

Can you enumerate all the necessary setting I need to set so that I can correctly split my subtitles and assign correct roles for voice cloning on a newly clean default setting install v4.04?

在全新安装的 v4.04 上实现正确的字幕分割(6‑10 秒)和说话人角色分配,请按以下步骤逐项配置。所有设置均在默认配置基础上修改,切勿开启 LLM 重断句。


1. 主界面(翻译视频和音频)

  • ASR Channel
    英文视频 → faster-whisper(本地内置),模型选 large-v3
    中文视频 → Qwen-ASR(本地内置)Firered中文(本地内置)
  • Trans Channel:推荐 DeepSeek / OpenAI,并勾选 发送完整字幕
  • Dubbing Channel:选择支持克隆的渠道,Select Voice 选 clone
  • Spoken Lang / Target Lang:按实际填写(例如 zh‑cn → en)
  • 同步对齐:勾选 音频加速不勾 视频慢速
  • 网络代理:如果需要国外服务,填写 http://127.0.0.1:端口

2. “设置更多参数…”弹窗

点击主界面倒数第二行的 设置更多参数...,确保:

  • 识别说话人勾选,右边数字填预计说话人数量(如 2,不确定则留空)
  • 配音语速0
  • 降噪勾选
  • 分离人声背景声:建议勾选(提升克隆质量)
  • 嵌入背景:若分离了人声背景声,则勾选(否则不勾)
  • 恢复标点、删除标点:选 恢复标点
  • 其他项保持默认

3. 高级选项(菜单 → 工具 → 高级选项)

3.1 通用设置

  • LLM重新断句:关闭。确保 LLM重新断句所用AI渠道None
  • CPU同时任务数:建议 2~4
  • GPU同时任务数:保持 1(除非多卡且显存大于 24G)

3.2 语音识别参数

  • 选择VADsilero_vad
  • 语音阈值0.5
  • 非语音阈值0.5
  • 最长语音持续(秒)10
  • 最短语音持续(毫秒)3000
  • Whisper预分割音频勾选
  • 合并过短字幕到邻近勾选
  • 合并过短字幕勾选
  • 说话人分离模型:选择 内置(默认)(若使用 pyannote 需额外配置 token)
  • 计算数据类型float16(GPU)或 int8(CPU)
  • 识别准确度 beam_size1
  • 识别准确度 best_of1
  • 启用上下文感知不勾
  • 热词:留空

3.3 字幕翻译调整

  • 发送完整字幕勾选(AI翻译时)
  • AI翻译渠道每批字幕行数100
  • 传统翻译渠道每批字幕行数10

3.4 字幕配音调整

  • 并发配音线程数1
  • 配音后暂停秒5(防止限流)
  • 移除配音前后静音缓冲勾选
  • EdgeTTS并发数(若使用):1

3.5 字幕声音画面对齐

  • 音频加速最大倍数100
  • 视频慢放最大倍数10(建议保持,因为不勾视频慢速)
  • 中日韩字幕单行字符数15
  • 其他语言字幕单行字符数40

4. 保存并测试

  1. 点击高级选项的 保存 按钮。
  2. 返回主界面,点击 Start 开始翻译。
  3. 观察语音识别完成后弹出的字幕编辑窗口:每段字幕时长应在 3~10 秒 之间,且带有说话人标签(如果启用说话人识别)。
  4. 如果仍然出现超长字幕,请确认 LLM重新断句 确实为 0(在高级选项中显示为 0默认断句),且 Whisper预分割音频 已勾选。

5. 常见问题验证

  • 若使用 clone 角色时报错参考音频时长错误,回到高级选项将 最短语音持续毫秒 提高到 30004000最长语音持续秒数 设为 610
  • 如果翻译后字幕出现空白行,是 AI 合并字幕的正常现象,不要手动删除空行,否则会破坏时间轴对齐。

按照以上清单逐项核对,应可在 v4.04 上重现 v3.97 的正确字幕分割和角色分配效果。

how do I select none on [AI provider for LLM re-segmentation]? there are only 2 selection, chatgpt and deepseek, there is no blank or none

在 v4.04 中关闭 LLM 重新断句的正确方式不在高级选项里,而是在主界面的 ASR Channel 行

操作步骤

  1. 回到主界面(翻译视频和音频)。
  2. 找到第 2 行 ASR Channel 的下拉框。
    在该下拉框中,您会看到两个选项:

    • 默认断句
    • LLM重新断句
  3. 选择 默认断句,而不是 LLM重新断句

一旦您选择“默认断句”,LLM 重新断句就会被完全禁用,高级选项中的“LLM重新断句所用AI渠道”的设置将不再生效(即使那里选了 ChatGPT 或 DeepSeek 也不会被使用)。

补充说明

  • 高级选项中的“LLM重新断句所用AI渠道”仅当您在主界面选择了“LLM重新断句”时才会起作用,用于指定使用哪个 AI 模型进行断句。它本身不是开关,只是一个配置项。
  • 要确保字幕按 VAD 正常分割(6‑10 秒),请同时确认:

    • 高级选项→语音识别参数→最长语音持续(秒) = 10(或 6)
    • 最短语音持续(毫秒) = 3000
    • Whisper预分割音频 已勾选
    • 合并过短字幕到邻近 已勾选

按照以上设置,v4.04 应该能正确产生 6‑10 秒的字幕片段,而不出现 40 秒以上的长字幕。

I have followed all the settings you described:

on ASR channel, I have [default split] and all the advanced setting [min speech duration = 3000ms], [max speech duration = 10s], enable [whisper pre-segment audio], enable [merge short titles].

But I am still getting the same issue with my subtitle split, any other part I need to set or pay attention to achieve my subtitle split on v4.04 the way it is correct in v3.97?

根据您的反馈,尽管所有设置与 v3.97 一致,v4.04 仍无法达到预期的字幕分割效果。这通常是因为某些底层默认值或逻辑发生了细微变化。请按以下步骤逐一排查,通常能解决问题:

  1. VAD 模型与阈值
    进入 高级选项 → 语音识别参数,尝试:

    • “选择VAD” 切换为 webrtcvad(而非 silero_vad);
    • “语音阈值” 调低至 0.3(原来 0.5),“非语音阈值” 也设为 0.3
    • “静音分割持续毫秒” 设为 300(默认可能为 5001000,过大会导致长字幕不分割)。
  2. 确认“合并过短字幕”的双重勾选
    高级选项 → 语音识别参数 中,您需要确保 两个 复选框都已勾选:

    • 合并过短字幕到邻近
    • 合并过短字幕(位于其下方)
      如果只勾了前者,短字幕不会被切分或合并,可能导致 VAD 输出长片段。
  3. 关闭“说话人识别”临时测试
    说话人识别(diarization)可能干扰 VAD 分割逻辑。请在主界面 设置更多参数... 中暂时 取消勾选 识别说话人,然后运行一次测试。如果分割恢复正常,说明说话人模型或参数需要调整(例如将 nums_diariz 设为 0 或留空)。
  4. 检查 Whisper 预分割音频与 VAD 的交互
    虽然您已勾选 Whisper预分割音频,但在 v4.04 中该功能在 webrtcvad 下表现更稳定。如果仍然无效,尝试 取消勾选 Whisper预分割音频,仅依赖 VAD 分割,观察结果。若取消后分割正常,则可能是新版本中该功能存在 bug。
  5. 清除所有缓存
    缓存可能导致旧设置残留。请先关闭软件,删除以下目录(注意备份 params.json 中的 API Key):

    • 软件目录/tmp/ 下所有文件和文件夹(保留 tmp 空目录);
    • 软件目录/output/ 下所有输出;
    • 软件目录/videotrans/ 下的 cfg.jsoncodec.jsonass.json(不要删除 params.json)。
      然后重启软件,重新设置参数(确保点击保存),再运行测试。
  6. 导出并覆盖 v3.97 的配置文件
    如果您仍保留 v3.97 的完整安装,可以:

    • 从 v3.97 的 videotrans/ 目录复制 cfg.jsonparams.json(注意 API Key 可能存在不同格式);
    • 覆盖到 v4.04 的对应目录(请先备份 v4.04 的这两个文件);
    • 重启 v4.04,查看分割是否恢复。
      如果恢复正常,说明 v4.04 的默认配置有隐藏差异。

如果以上步骤均无效,请提供以下信息以便进一步分析:

  • 软件左上角的版本号(确认是 v4.04 完整版不是补丁包);
  • logs/ 目录下最新日期的日志文件的最后 30 行内容(粘贴文本);
  • 一个未能正确分割的视频片段(可选,用于复现)。

there was a small improvement in split, but still longer than 10 seconds and split are combined from multiple speakers dialogue, plus the dubbing part did not produce some of the audios and the final output has a lot of silent part. there are still issue on setting it up to correctly work.

here are the log details and other results

log result during run
[DEBUG] 上次缓存的角色:clone,字幕嵌入类型:0,发音语言:Simplified Chinese,目标语言:English,目标语言代码:en,模型:1.7B,TTS渠道[2]
[DEBUG] 可用 Nvidia 显卡数: 0
[DEBUG] 找到 0 个 Nvidia GPUs, 耗时: 0s
[DEBUG] 返回缓存的编解码器 Darwin-264: h264_videotoolbox
[DEBUG] 返回缓存的编解码器 Darwin-265: hevc_videotoolbox

[DEBUG] start 9 jobs
[DEBUG] app_cfg.proxy=''
[DEBUG] 可以使用 huggingface.co
[DEBUG] [TransCreate]最终配置信息:self=TransCreate(uuid='dc6e523b7f', proxy_str=None, last_down_time=0, precent=1, hasend=False, should_recogn=True, should_trans=True, should_dubbing=True, should_separate=True, should_hebing=True, source_srt_list=[], target_srt_list=[
......
e='Qwen3-ASR'],耗时26.127667903900146s
[DEBUG] Qwen-asr返回的字词时间戳数据:jsdata=[SrtItem(text="It tastes exactly like my grandma's.", start_time=9168, end_time=11552, startraw='00:00:09,168', endraw='00:00:11,552', line=1, time='00:00:09,168 --> 00:00:11,552', spk='', filename='/Users/username/pyvideotrans_404/tmp/2126/clip_1783551407.813813/audio_0.wav')]
[DEBUG] 移除无效字幕行
[DEBUG] 修正重叠时间轴
[DEBUG] 开始移除每条字幕末尾标点
[DEBUG] 二次识别成功完成

[DEBUG] 合并背景音 beishu=1,atime=73258,vtime=27156
[DEBUG] 视频时长73266ms-音频时长27156ms=46110ms,需延长音频
[DEBUG] 当前原始视频是标准264,输出也是264,未视频慢速,未嵌入硬字幕,放弃视频末尾处理,实现无损输出。音频时长-视频时长=0ms
[DEBUG] 返回缓存的编解码器 Darwin-264: h264_videotoolbox
[DEBUG] [最终视频合成]copy模式,无需重新编码:
['-y', '-progress', 'compose1783551447.491819.txt', '-i', 'novoice.mp4', '-i', 'will_embed.m4a', '-map', '0:v', '-map', '1:a', '-c:v', 'copy', '-c:a', 'copy', '-movflags', '+faststart', '-shortest', 'laste_target.mp4']
[DEBUG] runffmpeg:cmd=['ffmpeg', '-hide_banner', '-nostdin', '-ignore_unknown', '-threads', '0', '-y', '-progress', 'compose1783551447.491819.txt', '-i', 'novoice.mp4', '-i', 'will_embed.m4a', '-map', '0:v', '-map', '1:a', '-c:v', 'copy', '-c:a', 'copy', '-movflags', '+faststart', '-shortest', 'laste_target.mp4']

subtitle [zh-cn.srt] ASR result (original audio)
1
00:00:09,184 --> 00:00:13,104
这味道跟我外婆做的一模一样。

2
00:00:13,408 --> 00:00:23,408
他走了八年了,我以为这辈子再也吃不到这个味道了。网上大家都叫您规矩,总厨,您被一个经理辜负之后,只靠规矩就翻了盘,您怎么看?

3
00:00:23,424 --> 00:00:36,608
那些规矩从来不是为了反击谁,我只是在那个晚上想明白了一件事。:尊重不是别人给你的,是你自己赢回来的手艺长在手上。

4
00:00:36,976 --> 00:00:48,976
底线刻在心里,这两样东西谁都拿不走,不管你在多大的厨房里。

5
00:01:00,000 --> 00:01:09,616
爸跟你当年种的那棵是同一个品种,他们说这边的土好能长大。

subtitle (en.srt) trans result (transcription) - final version
1
00:00:09,168 --> 00:00:11,552
It tastes exactly like my grandma's


other part did not result any audio

here are my settings:
-used [tenvad]
-VAD speech probability threshold = 0.3
-no speech threshold = 0.3
-VAD max speech = 10s
-VAD min silence = 300ms
-recognition(2) max duration = 2s (default)
-recognition(2) min duration = 1000s (default)
-VAD min speech = 3000s
-short sub merge = checked
-whisper pre-segment audio = checked
-model speaker separation = pyannote (but speaker diarization is not checked during run)
-recognition accuracy (beam) = 1
-recognition accuracy (best) = 1
-context awareness = unchecked
-temperature = blank
-on ASR channel = [default split] (no LLM), [STT again] = checked
-on Trans channel = [send SRT] checked

  • on Synchronizing = [dubb speedup] checked, [slow video] not checked, [no subs] selected
  • dubb rate = 0, [restore punctuation cn/en] selected, [speaker diarization] not checked


final result file has only few seconds of audio and the rest has no sound

any suggestion on the issue on how to fix it?

根据您提供的日志和描述,问题核心在于最终配音音频的长度仅为 27 秒,而视频长达 73 秒,导致后半段完全静音。这通常意味着配音阶段仅成功生成了极少数片段的音频,大部分被跳过或失败。结合您的配置和日志,最可能的原因是 二次识别(STT again) 干扰了流程。

原因分析

  • 您在 ASR Channel 中勾选了 “STT again”(即二次识别)。该功能会在配音完成后,对配音结果重新进行语音识别以生成更精准的字幕。但此过程要求配音音频完整、说话人清晰。如果配音失败或质量差,二次识别可能只返回极少结果,甚至导致后续合成出错(如只生成第一条配音文件的正确音频,之后全部丢失)。
  • 从日志可见,二次识别成功完成,但只返回了长度为 2 秒的配音片段(start_time=9168, end_time=11552)。这暗示后续配音片段未被二次识别正确处理,或配音本身未生成文件。
  • 您还启用了 pyannote 说话人分离模型(虽然运行时未勾选说话人识别,但配置可能已写入),但 Qwen-ASR 的输出并未显示说话人标签(spk=''),说明并未实际分离,但底层可能仍在运行额外逻辑,轻微拖慢或干扰。

解决方案(按顺序尝试)

1. 关闭二次识别(STT again)

这是最关键的一步。
回到主界面 → ASR Channel 行 → 取消勾选 “STT again”(或设置为“二次识别”关闭)。
这样将跳过第二次 ASR 步骤,避免它干扰配音文件的完整性。

2. 暂时关闭说话人分离模型

进入 高级选项 → 语音识别参数 → 将 说话人分离模型 设为 内置(默认),而不是 pyannote。
同时确保主界面 “识别说话人” 未勾选。
说话人分离在某些场景下会改变字幕组织方式,可能导致部分片段被错误合并或跳过。

3. 检查配音文件是否完整生成

执行一次简化任务(只翻译、配音、合成,不勾选二次识别和说话人识别)。
任务开始后,打开临时目录:
软件目录/tmp/<进程ID>/(例如 /Users/username/pyvideotrans_404/tmp/2126/
检查是否有大量类似 000.wav001.wav 的配音文件(数量应与字幕行数匹配)。
如果只有 1-2 个文件,说明配音渠道(如 Qwen-TTS、Edge-TTS)出现问题。

4. 简化后再逐项开启

先使用最简单的配置验证基本流程无误:

  • ASR:faster-whisper + large-v3(暂时不用 Qwen-ASR)
  • 翻译:DeepSeek 或 Google
  • 配音:Edge-TTS(角色选一个标准的英文男声,如 en-US-GuyNeural,不选 clone)
  • 同步:勾选 音频加速,不勾视频慢速
  • 字幕:选择 嵌入硬字幕(不要选“不嵌入字幕”)
  • 高级选项:关闭所有说话人识别、二次识别、LLM 重断句

如果此基本流程能生成完整的含配音视频,说明问题出在 Qwen-ASR、clone 角色或二次识别上。再逐一恢复您的偏好配置,找出冲突项。

5. 检查日志中的关键错误

logs/ 目录中打开最新日志,搜索 ERRORerror,确认是否有 TTS 或翻译阶段的失败记录。尤其注意:

  • 是否包含 “DubbingSrt error …” 或 “All error for …”
  • 是否提示 “No valid subtitle file exists” 或 “目标字幕文件长度 0”

将相关错误行复制出来进一步分析。

总结

最可能的修复路径是:关闭二次识别(STT again)切换说话人分离模型为内置。如果无效,按上述简化流程逐步排查。请在测试后提供新日志或结果。

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: ko-fi.com/jianchang512

Related resource