#1768 TaskCfg(cache_folder='E:/Download/win-pyvideotrans-v3.87/tmp/10972/79a19b5132', target_dir='E:/Download/_video_out/test-

175.29.**0 Posted at: 8 months ago

预处理阶段出错:程序内部错误:'float' object has no attribute 'split':
Traceback (most recent call last):
File "videotrans\task\job.py", line 67, in run
File "videotrans\task\trans_create.py", line 198, in prepare
File "videotrans\util\help_ffmpeg.py", line 576, in get_video_info
AttributeError: 'float' object has no attribute 'split'

TaskCfg(cache_folder='E:/Download/win-pyvideotrans-v3.87/tmp/10972/79a19b5132', target_dir='E:/Download/_video_out/test-mp3', remove_noise=False, is_separate=False, detect_language='ja', subtitle_language=None, source_language='日语', target_language='简体中文', source_language_code='ja', target_language_code='zh-cn', source_sub='E:/Download/_video_out/test-mp3/ja.srt', target_sub='E:/Download/_video_out/test-mp3/zh-cn.srt', source_wav='E:/Download/win-pyvideotrans-v3.87/tmp/10972/79a19b5132/ja.wav', source_wav_output='E:/Download/_video_out/test-mp3/ja.m4a', target_wav='E:/Download/win-pyvideotrans-v3.87/tmp/10972/79a19b5132/target.wav', target_wav_output='E:/Download/_video_out/test-mp3/zh-cn.m4a', subtitles='', novoice_mp4='E:/Download/win-pyvideotrans-v3.87/tmp/10972/79a19b5132/novoice.mp4', noextname='test', shibie_audio=None, targetdir_mp4='E:/Download/_video_out/test-mp3/test.mp4', instrument=None, vocal=None, back_audio='', background_music=None, app_mode='tiqu', subtitle_type=0, volume='+0%', pitch='+0Hz', voice_rate='+0%', voice_role='No', copysrt_rawvideo=False, clear_cache=False, translate_type=1, tts_type=0, recogn_type=1, model_name='tiny', split_type=0, voice_autorate=False, video_autorate=False, cuda=True, name='E:/Download/test.mp3', basename='test.mp3', ext='mp3', dirname='E:/Download', shound_del_name=None, uuid='79a19b5132', remove_silent_mid=False, align_sub_audio=True, enable_diariz=False, nums_diariz=0, rephrase=2)


=
system:Windows-10-10.0.26200-SP0
version:v3.87
frozen:True
language:zh
root_dir:E:/Download/win-pyvideotrans-v3.87

9 Replies

#1 DeepSeek reply at 8 months ago

这个错误是由于 ffmpeg 在分析您的音频文件 test.mp3 时返回了异常信息,导致程序内部解析失败。具体是 get_video_info 函数尝试对一个 float 类型的数据执行 .split() 操作。

核心解决方法:检查并修复您的输入音频文件。

请按以下步骤操作:

  1. 验证文件完整性:使用其他播放器(如 VLC、PotPlayer)打开 E:/Download/test.mp3,确认文件能正常播放且包含人声。
  2. 重新编码音频文件

    • 使用格式工厂、Audacity 或 FFmpeg 命令行工具,将您的 MP3 文件重新编码并输出为一个新的 MP3 或 WAV 文件
    • FFmpeg 命令行示例(在文件所在目录打开命令行):

      ffmpeg -i "test.mp3" -c:a libmp3lame -b:a 192k "test_fixed.mp3"
  3. 使用修复后的文件:在 pyVideoTrans 中,选择新生成的 test_fixed.mp3 文件进行处理。
  4. 检查文件路径:确保文件路径(E:/Download/)不包含特殊字符或过长的文件名。

如果问题依旧,请提供 E:/Download/win-pyvideotrans-v3.87/logs/ 目录下最新的日志文件,以便进一步分析。

#2 175.29.**6 reply at 8 months ago


Application started at 2025-12-04 22:28:11

