#4863 速度过慢,使用qwen3-tts进行翻译视频任务,已有双语字幕情况下,8728秒仅完成24句话

129.128* Posted at: 9 hours ago

启用了配音加速和嵌入双语字幕

5 Replies

Qwen3-TTS配音速度过慢通常与并发线程数、请求间隔、以及是否启用GPU有关。已有双语字幕说明已跳过识别和翻译,此时瓶颈主要在TTS本身的调用效率。

优化方法

  1. 调整配音并发与间隔
    打开 菜单 → 工具/选项 → 高级选项 → 字幕配音调整

    • 并发配音线程数 设为 2 或 3(过高可能导致限流或资源争抢)
    • 配音后暂停秒 设为 0 或 1(该渠道无特殊限流可关闭暂停)
  2. 确认GPU加速已启用

    • 确保主界面 CUDA加速 复选框已勾选。
    • 检查高级选项中 CUDA数据类型 是否为 float16int8,显存不足时优先 int8
    • Qwen3-TTS(本地内置)依赖GPU推理,若未正确配置 CUDA 12.8 + cuDNN 9.x,将回退到CPU导致极度缓慢。验证方法:CMD输入 nvcc -V 确认版本。
  3. 检查模型首次加载
    内置Qwen3-TTS首次运行时需下载模型,速度可能异常缓慢。若为首次使用,请保持网络畅通并耐心等待模型下载完成。后续任务应显著提速。

若以上调整无效,请提供 logs/ 文件夹下最新日志文件(底部约30行报错信息)以便进一步分析。

请查阅相关文档:

