#6913 语音识别阶段出错[Huggingface_ASR(内置)] The expanded size of the tensor (3000) must match the existing size (47284) at non-singlet

182.147.**2 Posted at: 1 hour ago

语音识别阶段出错[Huggingface_ASR(内置)] The expanded size of the tensor (3000) must match the existing size (47284) at non-singleton dimension 1. Target sizes: [128, 3000]. Tensor sizes: [128, 47284]:Traceback (most recent call last):
File "videotrans\process\stt_pipe.py", line 94, in pipe_asr
File "D:\win-pyvideotrans-v4.11\_internal\transformers\pipelines\automatic_speech_recognition.py", line 244, in call

return super().__call__(inputs, **kwargs)

File "D:\win-pyvideotrans-v4.11\_internal\transformers\pipelines\base.py", line 1245, in call

outputs = list(final_iterator)

File "D:\win-pyvideotrans-v4.11\_internal\transformers\pipelines\pt_utils.py", line 126, in next

item = next(self.iterator)

File "D:\win-pyvideotrans-v4.11\_internal\transformers\pipelines\pt_utils.py", line 271, in next

processed = self.infer(next(self.iterator), **self.params)

File "D:\win-pyvideotrans-v4.11\_internal\torch\utils\data\dataloader.py", line 733, in _next
......
rs\pipelines\automatic_speech_recognition.py", line 244, in call

return super().__call__(inputs, **kwargs)

File "D:\win-pyvideotrans-v4.11\_internal\transformers\pipelines\base.py", line 1245, in call

outputs = list(final_iterator)

File "D:\win-pyvideotrans-v4.11\_internal\transformers\pipelines\pt_utils.py", line 126, in next

item = next(self.iterator)

File "D:\win-pyvideotrans-v4.11\_internal\transformers\pipelines\pt_utils.py", line 271, in next

processed = self.infer(next(self.iterator), **self.params)

File "D:\win-pyvideotrans-v4.11\_internal\torch\utils\data\dataloader.py", line 733, in next

data = self._next_data()

File "D:\win-pyvideotrans-v4.11\_internal\torch\utils\data\dataloader.py", line 789, in _next_data

data = self._dataset_fetcher.fetch(index)  # may raise StopIteration

File "D:\win-pyvideotrans-v4.11\_internal\torch\utils\data\_utils\fetch.py", line 43, in fetch

return self.collate_fn(data)

File "D:\win-pyvideotrans-v4.11\_internal\transformers\pipelines\base.py", line 173, in inner

padded[key] = _pad(items, key, _padding_value, padding_side)

File "D:\win-pyvideotrans-v4.11\_internal\transformers\pipelines\base.py", line 109, in _pad

tensor[i, : len(item[key][0])] = item[key][0]

RuntimeError: The expanded size of the tensor (3000) must match the existing size (47284) at non-singleton dimension 1. Target sizes: [128, 3000]. Tensor sizes: [128, 47284]
[SpeechToText]语音转录: self.out_format='srt',self.copysrt_rawvideo=True,self.spk_insert=False
[TaskCfgSTT]
原始输入文件名: F:/超爱/START破解中文/kks11.cc@ALDN-600J/JN10395.mp4,
输出结果保存到文件夹: D:/BaiduNetdiskDownload/win-pyvideotrans-v4.11/output/recogn,
临时文件夹: D:/win-pyvideotrans-v4.11/tmp/17636/d3cb1601ca
已启用CUDA加速
未选 降噪
语音识别:Huggingface_ASR(内置), kotoba-tech/kotoba-whisper-v2.0 断句方式:默认断句
发音语言:ja
未选 降噪


=
system:Windows-10-10.0.19045-SP0
version:v4.11
frozen:True
language:zh
root_dir:D:/win-pyvideotrans-v4.11

23 Replies

#1 DeepSeek reply at 1 hour ago

这是 Huggingface_ASR 渠道的批量填充故障。底层原因:当同一批次内的音频片段时长差异悬殊(一个片段 3000 帧、另一个 47284 帧),transformers 管线的 _pad 函数无法将张量对齐到统一尺寸,导致崩溃。

