#7954 list index out of range

211.64**8 Posted at: 1 hour ago

list index out of range


=
system:Windows-10-10.0.26300-SP0
version:v4.15
frozen:True
language:zh_CN
root_dir:F:/win-pyvideotrans-v4.15

5 Replies

#1 DeepSeek reply at 1 hour ago

list index out of range 是 Python 的通用索引越界错误,知识库中无该报错的具体成因记录,仅凭这一行信息无法定位是哪个环节(语音识别/翻译/配音/合成)触发的,可能是字幕切分、模型返回数据为空、缓存文件损坏等导致。

请提供以下信息以便分析:

  1. 日志文件:打开 F:/win-pyvideotrans-v4.15/logs/ 文件夹,找到日期最新的 .log 文件,复制底部约30行报错信息发给我。
  2. 操作场景:你当时使用的是哪个功能(翻译视频 / 语音转录 / 文字配音 / 翻译字幕),以及具体点的是哪一步?
  3. 所选渠道:语音识别、翻译、配音分别选的哪个渠道和模型?原始视频的发音语言和目标语言是什么?
  4. 是否可复现:换个视频或重启软件后还报同样错误吗?

补充提示(可先行尝试):

  • 勾选主界面的 清理已生成 后重试,排除旧缓存/旧字幕文件损坏导致的越界。
  • 若涉及 AI 翻译或 AI 纠错,进入 菜单 → 工具 → 高级选项 → 字幕翻译,把 AI翻译渠道每批字幕行数 改为 10 或 1 再试(字幕行数异常也易引发此类错误)。
#2 211.64**8 reply at 1 hour ago


Application started at 2026-10-12 01:55:52

Loading resources...
Loading main window...
Initializing UI...
SetupUI end...
import recognition ...
import tts ...
import translate ...
Get cache ...
Set default value ...
import voices list ...
Set tts voice ...
[DEBUG] Version: v4.15, Frozen:True, OS: win32
上次缓存的角色:No,字幕嵌入类型:1,发音语言:日语,目标语言:简体中文,目标语言代码:zh-cn,模型:large-v3-turbo,TTS渠道[0]
show main window ...
Bind signal...
set cursor...
end
[DEBUG] app_cfg.proxy=''
[DEBUG] 可用 Nvidia 显卡数: 1
[DEBUG] 找到 1 个 Nvidia GPUs, 耗时: 3s
[DEBUG] cpu_count=32,app_cfg.MAX_GPU_PROCESS=1, app_cfg.MAX_CPU_PROCESS=1, task_nums=1
[DEBUG] start 9 jobs
[DEBUG] 无法连接 huggingface.co, 使用镜像替换: hf-mirror.com
[DEBUG] 平台: Windows。正在按优先级检测最佳的 'h264' 编码器: ['nvenc', 'qsv', 'amf']
[DEBUG] 正在测试编码器是否可用: h264_nvenc...
[DEBUG] 硬件编码器 'h264_nvenc' 可用。
[DEBUG] 已选择硬件编码器: h264_nvenc
[DEBUG] 最终确定使用的编码器: h264_nvenc
[DEBUG] 平台: Windows。正在按优先级检测最佳的 'hevc' 编码器: ['nvenc', 'qsv', 'amf']
[DEBUG] 正在测试编码器是否可用: hevc_nvenc...
[DEBUG] 硬件编码器 'hevc_nvenc' 可用。
[DEBUG] 已选择硬件编码器: hevc_nvenc
[DEBUG] 最终确定使用的编码器: hevc_nvenc

#3 DeepSeek reply at 1 hour ago

你贴出的这段只是软件启动阶段的调试日志,其中没有任何报错堆栈,也没有 list index out of range 出现的位置,因此无法定位原因。

从日志可确认的信息:版本 v4.15 预打包版,路径 F:/win-pyvideotrans-v4.15,已识别到 1 张 N 卡并启用硬件编码(h264_nvenc / hevc_nvenc),配置为「日语 → 简体中文、模型 large-v3-turbo、TTS 渠道 Edge-TTS、硬字幕嵌入」。

请补充以下内容:

  1. 真正的报错日志:打开 F:/win-pyvideotrans-v4.15/logs/ 文件夹,找到日期最新的 .log 文件(如 20261012.log),用记事本打开,拉到最底部,复制最后 30 行左右(包含 Traceback、File "..."、list index out of range 的那一段)发给我。报错堆栈里的文件名和行号是定位问题的关键。
  2. 触发时机:是在点击「开始执行」后多久报的?卡在哪个阶段(语音识别中 / 字幕翻译中 / 配音中 / 最后合成视频时)?
  3. 是否可复现:换一个视频、或重启软件后是否仍报同样错误?

可先行尝试的排除手段:

  1. 勾选主界面的 清理已生成 后重新执行一次,排除上一次残留的旧字幕/缓存文件损坏导致的越界。
  2. 因为是「日语识别 + 中文翻译」,如果日志显示报错出现在翻译阶段,请进入 菜单 → 工具 → 高级选项 → 字幕翻译,把 AI翻译渠道每批字幕行数 改为 10 或 1;同时把 传统翻译渠道每批字幕行数 也改为 1 再试。
  3. 若报错出现在最后合成阶段,进入 菜单 → 工具 → 高级选项 → 视频输出控制,勾选 强制软编码视频?,排除硬件编码器异常。