WARNING] cut_audio 时长小于 2000ms 需要下个字幕左移开始时间,diff=1536,prev_diff=640,next_diff=320
[WARNING] cut_audio 时长小于 2000ms 需要下个字幕左移开始时间,diff=1456,prev_diff=1152,next_diff=0
[WARNING] cut_audio 时长小于 2000ms 需要下个字幕左移开始时间,diff=1456,prev_diff=1152,next_diff=0
[WARNING] cut_audio 时长小于 2000ms 需要下个字幕左移开始时间,diff=1328,prev_diff=1760,next_diff=0
[WARNING] cut_audio 时长小于 2000ms 需要下个字幕左移开始时间,diff=1328,prev_diff=1760,next_diff=0
[WARNING] cut_audio 时长小于 2000ms 需要前面字幕延长结束时间,diff=1152,prev_diff=192,next_diff=2464
[WARNING] cut_audio 时长小于 2000ms 需要前面字幕延长结束时间,diff=1152,prev_diff=192,next_diff=2464
[WARNING] cut_audio 时长小于 2000ms 需要前面字幕延长结束时间,diff=1024,prev_diff=2464,next_diff=37760
[WARNING] cut_audio 时长小于 2000ms 需要前面字幕延长结束时间,diff=1024,prev_diff=2464,next_diff=37760
[WARNING] cut_audio 时长小于 2000ms 需要下个字幕左移开始时间,diff=1472,prev_diff=992,next_diff=928
[WARNING] cut_audio 时长小于 2000ms 需要下个字幕左移开始时间,diff=1472,prev_diff=992,next_diff=928
[WARNING] cut_audio 时长小于 2000ms 需要下个字幕左移开始时间,diff=992,prev_diff=0,next_di
......
需要下个字幕左移开始时间,diff=1856,prev_diff=0,next_diff=0
[WARNING] cut_audio 时长小于 2000ms 需要下个字幕左移开始时间,diff=1856,prev_diff=0,next_diff=0
[WARNING] cut_audio 时长小于 2000ms 需要前面字幕延长结束时间,diff=1680,prev_diff=0,next_diff=10496
[WARNING] cut_audio 时长小于 2000ms 需要前面字幕延长结束时间,diff=1680,prev_diff=0,next_diff=10496
[WARNING] cut_audio 时长小于 2000ms 需要前面字幕延长结束时间,diff=1344,prev_diff=0,next_diff=896
[WARNING] cut_audio 时长小于 2000ms 需要前面字幕延长结束时间,diff=1344,prev_diff=0,next_diff=896
[WARNING] cut_audio 时长小于 2000ms 需要下个字幕左移开始时间,diff=1664,prev_diff=896,next_diff=640
[WARNING] cut_audio 时长小于 2000ms 需要下个字幕左移开始时间,diff=1664,prev_diff=896,next_diff=640
[WARNING] cut_audio 时长小于 2000ms 需要前面字幕延长结束时间,diff=1696,prev_diff=0,next_diff=6336
[WARNING] cut_audio 时长小于 2000ms 需要前面字幕延长结束时间,diff=1696,prev_diff=0,next_diff=6336
[WARNING] cut_audio 时长小于 2000ms 需要前面字幕延长结束时间,diff=1632,prev_diff=2208,next_diff=7136
[WARNING] cut_audio 时长小于 2000ms 需要前面字幕延长结束时间,diff=1632,prev_diff=2208,next_diff=7136
[WARNING] cut_audio 时长小于 2000ms 需要下个字幕左移开始时间,diff=1184,prev_diff=7136,next_diff=64
[WARNING] cut_audio 时长小于 2000ms 需要下个字幕左移开始时间,diff=1184,prev_diff=7136,next_diff=64
[WARNING] cut_audio 时长小于 2000ms 需要前面字幕延长结束时间,diff=1408,prev_diff=1344,next_diff=12480
[WARNING] cut_audio 时长小于 2000ms 需要前面字幕延长结束时间,diff=1408,prev_diff=1344,next_diff=12480
[WARNING] cut_audio 时长小于 2000ms 需要下个字幕左移开始时间,diff=1920,prev_diff=12480,next_diff=0
[WARNING] cut_audio 时长小于 2000ms 需要下个字幕左移开始时间,diff=1920,prev_diff=12480,next_diff=0
[WARNING] cut_audio 时长小于 2000ms 需要下个字幕左移开始时间,diff=1920,prev_diff=0,next_diff=0
[WARNING] cut_audio 时长小于 2000ms 需要下个字幕左移开始时间,diff=1920,prev_diff=0,next_diff=0
[WARNING] cut_audio 时长小于 2000ms 需要前面字幕延长结束时间,diff=1248,prev_diff=640,next_diff=20384
[WARNING] cut_audio 时长小于 2000ms 需要前面字幕延长结束时间,diff=1248,prev_diff=640,next_diff=20384
[WARNING] cut_audio 时长小于 2000ms 需要下个字幕左移开始时间,diff=1696,prev_diff=20384,next_diff=0
[WARNING] cut_audio 时长小于 2000ms 需要下个字幕左移开始时间,diff=1696,prev_diff=20384,next_diff=0
[WARNING] cut_audio 时长小于 2000ms 需要下个字幕左移开始时间,diff=1392,prev_diff=0,next_diff=0
[WARNING] cut_audio 时长小于 2000ms 需要下个字幕左移开始时间,diff=1392,prev_diff=0,next_diff=0
[WARNING] cut_audio 时长小于 2000ms 需要前面字幕延长结束时间,diff=1280,prev_diff=1120,next_diff=1760
[WARNING] cut_audio 时长小于 2000ms 需要前面字幕延长结束时间,diff=1280,prev_diff=1120,next_diff=1760
[WARNING] cut_audio 时长小于 2000ms 需要下个字幕左移开始时间,diff=1280,prev_diff=1760,next_diff=0
[WARNING] cut_audio 时长小于 2000ms 需要下个字幕左移开始时间,diff=1280,prev_diff=1760,next_diff=0
[WARNING] cut_audio 时长小于 2000ms 需要下个字幕左移开始时间,diff=1744,prev_diff=96,next_diff=0
[WARNING] cut_audio 时长小于 2000ms 需要下个字幕左移开始时间,diff=1744,prev_diff=96,next_diff=0
[WARNING] cut_audio 时长小于 2000ms 需要前面字幕延长结束时间,diff=960,prev_diff=0,next_diff=4832
[WARNING] cut_audio 时长小于 2000ms 需要前面字幕延长结束时间,diff=960,prev_diff=0,next_diff=4832
[WARNING] cut_audio 时长小于 2000ms 需要前面字幕延长结束时间,diff=1184,prev_diff=1920,next_diff=None
[WARNING] cut_audio 时长小于 2000ms 需要前面字幕延长结束时间,diff=1184,prev_diff=1920,next_diff=None

这些 cut_audio 时长小于 2000ms 警告是音画对齐阶段(SpeedRate)的正常调整日志,表示某些字幕对应的配音片段太短(不足2秒),软件正在尝试通过移动相邻字幕的时间轴来同步。大量出现通常说明语音识别阶段产生的字幕片段过于细碎,导致对齐工作频繁。