解决方法

  1. 勾选 Whisper 预分割音频
    进入 菜单 → 工具 → 高级选项 → 语音识别参数,勾选 Whisper预分割音频?。这会让音频在送入模型前被切成更均匀的小片段,从根源上避免同批次的极端长度差。
  2. 调整最长时间限制
    在同一个「语音识别参数」页面,将 最长语音持续(秒) 调小(例如 10~15 秒),避免单个过长音频片段进入批处理。
  3. 更换为更稳健的渠道
    该报错是 Huggingface_ASR 管道与特定模型(kotoba-tech/kotoba-whisper-v2.0)的兼容性问题。若按上述方法仍报错,建议改用:

    • openai-whisper(内置),模型选 large-v3(日语效果佳,处理变长音频更稳定)
    • 或直接使用 faster-whisper(内置),默认推荐渠道,其内部对变长音频的批处理逻辑经过充分验证。

请查阅相关文档:

#2 182.147.**2 reply at 1 hour ago

已经改成了最长语音持续15

#3 DeepSeek reply at 1 hour ago

已调至 15 秒后若仍出现此报错,说明问题并非单一时长限制,而是该批次内依然存在极长与极短的混合片段,或模型本身的批处理填充机制无法兼容。请按以下顺序排查:

  1. 务必确认已勾选「Whisper预分割音频」
    进入 菜单 → 工具 → 高级选项 → 语音识别参数,确保 Whisper预分割音频? 处于勾选状态(此选项强制在送入模型前将音频切成均匀小段,是解决长度填充错误的最直接手段)。
  2. 将最长语音持续再调小
    当前 15 秒仍可能偏大,建议改为 8~10 秒,并同时在 最短语音持续(毫秒) 设为 3000 左右,以缩小片段尺寸差距。
  3. 更换识别渠道或模型(推荐)
    kotoba-tech/kotoba-whisper-v2.0 与当前 transformers 管道的批处理填充逻辑存在已知兼容问题。建议切换为:

    • openai-whisper(内置) → 模型选 large-v3(日语效果好,处理变长音频更稳定);
    • faster-whisper(内置) → 模型选 large-v3-turbo
      更换后无需修改其他设置,通常可立即解决。
  4. 若仍失败
    请提供 logs/ 目录下最新日志文件底部约 30 行报错信息,以便进一步定位。

请查阅相关文档:

#4 182.147.**2 reply at 1 hour ago

File "videotrans\process\stt_pipe.py", line 94, in pipe_asr
File "D:\win-pyvideotrans-v4.11\_internal\transformers\pipelines\automatic_speech_recognition.py", line 244, in call

return super().__call__(inputs, **kwargs)

File "D:\win-pyvideotrans-v4.11\_internal\transformers\pipelines\base.py", line 1245, in call

outputs = list(final_iterator)

File "D:\win-pyvideotrans-v4.11\_internal\transformers\pipelines\pt_utils.py", line 126, in next

item = next(self.iterator)

File "D:\win-pyvideotrans-v4.11\_internal\transformers\pipelines\pt_utils.py", line 271, in next

processed = self.infer(next(self.iterator), **self.params)

File "D:\win-pyvideotrans-v4.11\_internal\torch\utils\data\dataloader.py", line 733, in next

data = self._

......
, in _exec
File "videotrans\recognition\_huggingface.py", line 71, in _pipe_asr
File "videotrans\configure\base.py", line 270, in _new_process
videotrans.configure.excepts.VideoTransError: The expanded size of the tensor (47284) must match the existing size (20321) at non-singleton dimension 1. Target sizes: [128, 47284]. Tensor sizes: [128, 20321]:Traceback (most recent call last):
File "videotrans\process\stt_pipe.py", line 94, in pipe_asr
File "D:\win-pyvideotrans-v4.11\_internal\transformers\pipelines\automatic_speech_recognition.py", line 244, in call

return super().__call__(inputs, **kwargs)

File "D:\win-pyvideotrans-v4.11\_internal\transformers\pipelines\base.py", line 1245, in call

outputs = list(final_iterator)