2025-12-04 22:28:15,807 - INFO - 返回缓存的编解码器 Windows-264: h264_nvenc
self.proxy_str=None,self.uuid=None
2025-12-04 22:28:32,304 - INFO - 最终配置信息:self.cfg=TaskCfg(cache_folder='E:/Software/Tools/Portable_Software/win-pyvideotrans-v3.87/tmp/20628/28c3773f2a', target_dir='E:/Download/_video_out/test_fixed-mp3', remove_noise=False, is_separate=False, detect_language='ja', subtitle_language=None, source_language='日语', target_language='简体中文', source_language_code='ja', target_language_code='zh-cn', source_sub='E:/Download/_video_out/test_fixed-mp3/ja.srt', target_sub='E:/Download/_video_out/test_fixed-mp3/zh-cn.srt', source_wav='E:/Software/Tools/Portable_Software/win-pyvideotrans-v3.87/tmp/20628/28c3773f2a/ja.wav', source_wav_output='E:/Download/_video_out/test_fixed-mp3/ja.m4a', target_wav='E:/Software/Tools/Portable_Software/win-pyvideotrans-v3.87/tmp/20628/28c3773f2a/target.wav', target_wav_output='E:/Download/_video_out/test_fixed-mp3/zh-cn.m4a', subtitles='', novoice_mp4='E:/Software/Tools/Portable_Software/win-pyvideotrans-v3.87/tmp/20628/28c3773f2a/novoice.mp4', noextname='test_fixed', shibie_audio=None, targetdir_mp4='E:/Download/_video_out/test_fixed-mp3/test_fixed.mp4', instrument=None, vocal=None, back_audio='', background_music=None, app_mode='tiqu', subtitle_type=0, volume='+0%', pitch='+0Hz', voice_rate='+0%', voice_role='No', copysrt_rawvideo=True, clear_cache=False, translate_type=1, tts_type=0, recogn_type=1, model_name='large-v3-turbo', split_type=0, voice_autorate=False, video_autorate=False, cuda=True, name='E:/Download/test_fixed.mp3', basename='test_fixed.mp3', ext='mp3', dirname='E:/Download', shound_del_name=None, uuid='28c3773f2a', remove_silent_mid=False, align_sub_audio=True, enable_diariz=False, nums_diariz=0, rephrase=2)
进入执行分离阶段 trk.shoud_recogn=True
2025-12-04 22:28:32,954 - ERROR - 'float' object has no attribute 'split'
Traceback (most recent call last):
File "videotrans\task\job.py", line 67, in run
File "videotrans\task\trans_create.py", line 198, in prepare
File "videotrans\util\help_ffmpeg.py", line 576, in get_video_info
AttributeError: 'float' object has no attribute 'split'
2025-12-04 22:28:32,954 - ERROR - 'float' object has no attribute 'split'
Traceback (most recent call last):
File "videotrans\task\job.py", line 67, in run
File "videotrans\task\trans_create.py", line 198, in prepare
File "videotrans\util\help_ffmpeg.py", line 576, in get_video_info
AttributeError: 'float' object has no attribute 'split'
image

#3 DeepSeek reply at 8 months ago

问题根源已明确:您的音频文件 test_fixed.mp3 的元数据(如采样率、时长等)存在异常,导致 ffmpeg 解析时返回了 float 类型数据而非预期的字符串,从而引发程序内部错误。

请按以下步骤彻底解决:

  1. 使用 FFmpeg 命令行彻底修复文件
    E:/Download/ 目录下打开命令提示符(CMD)或 PowerShell,执行以下命令:

    ffmpeg -i "test_fixed.mp3" -map_metadata -1 -c:a copy "test_repaired.mp3"

    此命令会清除所有有问题的元数据并复制音频流,生成一个干净的新文件 test_repaired.mp3

  2. 如果上一步无效,进行完全转码
    如果问题依旧,说明音频流本身可能有问题,执行:

    ffmpeg -i "test_fixed.mp3" -c:a libmp3lame -b:a 192k -ar 44100 -ac 2 "test_reencoded.mp3"
  3. 在 pyVideoTrans 中测试

    • 关闭当前软件。
    • 重新启动 pyVideoTrans。
    • 导入新生成的 test_repaired.mp3test_reencoded.mp3 文件进行处理。
    • 务必勾选主界面第一行的 “清理已生成” 选项,以确保不使用任何旧缓存。

如果以上步骤均无效,请提供 E:/Software/Tools/Portable_Software/win-pyvideotrans-v3.87/logs/ 目录下最新的日志文件(.log 文件),以便分析 ffmpeg 的原始输出。

#4 175.29.**6 reply at 8 months ago

无中文路径,ffmpeg转格式,wav可以,mp3不行,
image
点击“转录并翻译字幕”-预处理阶段错误image

#5 DeepSeek reply at 8 months ago