如何减少这类警告并提升同步效果:

  1. 调整语音识别参数
    打开菜单 → 工具/选项 → 高级选项 → 语音识别参数

    • 最短语音持续毫秒 设为 3000(3秒以下片段将被合并)
    • 最长语音持续秒数 设为 6~10
    • 启用 合并过短字幕到邻近
    • 静音分割持续毫秒 适当提高(如 600~1000),避免在短静音处过度切分
  2. 选择更合适的VAD模型
    在高级设置中尝试将 选择VADten-vad 切换为 silero,有时能减少过度切分。
  3. 使用“二次识别” (如果嵌入单字幕)
    主界面勾选 二次识别,会在配音完成后重新对齐生成更精准的短字幕,但需要额外时间。
  4. 单视频交互模式编辑机会
    如果只处理一个视频,在语音识别完成后会弹出字幕编辑框,可手动合并过短的字幕行再继续。

这些警告本身不会导致失败,但如果频繁出现且最终音画不同步,请先按上述参数调整后重试。若仍有问题,请提供 logs/ 下最新的完整日志(底部约30行),以便进一步定位。

[ERROR] 硬件分离无声视频失败:Command '['ffmpeg', '-nostdin', '-y', '-fflags', '+genpts', '-i', 'E:/B站录播/1-合并弹幕版/团座日常直播/2026-05-31 07-55-12.mp4', '-an', '-c:v', 'h264_nvenc', 'novoice.mp4']' returned non-zero exit status 1.
Traceback (most recent call last):
File "videotrans\task\trans_create.py", line 900, in _split_novoice_byraw
File "videotrans\task\trans_create.py", line 1747, in _subprocess
File "subprocess.py", line 526, in run
subprosk


: Command '['ffmpeg', '-nostdin', '-y', '-fflags', '+genpts', '-i', 'E:/B站录播/1-合并弹幕版/团座日常直播/2026-05-31 07-55-12.mp4', '-an', '-c:v', 'h264_nvenc', 'novoice.mp4']' returned non-zero exit status 1.
[ERROR] 硬件分离无声视频失败:Command '['ffmpeg', '-nostdin', '-y', '-fflags', '+genpts', '-i', 'E:/B站录播/1-合并弹幕版/团座日常直播/2026-05-31 07-55-12.mp4', '-an', '-c:v', 'h264_nvenc', 'novoice.mp4']' returned non-zero exit status 1.
Traceback (most recent call last):
File "videotrans\task\trans_create.py", line 900, in _split_novoice_byraw
File "videotrans\task\trans_create.py", line 1747, in _subprocess
File "subprocess.py", line 526, in run
subprosk
: Command '['ffmpeg', '-nostdin', '-y', '-fflags', '+genpts', '-i', 'E:/B站录播/1-合并弹幕版/团座日常直播/2026-05-31 07-55-12.mp4', '-an', '-c:v', 'h264_nvenc', 'novoice.mp4']' returned non-zero exit status 1.
[DEBUG] [FFMPEG-CMD]:
ffmpeg -hide_banner -nostdin -ignore_unknown -threads 0 -y -fflags +genpts -i E:/B站录播/1-合并弹幕版/团座日常直播/2026-05-31 07-55-12.mp4 -an -c:v libx264 novoice.mp4

这个错误是因为 ffmpeg 尝试使用 NVIDIA 硬件编码器 h264_nvenc 分离无声视频时失败,原因通常是文件路径含有中文、空格、特殊符号(你的路径中有 B站录播/1-合并弹幕版/团座日常直播/2026-05-31 07-55-12.mp4),导致命令解析异常。软件已自动回退到软编码 libx264(见最后一行 DEBUG 日志),处理可以继续,但速度会更慢。

解决方案:

  1. 精简文件路径
    将视频移动到仅包含英文、数字和短横线的目录(例如 D:\videos\)并重命名为简短文件名,如 20260531.mp4。避免使用中文、空格、/-(虽然短横线通常安全,但文件名中的空格和特殊符号是常见问题)。
  2. 检查 CUDA 环境(如需硬件加速)
    若希望下次任务使用 GPU 加速,请确保:

    • NVIDIA 显卡驱动已更新到最新。
    • CUDA 12.8 和 cuDNN 9.x 正确安装(CMD中输入 nvcc -V 确认)。
    • 在软件主界面勾选 CUDA加速
  3. 回退方案
    当前任务已自动使用软编码,可耐心等待完成。若不想等待,可停止任务,缩短路径后重新执行(记得勾选 清理已生成 避免使用缓存)。

请查阅相关文档:

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