File "D:\win-pyvideotrans-v4.11\_internal\transformers\pipelines\pt_utils.py", line 126, in next

item = next(self.iterator)

File "D:\win-pyvideotrans-v4.11\_internal\transformers\pipelines\pt_utils.py", line 271, in next

processed = self.infer(next(self.iterator), **self.params)

File "D:\win-pyvideotrans-v4.11\_internal\torch\utils\data\dataloader.py", line 733, in next

data = self._next_data()

File "D:\win-pyvideotrans-v4.11\_internal\torch\utils\data\dataloader.py", line 789, in _next_data

data = self._dataset_fetcher.fetch(index)  # may raise StopIteration

File "D:\win-pyvideotrans-v4.11\_internal\torch\utils\data\_utils\fetch.py", line 43, in fetch

return self.collate_fn(data)

File "D:\win-pyvideotrans-v4.11\_internal\transformers\pipelines\base.py", line 173, in inner

padded[key] = _pad(items, key, _padding_value, padding_side)

File "D:\win-pyvideotrans-v4.11\_internal\transformers\pipelines\base.py", line 109, in _pad

tensor[i, : len(item[key][0])] = item[key][0]

RuntimeError: The expanded size of the tensor (47284) must match the existing size (20321) at non-singleton dimension 1. Target sizes: [128, 47284]. Tensor sizes: [128, 20321]

#5 DeepSeek reply at 1 hour ago

底层原因:这是 Huggingface_ASR 渠道在批处理多个音频片段时,transformers 管线的填充函数无法将长度差异过大的特征张量对齐。即使已把时长上限调到 15 秒,只要某批次内同时存在短片段(例如 20 秒)和超长片段(例如 47 秒),填充阶段依然会因尺寸冲突而崩溃。请按以下步骤操作:

  1. 确认已勾选「Whisper预分割音频」
    进入 菜单 → 工具 → 高级选项 → 语音识别参数,确保 Whisper预分割音频? 是勾选状态。此选项会强制在送入模型前将音频切成均匀小段,是解决该错误的核心开关。如果未勾选,即使调整时长上限也无效。
  2. 将时长限制进一步调小
    在同一个「语音识别参数」界面,把 最长语音持续(秒) 改为 8~10,同时将 最短语音持续(毫秒) 设为 3000(不超过 4000),以压缩片段之间的长度差距。
  3. 若仍报错,立即更换识别渠道(推荐)
    该报错是 Huggingface_ASR 管道与 kotoba-whisper-v2.0 模型的已知兼容性问题,调整参数可能无法根除。建议在主界面语音识别渠道改为:

    • faster-whisper(内置) → 模型选 large-v3-turbo(日语效果佳,批处理稳健),默认推荐。
    • openai-whisper(内置) → 模型选 large-v3(日语效果好,速度稍慢)。

    更换后无需额外配置,通常可立即解决。

  4. 检查视频路径是否包含特殊符号
    你的原始文件路径 F:/超爱/START破解中文/kks11.cc@ALDN-600J/JN10395.mp4 含有中文、空格、@ 等特殊字符,这在底层 FFmpeg/transformers 处理时可能诱发衍生故障。建议将视频移到全英文简单路径(如 D:/test/JN10395.mp4)后再试。
  5. 若上述步骤均无效,请提供 logs/ 目录下最新日志文件底部约 30 行报错信息,以便进一步定位。

请查阅相关文档:

#6 182.147.**2 reply at 58 minutes ago

image

#7 DeepSeek reply at 58 minutes ago

我无法直接查看您上传的图片内容,请用文字描述当前界面中的关键设置(例如:是否勾选了「Whisper预分割音频」、「最长语音持续秒数」具体是多少、当前语音识别渠道和模型是什么)。

同时请确认:是否已尝试更换为 faster-whisper(内置)openai-whisper(内置) 渠道?这是解决该 tensor尺寸不匹配 报错最直接有效的方法。

如果更换渠道后仍报错,请提供最新 logs/ 目录下日志文件底部约 30 行报错信息。

#8 182.147.**2 reply at 58 minutes ago

image

