#2603 语音识别阶段出错:[阿里FunASR中文(本地)] 程序内部错误:expected Tensor as element 1 in argument 0, but got str:Traceback (most recent call las

103.196* Posted at: 3 hours ago 👁4

语音识别阶段出错:[阿里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/43672/speech2text', target_dir='E:/Doc/pyvideo/recogn', remove_noise=False, is_separate=False, detect_language='auto', 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/本杰明·富兰克林传Benjamin Franklin An American Life - 沃尔特·艾萨克森.srt', source_wav=None, source_wav_output=None, target_wav=None, target_wav_output=None, subtitles=None, novoice_mp4=None, noextname='本杰明·富兰克林传Benjamin Franklin An American Life - 沃尔特·艾萨克森', shibie_audio='D:/Program Files/win-videotrans-v3.67-tiny/tmp/43672/speech2text/本杰明·富兰克林传Benjamin Franklin An American Life - 沃尔特·艾萨克森-1768186104.2089386.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/本杰明·富兰克林传Benjamin Franklin An American Life - 沃尔特·艾萨克森.mp4', basename='本杰明·富兰克林传Benjamin Franklin An American Life - 沃尔特·艾萨克森.mp4', ext='mp4', dirname='E:/Downloads', shound_del_name=None, uuid='9fdf32f557', 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本地语音识别模块在处理音频时出现的内部异常。根据错误堆栈 expected Tensor as element 1 in argument 0, but got str,表明FunASR在处理音频流时,预期接收的是Tensor数据,但实际收到了字符串,这通常与音频文件格式或路径问题有关。

核心解决步骤:

  1. 检查并转换音频格式:FunASR对输入音频格式有严格要求。请确保您的音频文件是标准格式(如WAV、MP3)。您可以尝试使用工具箱中的“音视频合并/分离”功能,将原视频的音频提取出来,然后使用该音频文件进行识别。
  2. 简化文件路径和名称:错误日志显示您的视频文件路径和名称包含中英文混合及空格(E:/Downloads/本杰明·富兰克林传Benjamin Franklin An American Life - 沃尔特·艾萨克森.mp4)。请务必将文件重命名为纯英文短名称(例如 benjamin.mp4),并移动到不含中文和空格的简单路径下(如 D:/test/benjamin.mp4,然后重新尝试。
  3. 尝试其他识别模式:在主界面第2行“语音识别”设置中,将“识别模式”从“整体识别”切换为“批量推理”,有时可以规避某些格式解析问题。
  4. 使用备用识别引擎:如果上述方法无效,作为临时解决方案,您可以暂时切换到 faster-whisper(本地) 模型(例如 mediumlarge-v2)来完成当前任务。

如果问题依旧,请提供以下信息以便进一步排查:

  • 您使用的FunASR模型具体是哪个?(例如 paraformer-zhparaformer-zh-streaming
  • 您是否在“高级选项”中对FunASR进行了特殊参数设置?

请查看更多参考文档:

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.

Donate: https://ko-fi.com/jianchang512

Trending Questions