#2590 TaskCfg(cache_folder='D:/Program Files/win-videotrans-v3.67-tiny/tmp/17108/speech2text', target_dir='E:/Doc/pyvideo/reco

103.196* Posted at: 1 month ago 👁59

语音识别阶段出错:[阿里FunASR中文(本地)] 程序内部错误:expected Tensor as element 1 in argument 0, but got str:
Traceback (most recent call last):
File "videotrans\task\job.py", line 113, in run
File "videotrans\task\_speech2text.py", line 146, in recogn
File "videotrans\recognition\__init__.py", line 227, in run
File "videotrans\recognition\_base.py", line 80, in run
File "videotrans\recognition\_funasr.py", line 60, in _exec
File "funasr\auto\auto_model.py", line 306, in generate

return self.inference_with_vad(input, input_len=input_len, **cfg)

File "funasr\auto\auto_model.py", line 383, in inference_with_vad

res = self.inference(

File "funasr\auto\auto_model.py", line 345, in inference

res = model.inference(**batch, **kwargs)

File "D:\Program Files\win-videotrans-v3.67-tiny\_internal\funasr\models\fsmn_vad_streaming\model.py", line 690, in inference

audio_sample = torch.cat((cache["prev_samples"], audio_sample_list[0]))

TypeError: expected Tensor as element 1 in argument 0, but got str

TaskCfg(cache_folder='D:/Program Files/win-videotrans-v3.67-tiny/tmp/17108/speech2text', target_dir='E:/Doc/pyvideo/recogn', remove_noise=False, is_separate=False, detect_language='zh-cn', subtitle_language=None, source_language=None, target_language=None, source_language_code=None, target_language_code=None, source_sub=None, target_sub='E:/Doc/pyvideo/recogn/《影响力》(Influence) - 罗伯特·西奥迪尼.srt', source_wav=None, source_wav_output=None, target_wav=None, target_wav_output=None, subtitles=None, novoice_mp4=None, noextname='《影响力》(Influence) - 罗伯特·西奥迪尼', shibie_audio='D:/Program Files/win-videotrans-v3.67-tiny/tmp/17108/speech2text/《影响力》(Influence) - 罗伯特·西奥迪尼-1768117493.687729.wav', targetdir_mp4=None, instrument=None, vocal=None, back_audio=None, background_music=None, app_mode='biaozhun', subtitle_type=0, volume='+0%', pitch='+0Hz', voice_rate='+0%', voice_role=None, copysrt_rawvideo=False, clear_cache=False, translate_type=None, tts_type=None, recogn_type=2, model_name='paraformer-zh', split_type=0, voice_autorate=False, video_autorate=False, cuda=True, name='E:/Downloads/《影响力》(Influence) - 罗伯特·西奥迪尼.mp4', basename='《影响力》(Influence) - 罗伯特·西奥迪尼.mp4', ext='mp4', dirname='E:/Downloads', shound_del_name=None, uuid='3652c8d7ac', remove_silent_mid=False, align_sub_audio=True, enable_diariz=False, nums_diariz=0, rephrase=0, only_out_mp4=False)


=
system:Windows-10-10.0.19045-SP0
version:v3.90
frozen:True
language:zh
root_dir:D:/Program Files/win-videotrans-v3.67-tiny

1 Replies

这个错误是阿里 FunASR 语音识别模块在处理特定音频文件时出现的内部异常。从错误堆栈看,问题出在 funasr\models\fsmn_vad_streaming\model.py 第690行,代码试图拼接张量时遇到了字符串类型,表明音频数据可能未正确加载或预处理。

核心原因与解决方案:

  1. 音频文件路径或内容问题:您的音频文件名包含括号 () 等特殊字符(《影响力》(Influence) - 罗伯特·西奥迪尼.mp4),这可能在内部处理时引发了问题。
  2. FunASR 模型或缓存问题:首次使用或模型文件不完整可能导致异常。

请按以下步骤尝试解决:

第一步(首选):重命名文件并重试

  • 将您的视频文件重命名为纯英文或数字,不含括号、中文等特殊字符(例如:influence.mp4)。
  • 将文件移动到简单的英文路径下(例如:D:/video/influence.mp4)。
  • 重新使用 FunASR 进行识别。

第二步:清理缓存并检查模型

  1. 在软件主界面,确保勾选了 “清理已生成” 选项。
  2. 前往 FunASR 模型下载目录(通常位于 你的软件目录/models/funasr/),检查 paraformer-zh 模型文件是否完整。如有疑虑,可删除该文件夹,让软件重新下载。

第三步:更换识别模式或引擎

  • 如果上述步骤无效,可以暂时改用其他语音识别引擎,例如 faster-whisper(本地) 并选择 large-v3 模型,它对中文识别效果也很好。
  • 或者,在高级选项中,尝试将 FunASR 的识别模式从 整体识别 切换到 批量推理(如果可用)。

如果问题依旧存在,请提供 D:/Program Files/win-videotrans-v3.67-tiny/logs/ 目录下最新的日志文件,以便进一步分析。

请查看更多参考文档:

Post Your Reply