#9 DeepSeek reply at 58 minutes ago

我无法查看您上传的图片内容。请用文字描述当前界面的关键设置,例如:

  1. 「Whisper预分割音频」是否已勾选?
  2. 「最长语音持续(秒)」当前的值是多少?
  3. 语音识别渠道和模型是什么?

同时,请按以下顺序操作,这是解决该 tensor 尺寸不匹配报错最直接的方法:

  1. 确认勾选「Whisper预分割音频」
    进入 菜单 → 工具 → 高级选项 → 语音识别参数,务必勾选 Whisper预分割音频?。这是解决该错误的核心开关,未勾选时即使调整时长上限也无效。
  2. 将时长上限调小
    最长语音持续(秒) 改为 8~10 秒,最短语音持续(毫秒) 设为 3000~4000。
  3. 更换识别渠道(推荐)
    该报错是 Huggingface_ASR 管道与 kotoba-tech/kotoba-whisper-v2.0 的已知兼容性问题,调参数可能无法根除。请在主界面将语音识别渠道改为:

    • faster-whisper(内置) → 模型选 large-v3-turbo(默认推荐,日语效果佳)
    • openai-whisper(内置) → 模型选 large-v3(日语效果好,速度稍慢)
  4. 检查视频路径
    您的视频路径 F:/超爱/START破解中文/kks11.cc@ALDN-600J/JN10395.mp4 含有中文、空格、@ 等特殊字符,可能诱发底层处理故障。请将视频移到全英文简单路径(如 D:/test/JN10395.mp4)后再试。

如果更换渠道后仍报错,请提供 logs/ 目录下最新日志文件底部约 30 行报错信息。

#10 182.147.**2 reply at 57 minutes ago

openai-whisper(内置) → 模型选 large-v3爆显存

#11 DeepSeek reply at 57 minutes ago

爆显存是因为 large-v3 模型基础运行需要约 8GB 显存,而你的显卡显存不足。建议改用更省显存的渠道或模型组合,同时调整计算参数以降低显存占用。

解决方案

  1. 改用 faster-whisper(内置) 的较小模型
    回到主界面 语音识别 行,将渠道改为 faster-whisper(内置),模型选择:

    • large-v3-turbo(显存约 6GB,速度与质量兼顾,日语效果好)
    • medium(显存约 5GB,质量稍低但更稳定)
  2. 调整计算数据类型
    进入 菜单 → 工具 → 高级选项 → 语音识别参数,将 计算数据类型 改为 int8(最省显存)或 float16(GPU 加速时推荐)。
  3. 降低识别精度参数
    在同一个页面,将 beam_sizebest_of 都设为 1,并关闭 启用上下文感知。这些设置能显著减少显存峰值。
  4. 若仍想用 openai-whisper 大型模型
    可尝试 openai-whisper(内置)medium 模型,同样需将计算数据类型设为 int8,并将 beam_sizebest_of 设为 1
  5. 确保 CUDA 环境正确
    如果你已经在任务管理器中看到 GPU 使用率低,请确认已正确安装 CUDA 12.8+ 和 cuDNN 9.11+,并将 CUDA 的 bin 和 lib 目录加入系统环境变量 PATH。若配置不当,模型可能落到 CPU 上运行而更慢,但这不会直接导致爆显存。
  6. 关闭其他占用显存的程序
    在执行识别前关闭浏览器、游戏等可能占用显存的应用,释放更多可用显存。

如果按上述操作后仍报爆显存或其他错误,请提供 logs/ 目录下最新日志文件底部约 30 行报错信息。

请查阅相关文档:

#12 182.147.**2 reply at 56 minutes ago

large-v3-turbo和large-v3 两个模型谁不会掉句子

#13 DeepSeek reply at 56 minutes ago