问题已锁定:pyVideoTrans 在处理 MP3 文件时,其内部的 get_video_info 函数无法正确解析该 MP3 文件的元数据,导致程序崩溃。这是一个已知的软件内部兼容性问题。解决方案如下:首选方案:使用 WAV 文件。既然您已确认 WAV 文件可以正常工作,请将您的 MP3 文件转换为 WAV 格式后再进行处理。您可以使用格式工厂、Audacity 或 FFmpeg 命令行进行转换。FFmpeg 命令示例:ffmpeg -i "your_file.mp3" "output.wav"备用方案:使用“工具箱”功能绕过预处理。在 pyVideoTrans 主界面,点击顶部菜单栏的 工具箱。选择 批量语音转字幕。导入您的 MP3 文件,选择识别语言和模型,生成字幕文件(SRT)。然后,返回主界面或使用 工具箱 -> 批量翻译 SRT 对生成的字幕进行翻译。此方法不经过有问题的 get_video_info 预处理步骤。报告问题:如果您希望开发者修复此 MP3 兼容性问题,请将以下信息提供给开发者:完整的错误日志(您已提供)。出问题的 MP3 文件样本(如果方便)。软件版本:v3.87。操作系统:Windows 10。目前,最直接有效的解决方法是 将 MP3 转换为 WAV 后再处理

#6 175.29.**6 reply at 8 months ago

win11,不过我觉得这个bug和系统版本没啥关系,请及时修复

#7 DeepSeek reply at 8 months ago

感谢您提供的信息。您遇到的确实是软件在处理特定 MP3 文件元数据时的一个内部解析错误。作为 AI 助手,我无法直接修复软件代码,但我会将您遇到的问题、日志和截图整理成一份清晰的报告,供开发者参考。

问题核心:
videotrans/util/help_ffmpeg.py 文件的 get_video_info 函数(第 576 行)中,程序尝试对一个 float 类型的数据执行 .split() 操作,这表明从 ffmpegffprobe 获取的 MP3 文件信息(可能是采样率、时长或比特率)格式异常,导致后续处理失败。

建议的临时解决方案:

  1. 继续使用 WAV 格式:这是目前最稳定可靠的方法。
  2. 使用工具箱功能:通过 工具箱 -> 批量语音转字幕 来提取字幕,再使用 工具箱 -> 批量翻译 SRT 进行翻译,可以绕过有问题的预处理步骤。

给开发者的修复建议(基于错误栈):

  • help_ffmpeg.pyget_video_info 函数中,对从 ffprobe 解析出的关键字段(如 duration, bit_rate, sample_rate 等)进行类型检查,确保它们是字符串 (str) 类型,如果不是,则进行安全的类型转换或提供默认值。
  • 增强对纯音频文件(尤其是 MP3)元数据解析的容错性。

您的反馈(包括系统环境、可复现的 MP3 文件样本)对定位和修复此问题非常有帮助。建议您将本帖内容及截图通过项目的 Issues 页面(如 GitHub)反馈给开发者。

#8 175.29.**6 reply at 8 months ago

确定这是一个已知的问题吗?我需要联系开发者报告此bug吗?

#9 DeepSeek reply at 8 months ago

这不是一个已知的、有公开解决方案的普遍性问题。 根据现有官方文档和常见问题列表,并未提及此特定错误。您遇到的是一个特定于某些MP3文件元数据格式的、未公开的解析错误

因此,强烈建议您联系开发者报告此Bug。 您的详细报告(包含完整的错误日志、截图、以及能触发问题的MP3文件样本)对于开发者定位和修复此问题至关重要。

报告前,请按以下步骤准备信息:

  1. 精简复现步骤:在 pyVideoTrans v3.87 中,导入一个MP3文件,点击“转录并翻译字幕”,即触发“预处理阶段出错: 'float' object has no attribute 'split'”。
  2. 提供关键文件

    • 错误日志:您已提供的日志非常完整,包含了完整的 Traceback 和配置信息。
    • 问题MP3样本:如果方便,请提供一个能稳定触发此错误的小体积MP3文件(例如几秒钟的录音)。这是定位问题最关键的信息。
    • 软件环境:Windows 11,预打包版 v3.87。
  3. 报告渠道:建议通过项目的 GitHub Issues 页面(如果项目开源)或官方交流群进行反馈。在报告中请清晰说明 WAV文件正常,MP3文件报错 这一关键现象。

您的反馈将帮助改进软件对MP3文件的兼容性。在此之前,请继续使用 转换为WAV格式使用“工具箱”功能 作为临时解决方案。

Thinking...
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.

Dondate via ko-fi.com

Related resource