其中第 2、3 条仅为排除性尝试,本知识库中没有 list index out of range 的直接对应条目,最终仍需靠日志堆栈确认具体位置。

#4 211.64**8 reply at 1 hour ago

[ERROR] Model: large-v3-turbo,[WinError 5] 拒绝访问。
Traceback (most recent call last):
File "videotrans\configure\base.py", line 251, in _new_process
File "videotrans\process\signelobj.py", line 140, in submit_task_cpu
File "videotrans\process\signelobj.py", line 114, in get_executor_cpu
File "multiprocessing\context.py", line 119, in Pool
File "multiprocessing\pool.py", line 215, in init
File "multiprocessing\pool.py", line 306, in _repopulate_pool
File "multiprocessing\pool.py", line 329, in _repopulate_pool_static
File "multiprocessing\process.py", line 121, in start
File "multiprocessing\context.py", line 336, in _Popen
File "multiprocessing\popen_spawn_win32.py", line 73, in init
PermissionError: [WinError 5] 拒绝访问。
[DEBUG] [新进程任务 结束:title='Model: large-v3-turbo'],耗时31.15034532546997s
[ERROR] 单视频模式翻译失败:[WinError 5] 拒绝访问。
Traceback (most recent call last):
File "videotrans\task\only_one.py", line 71, in run
File "videotrans\task\_stage_recogn.py", line 63, in recogn
File "videotrans\recognition\__init__.py", line 141, in run
File "videotrans\recognition\_base.py", line 101, in run
File "videotrans\recognition\_whisper.py", line 39, in _exec
File "videotrans\recognition\_whisper.py", line 137, in _faster
File "videotrans\configure\base.py", line 251, in _new_process
File "videotrans\process\signelobj.py", line 140, in submit_task_cpu
File "videotrans\process\signelobj.py", line 114, in get_executor_cpu
File "multiprocessing\context.py", line 119, in Pool
File "multiprocessing\pool.py", line 215, in init
File "multiprocessing\pool.py", line 306, in _repopulate_pool
File "multiprocessing\pool.py", line 329, in _repopulate_pool_static
File "multiprocessing\process.py", line 121, in start
File "multiprocessing\context.py", line 336, in _Popen
File "multiprocessing\popen_spawn_win32.py", line 73, in init
PermissionError: [WinError 5] 拒绝访问。

#5 DeepSeek reply at 1 hour ago

这是 Windows 系统层面阻止了软件创建新的子进程(多进程 CPU 池),并非软件功能错误。堆栈显示:代码在 videotrans/process/signelobj.py 创建 multiprocessing.Pool 时,被 popen_spawn_win32.py 的 CreateProcess 拒绝(WinError 5),因此语音识别阶段(faster-whisper / large-v3-turbo)一启动就失败。常见诱因有三类:杀毒/安全软件拦截进程创建、程序所在盘符或目录权限受限、未以管理员权限运行。

按顺序排查:

  1. 加入杀毒白名单(最常见原因)
    把 F:\win-pyvideotrans-v4.15 整个目录和 sp.exe 加入信任/排除列表,涉及的软件包括:360安全卫士、火绒、腾讯电脑管家、Windows Defender。可先临时完全关闭杀毒软件测试一次,若不再报错即为该原因。
    同时检查 Windows 安全中心 →「病毒和威胁防护」→「勒索软件防护」→ 受控文件夹访问是否开启,开启会直接导致 WinError 5,请关闭或把软件目录加入允许列表。
  2. 以管理员身份运行
    右键 sp.exe → 「以管理员身份运行」。若有效,可右键 sp.exe → 属性 → 兼容性 → 勾选「以管理员身份运行此程序」永久生效。
  3. 更换安装路径
    F:\ 盘若是移动硬盘、网络盘、虚拟盘或非 NTFS 分区,子进程创建容易被拒。请把软件整体移动到本地固定硬盘的浅层纯英文目录,例如 D:\pyvideotrans,路径不要含中文、空格、特殊符号,也不要放在 C:\Program Files 等受保护目录。
  4. 清理残留
    安全关闭软件后,进入 F:\win-pyvideotrans-v4.15\tmp\ 清空里面的临时文件;再删除 videotrans 目录下所有 __pycache__ 文件夹。
  5. 重启电脑
    上述操作完成后重启系统,再重新执行任务。

补充说明:日志里显示已识别到 1 张 N 卡,但本次走的是 CPU 进程池(submit_task_cpu)。如果排查完权限问题后速度很慢,可确认「启用CUDA加速」是否已勾选(需 CUDA 12.8+ / cuDNN 9.11)。

若以上均无效,请提供:F:\win-pyvideotrans-v4.15\logs\ 下最新日志底部约30行、F 盘的类型(本地硬盘/移动硬盘/网络盘)、以及所用杀毒软件名称。

请查阅相关文档:

Thinking...
Post Your Reply
If you have more than 50 messages, you will no longer receive an automatic reply. Please ask a new question!
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 via ko-fi.com

Related resource