底层说明:掉句子的根本原因是显存不足导致模型在批处理时被截断;模型越大,显存越吃紧,反而更容易掉句子或报错。比较:large-v3 准确度最高,掉句子概率较低,但需要约 8GB 显存,你的显卡爆显存,强行运行可能直接中断,甚至产生乱码。large-v3-turbo 速度与质量兼顾,日语效果良好,显存约 6GB,在你的环境下更稳定,掉句子概率低于 large-v3 爆显存时的状态。因此,既然你已爆显存,推荐使用 large-v3-turbo,并配合:计算数据类型设为 int8;beam_size = 1,best_of = 1(显存占用最低)。若仍想用 large-v3,必须确保显存≥8GB,否则不要尝试。请查阅相关文档:faster-whisper本地高级选项

#14 182.147.**2 reply at 55 minutes ago

large-v3 在高级设置中应该怎么设置才不容易掉句子!!!!??????

#15 DeepSeek reply at 55 minutes ago

要降低 large-v3 掉句子的概率,核心是让模型获得足够的显存和更高的识别精度。进入 菜单 → 工具 → 高级选项 → 语音识别参数,按以下配置:1. 计算数据类型:选 float16(GPU 加速时显存占用适中,精度高);若显存仍然吃紧,选 int8(最省显存,但精度稍低)。2. 识别准确度 beam_size:设为 5(最高精度,减少漏句)。3. 识别准确度 best_of:设为 5(配合 beam_size,最高精度)。4. 启用上下文感知:勾选(让模型参考上下文,减少漏句,但会占用更多显存,仅在显存充足时开启)。5. 采样温度:设为 0.0(降低随机性,输出更稳定)。6. 重复惩罚:可适当调高至 1.2 左右(抑制重复,但不会导致掉句子)。7. 文本压缩率:保持默认或略降低(如 0.9),有助于减少过度压缩文本。8. 静音分割持续毫秒:设为 500 左右(适当分割,避免长段被忽略)。9. 最长语音持续(秒):建议 10~15 秒(过长片段容易因显存不足被截断)。10. 最短语音持续(毫秒):设为 3000 以上(合并过短字幕,避免零碎)。11. 勾选 Whisper预分割音频?:这会让音频提前切成较均匀的小段,送入模型时更稳定,减少掉句子。⚠️ 重要前提:large-v3 基础运行需 ≥8GB 空闲显存。若你之前已经爆显存,上述设置即使调到最高精度也会因显存不足而失败。此时唯一可行的方法是将模型降为 large-v3-turbo(显存约6GB)或 medium(显存约5GB),并将计算数据类型设为 int8、beam_size 和 best_of 设为 1。请查阅相关文档:高级选项faster-whisper本地openai-whisper本地

#16 182.147.**2 reply at 54 minutes ago

我的显卡是2060S识别准确度 beam_size:13. 识别准确度 best_of:1

#17 DeepSeek reply at 54 minutes ago

你的显卡是 RTX 2060 Super,显存为 8GB,刚好接近 large-v3 模型的最低要求(约 8GB),因此极易在运行中出现爆显存或掉句子。之前提出的 beam_size 和 best_of 范围是 1~5,请勿设为 13(这是无效值)。若要强行使用 large-v3,请严格按以下设置操作,但无法保证绝对不掉句子:1. 计算数据类型:选 float16(不要用 float32,会立刻爆显存)。2. beam_size:设为 5(最高精度)。3. best_of:设为 5(配合 beam_size,保证精度)。4. 启用上下文感知:勾选(减少漏句,但更耗显存,若运行过程中仍爆显存,必须取消勾选)。5. Whisper预分割音频:必须勾选(让模型处理更均匀的片段,防截断)。6. 最长语音持续(秒):设为 10 秒,避免长片段。7. 最短语音持续(毫秒):设为 3000 以上,合并过短字幕。8. 关闭所有其他占用显存的程序(浏览器、游戏、其他 AI 软件)。9. 在高级选项中,将「GPU同时任务数」设为 1(单卡只允许一个任务)。若上述设置后仍然爆显存或报错,说明 8GB 显存确实无法稳定运行 large-v3,此时必须降级为 large-v3-turbo(显存约 6GB)或 medium(显存约 5GB),这是最稳妥的解决方案。请查阅相关文档:faster-whisper本地openai-whisper本地

#18 182.147.**2 reply at 52 minutes ago

在高级选项中,将「GPU同时任务数」设为 1 这个设置在哪里?

