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

77.83* Posted at: 1 month ago 👁60

语音识别阶段出错:[阿里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/30300/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/30300/speech2text/《本杰明·富兰克林传》Benjamin Franklin An American Life - 沃尔特·艾萨克森-1768146407.878634.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='f8067e2a03', 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在处理音频时遇到了非预期的字符串类型数据,而不是预期的Tensor(张量)类型。

核心原因: 音频文件路径或文件名包含特殊字符(特别是中文括号和书名号),导致FunASR在处理时出现编码或路径解析问题。

解决方案:

  1. 重命名文件(最有效的方法):

    • 将原视频文件 《本杰明·富兰克林传》Benjamin Franklin An American Life - 沃尔特·艾萨克森.mp4 重命名为纯英文或数字名称,例如 benjamin_franklin.mp4
    • 确保新名称不包含任何中文、括号 《》、空格、特殊符号。
    • 将重命名后的文件移动到简单的路径下,如 D:/video/benjamin_franklin.mp4
  2. 更换语音识别渠道(临时替代):

    • 如果必须使用当前文件,可以暂时切换到其他语音识别渠道,如 faster-whisper(本地)OpenAI-Whisper(本地)
  3. 检查音频文件完整性:

    • 确保视频文件本身没有损坏,可以尝试用其他播放器正常播放。
  4. 更新软件版本:

    • 您使用的是 v3.90,请检查是否有更新的版本(当前最新为 v3.92),新版本可能已修复此兼容性问题。

操作步骤建议:

  1. 关闭 pyVideoTrans。
  2. 将视频文件重命名为 benjamin_franklin.mp4 并移动到 D:/ 根目录。
  3. 重新启动 pyVideoTrans,导入重命名后的文件进行处理。

如果问题依旧,请提供 videotrans/logs/ 目录下的最新日志文件以便进一步分析。

请查看更多参考文档:

Post Your Reply