#8736 语音识别阶段出错[Qwen-ASR(内置)] CUDA out of memory. Tried to allocate 15.83 GiB. GPU 0 has a total capacity of 8.00 GiB of which

14.212**1 Posted at: 3 hours ago

语音识别阶段出错[Qwen-ASR(内置)] CUDA out of memory. Tried to allocate 15.83 GiB. GPU 0 has a total capacity of 8.00 GiB of which 0 bytes is free. Of the allocated memory 5.17 GiB is allocated by PyTorch, and 1.68 GiB is reserved by PyTorch but unallocated. If reserved but unallocated memory is large try setting PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True to avoid fragmentation. See documentation for Memory Management (https://pytorch.org/docs/stable/notes/cuda.html#environment-variables):Traceback (most recent call last):
File "videotrans\process\stt_qwen.py", line 83, in qwen3asr_fun
File "C:\SOFT\pyvideotrans\_internal\torch\utils\_contextlib.py", line 116, in decorate_context

return func(*args, **kwargs)

File "C:\SOFT\pyvideotrans\_internal\transformers\generation\utils.py", line 2645, in generate

result = decoding_method(

File "C:\SOFT\pyvideotrans\_internal\transformers\generation\utils.py", line 2845, in _sample

outputs = self._prefill(

File "C:\SOFT\pyvideotrans\_internal\transformers\generation\utils.py", line 3896, in _prefill

return self(**model_inputs, return_dict=True)

File "C:\SOFT\pyvideotrans\_internal\torch\nn\modules\module.py", line 1751, in _wrapped_call_impl

return self._call_impl(*args, **kwargs)

File "C:\SOFT\pyvideotrans\_internal\torch\nn\modules\module.py", line 1762, in _call_impl

return forward_call(*args, **kwargs)

File "C:\SOFT\pyvideotrans\_internal\transformers\utils\generic.py", line 911, in w
......
n3_asr\modeling_qwen3_asr.py", line 649, in forward

outputs = self.model(

File "C:\SOFT\pyvideotrans\_internal\torch\nn\modules\module.py", line 1751, in _wrapped_call_impl

return self._call_impl(*args, **kwargs)

File "C:\SOFT\pyvideotrans\_internal\torch\nn\modules\module.py", line 1762, in _call_impl

return forward_call(*args, **kwargs)

File "C:\SOFT\pyvideotrans\_internal\transformers\utils\generic.py", line 911, in wrapper

output = func(self, *args, **kwargs)

File "C:\SOFT\pyvideotrans\_internal\transformers\models\qwen3_asr\modeling_qwen3_asr.py", line 557, in forward

outputs = self.language_model(

File "C:\SOFT\pyvideotrans\_internal\torch\nn\modules\module.py", line 1751, in _wrapped_call_impl

return self._call_impl(*args, **kwargs)

File "C:\SOFT\pyvideotrans\_internal\torch\nn\modules\module.py", line 1762, in _call_impl

return forward_call(*args, **kwargs)

File "C:\SOFT\pyvideotrans\_internal\transformers\utils\generic.py", line 1040, in wrapper

output = func(self, *args, **kwargs)

File "C:\SOFT\pyvideotrans\_internal\transformers\utils\output_capturing.py", line 252, in wrapper

outputs = func(self, *args, **kwargs)

File "C:\SOFT\pyvideotrans\_internal\transformers\models\qwen3\modeling_qwen3.py", line 424, in forward

hidden_states = decoder_layer(

File "C:\SOFT\pyvideotrans\_internal\transformers\modeling_layers.py", line 93, in call

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

File "C:\SOFT\pyvideotrans\_internal\torch\nn\modules\module.py", line 1751, in _wrapped_call_impl

return self._call_impl(*args, **kwargs)

File "C:\SOFT\pyvideotrans\_internal\torch\nn\modules\module.py", line 1762, in _call_impl

return forward_call(*args, **kwargs)

File "C:\SOFT\pyvideotrans\_internal\transformers\models\qwen3\modeling_qwen3.py", line 318, in forward

hidden_states, _ = self.self_attn(

File "C:\SOFT\pyvideotrans\_internal\torch\nn\modules\module.py", line 1751, in _wrapped_call_impl

return self._call_impl(*args, **kwargs)

File "C:\SOFT\pyvideotrans\_internal\torch\nn\modules\module.py", line 1762, in _call_impl

return forward_call(*args, **kwargs)

File "C:\SOFT\pyvideotrans\_internal\transformers\models\qwen3\modeling_qwen3.py", line 277, in forward

attn_output, attn_weights = attention_interface(

File "C:\SOFT\pyvideotrans\_internal\transformers\integrations\sdpa_attention.py", line 93, in sdpa_attention_forward

attn_output = torch.nn.functional.scaled_dot_product_attention(

torch.OutOfMemoryError: CUDA out of memory. Tried to allocate 15.83 GiB. GPU 0 has a total capacity of 8.00 GiB of which 0 bytes is free. Of the allocated memory 5.17 GiB is allocated by PyTorch, and 1.68 GiB is reserved by PyTorch but unallocated. If reserved but unallocated memory is large try setting PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True to avoid fragmentation. See documentation for Memory Management (https://pytorch.org/docs/stable/notes/cuda.html#environment-variables)
trk=语音转录
self.cfg.name='I:/25 715-719/R_MIC_250715-165653.mp3',
self.cfg.target_dir='c:/soft/pyvideotrans/output/recogn',
self.cfg.cache_folder='C:/SOFT/pyvideotrans/tmp/30412/5de016679a'
self.cfg.is_cuda=True
Selected 恢复标点(cn/en)
Selected 识别说话人: 不限数量
语音识别:Qwen-ASR(内置), 0.6B, 发音语言: zh
max_speech_duration_s_title: 10s
min_speech_duration_ms_title: 3000ms
min_silence_duration_ms_title: 140ms
threshold_title: 0.45
vad_type_title: silero
输出格式: srt
cjk_len_title:20, other_len_title:60
Selected: 保存到原位置
self.cfg=TaskCfgSTT(uuid='5de016679a', name='I:/25 715-719/R_MIC_250715-165653.mp3', dirname='I:/25 715-719', noextname='R_MIC_250715-165653', basename='R_MIC_250715-165653.mp3', ext='mp3', target_dir='c:/soft/pyvideotrans/output/recogn', cache_folder='C:/SOFT/pyvideotrans/tmp/30412/5de016679a', is_cuda=True, source_language='', source_language_code='', source_sub=None, source_wav=None, source_wav_output=None, target_language='', target_language_code='', target_sub='c:/soft/pyvideotrans/output/recogn/R_MIC_250715-165653.srt', target_wav=None, target_wav_output=None, detect_language='zh', recogn_type=2, model_name='0.6B', shibie_audio='C:/SOFT/pyvideotrans/tmp/30412/5de016679a/R_MIC_250715-165653-1794224476.633673.wav', remove_noise=False, enable_diariz=True, nums_diariz=0, rephrase=False, fix_punc=1)


=
system:Windows-10-10.0.26300-SP0
version:v4.18
frozen:True
language:zh
root_dir:C:/SOFT/pyvideotrans

1 Replies

#1 DeepSeek reply at 3 hours ago

核心原因是显卡显存物理不足:你的 GPU 0 只有 8 GB 显存,当前已被 PyTorch 占用约 5.17 GB,而本次请求需一次性再分配 15.83 GiB,因此必然 OOM 失败。Qwen-ASR 在 GPU 上运行对切片长度和显存很敏感,同时保留原模型占用,导致 8 GB 不够用。

解决方案(按优先级)

  1. 取消勾选 CUDA加速,改用 CPU 运行 Qwen-ASR 0.6B(最稳妥)

    • 0.6B 模型纯 CPU 可运行,只是速度慢,但不会再 OOM。转录阶段可挂着跑。
  2. 继续用 GPU 的话,改用更省显存的识别渠道

    • 语音识别 改为 faster-whisper(内置),模型选 large-v3-turbo(约 6 GB 显存),中文效果也可接受。
    • 若仍爆显存,再降为 medium 或 small。
  3. 降低 Qwen-ASR 的输入切片长度(不换渠道时)

    • 菜单 → 工具/选项 → 高级选项 → 语音识别参数:

      • 最长语音持续(秒):由当前 10 调低到 3~5
      • 最短语音持续(毫秒):保持 3000
      • 静音分割持续毫秒:当前 140 调大到 300~500,让 VAD 切出的片段不那么碎但也更短,降低单次前向的显存峰值。
  4. 释放显存占用

    • 高级选项 → 通用设置 → GPU同时任务数 设为 1(修改后重启软件生效)。
    • 关闭浏览器、游戏、其他 AI 软件;确认没有同时运行的第二个 sp.exe 实例。
    • 重启一次软件,让前面崩溃残留的显存被回收(OOM 后 PyTorch 常保留脏占用)。
  5. 可选:减少碎片

    • 设置系统环境变量 PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True 后重启软件,可缓解 "reserved but unallocated" 的碎片问题,但不能弥补 8 GB 与 15.83 GiB 的量级差距,仅作辅助。

补充:你当前还选中了 识别说话人: 不限数量,说话人分离与识别会叠加占用资源,建议先按上述第 1 或第 2 项处理,跑通后再加回说话人分离。

请查阅相关文档:

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