#19 DeepSeek reply at 52 minutes ago

GPU同时任务数 位于 菜单 → 工具 → 高级选项 → 通用设置 中,名称显示为 GPU同时任务数[重启生效]。将其设为 1 后,必须重启软件才会生效。请查阅相关文档:高级选项

#20 182.147.**2 reply at 50 minutes ago

精度 float16 .
best_of:和beam_size 数值不应该是设置为1吗 为什么是5

#21 DeepSeek reply at 50 minutes ago

beam_size 和 best_of 的数值并非固定为 1。它们控制的是语音识别时的搜索深度:数值越大,模型会探索更多可能的结果,识别更精准,但显存与计算量也成倍增加;数值设为 1 则是贪心搜索,速度最快、显存占用最低,但更容易漏句或识别错误。你之前已经爆过显存,而且 2060S 的 8GB 显存刚好卡在 large-v3 的门槛上,所以我之前建议设为 5 是为了追求更高的识别精度、减少掉句子,但这需要显存足够。如果你尝试 5 后再次爆显存,请立即将 beam_size 和 best_of 都降为 1,并配合:计算数据类型:float16;Whisper预分割音频:勾选;最长语音持续(秒):10。这样能优先保证运行稳定,但识别精度会略降。在 8GB 显存下,large-v3 本身就不稳定,我更建议直接改用 large-v3-turbo(显存约 6GB),并将 beam_size、best_of 设为 5,这样既能提升精度,也不会爆显存。请查阅相关文档:高级选项faster-whisper本地

#22 182.147.**2 reply at 49 minutes ago

Whisper预分割音频为什么要勾选 ?
合并过短字幕为什么要勾选?
上下文也要勾选? 为什么?

#23 DeepSeek reply at 48 minutes ago

Whisper预分割音频、合并过短字幕、启用上下文感知 这三个选项的作用不同,针对你的掉句子问题各有意义,但也要注意它们的代价:

  1. Whisper预分割音频
    这个选项会让软件在把音频送入Whisper模型之前,先按静音段或一定时长切分成较均匀的短片段。如果不切分,一大段音频(比如几十秒)会被当作一个整体送入模型,模型在有限显存内处理时容易因为太长而截断,导致后半段漏识、掉句子。切分后每个片段长度可控,模型能稳定处理完每一段,减少漏句。同时,切分后的片段更容易在批处理时对齐长度,避免之前你遇到的 tensor 尺寸不匹配报错。
  2. 合并过短字幕
    语音识别时可能产生一些极短的字幕片段(比如 0.1 秒),这些片段在后续翻译或配音时往往无意义,甚至会让时间轴变得非常零碎。合并过短字幕到邻近后,这些碎片会被吸收到前后字幕中,减少字幕行数,也避免因过度细分导致某些行被模型忽略。这间接降低了掉句子的感知,因为零碎句子更容易在批处理中丢失。
  3. 启用上下文感知
    这个选项让模型在识别当前片段时参考前后的上下文,能更准确判断语义,减少误识别和漏句。但代价是它会占用更多 GPU 显存,而且有时会引发重复或幻觉。你的显卡是 2060S 8GB,运行 large-v3 本来就紧张,如果勾选后一运行就爆显存,那这个选项就不该勾选,反而应取消,把显存留给模型本身。如果取消后没爆显存,但掉句子仍然严重,可以尝试勾选来提升精度。

总结建议(针对 2060S + large-v3):

  • 勾选 Whisper预分割音频:稳定输入,防截断,必选。
  • 勾选 合并过短字幕到邻近:减少碎片,必选。
  • 启用上下文感知:在显存足够时才勾选。如果你之前已经爆显存,先取消勾选,用 float16 和 beam_size=5 先跑一遍看是否稳定;如果稳定且不掉句,就不管它;如果仍掉句且没爆显存,再试勾选。

如果这样还是不稳定,唯一稳妥方案仍是改用 large-v3-turbo(显存约 6GB),这样三个选项都可以放心开启,效果也更好。请查阅相关文档:高级选项faster-whisper本地

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