#2900 TaskCfg(cache_folder='/Users/sunwei/Documents/lmd_data_root/apps/pyvideotrans/tmp/1570/e4b6b40cfb', target_dir='/Users/s

183.87* Posted at: 1 day ago 👁7

语音识别阶段出错 [faster-whisper(本地)] 程序内部错误:'float' object cannot be interpreted as an integer
Traceback (most recent call last):
File "/Users/sunwei/Documents/lmd_data_root/apps/pyvideotrans/videotrans/task/job.py", line 106, in run

trk.recogn()

File "/Users/sunwei/Documents/lmd_data_root/apps/pyvideotrans/videotrans/task/_speech2text.py", line 156, in recogn

raw_subtitles = run(
                ^^^^

File "/Users/sunwei/Documents/lmd_data_root/apps/pyvideotrans/videotrans/recognition/__init__.py", line 276, in run

return FasterAll(**kwargs).run()
       ^^^^^^^^^^^^^^^^^^^^^^^^^

File "/Users/sunwei/Documents/lmd_data_root/apps/pyvideotrans/videotrans/recognition/_base.py", line 136, in run

self._download()

File "/Users/sunwei/Documents/lmd_data_root/apps/pyvideotrans/videotrans/recognition/_overall.py", line 76, in _download

self._vad_split()

File "/Users/sunwei/Documents/lmd_data_root/apps/pyvideotrans/videotrans/recognition/_base.py", line 118, in _vad_split

self.speech_timestamps=self._new_process(
                       ^^^^^^^^^^^^^^^^^^

File "/Users/sunwei/Documents/lmd_data_root/apps/pyvideotrans/videotrans/configure/_base.py", line 265, in _new_process

future = GlobalProcessManager.submit_task_cpu(
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/Users/sunwei/Documents/lmd_data_root/apps/pyvideotrans/videotrans/process/signelobj.py", line 73, in submit_task_cpu

_executor=cls.get_executor_cpu()
          ^^^^^^^^^^^^^^^^^^^^^^

File "/Users/sunwei/Documents/lmd_data_root/apps/pyvideotrans/videotrans/process/signelobj.py", line 56, in get_executor_cpu

cls._executor_cpu = ProcessPoolExecutor(max_workers=max_workers, mp_context=ctx)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/Users/sunwei/Documents/lmd_data_root/apps/pyvideotrans/venv/lib/python3.12/concurrent/futures/process.py", line 747, in init

self._call_queue = _SafeQueue(
                   ^^^^^^^^^^^

File "/Users/sunwei/Documents/lmd_data_root/apps/pyvideotrans/venv/lib/python3.12/concurrent/futures/process.py", line 177, in init

super().__init__(max_size, ctx=ctx)

File "/Users/sunwei/Documents/lmd_data_root/apps/pyvideotrans/venv/lib/python3.12/multiprocessing/queues.py", line 49, in init

self._sem = ctx.BoundedSemaphore(maxsize)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/Users/sunwei/Documents/lmd_data_root/apps/pyvideotrans/venv/lib/python3.12/multiprocessing/context.py", line 88, in BoundedSemaphore

return BoundedSemaphore(value, ctx=self.get_context())
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/Users/sunwei/Documents/lmd_data_root/apps/pyvideotrans/venv/lib/python3.12/multiprocessing/synchronize.py", line 152, in init

SemLock.__init__(self, SEMAPHORE, value, value, ctx=ctx)

File "/Users/sunwei/Documents/lmd_data_root/apps/pyvideotrans/venv/lib/python3.12/multiprocessing/synchronize.py", line 57, in init

sl = self._semlock = _multiprocessing.SemLock(
                     ^^^^^^^^^^^^^^^^^^^^^^^^^

TypeError: 'float' object cannot be interpreted as an integer
TaskCfg(cache_folder='/Users/sunwei/Documents/lmd_data_root/apps/pyvideotrans/tmp/1570/e4b6b40cfb', target_dir='/Users/sunwei/Documents/lmd_data_root/apps/pyvideotrans/output/recogn', remove_noise=False, is_separate=False, detect_language='en', subtitle_language=None, source_language=None, target_language=None, source_language_code=None, target_language_code=None, source_sub=None, target_sub='/Users/sunwei/Documents/lmd_data_root/apps/pyvideotrans/output/recogn/Wolves Narration.srt', source_wav=None, source_wav_output=None, target_wav=None, target_wav_output=None, subtitles='', novoice_mp4=None, noextname='Wolves Narration', shibie_audio='/Users/sunwei/Documents/lmd_data_root/apps/pyvideotrans/tmp/1570/e4b6b40cfb/Wolves Narration-1769413810.826097.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=0, model_name='large-v3-turbo', voice_autorate=False, video_autorate=False, cuda=False, name='/Users/sunwei/Desktop/202060126 字幕翻译/Wolves Narration.mp3', basename='Wolves Narration.mp3', ext='mp3', dirname='/Users/sunwei/Desktop/202060126 字幕翻译', shound_del_name=None, uuid='e4b6b40cfb', remove_silent_mid=False, align_sub_audio=True, enable_diariz=False, nums_diariz=0, rephrase=0, only_out_mp4=False, fix_punc=False, recogn2pass=False)


=
system:macOS-26.2-arm64-arm-64bit
version:v3.95
frozen:False
language:zh
root_dir:/Users/sunwei/Documents/lmd_data_root/apps/pyvideotrans
Python: 3.12.12 | packaged by Anaconda, Inc. | (main, Oct 21 2025, 20:07:49) [Clang 20.1.8 ]

1 Replies

这是由于 Python 3.12 与 multiprocessing 模块的兼容性问题导致的。错误发生在创建进程池时,max_workers 参数被传递了一个浮点数而非整数。

解决方案:

  1. 临时解决方案:在软件中修改语音识别参数。

    • 进入软件主界面,点击右上角的“设置”或“高级选项”。
    • 找到“语音识别参数”或“高级设置”区域。
    • 将“CPU线程数”或“最大工作线程数”设置为一个整数(例如 2, 4, 8),确保不是小数或百分比。
    • 保存设置并重试。
  2. 根本解决方案:降级 Python 版本。

    • 根据知识库,pyVideoTrans 源码部署建议使用 Python 3.10
    • 您当前使用的是 Python 3.12.12,这可能导致与底层库(如 multiprocessing)的兼容性问题。
    • 请将您的 Python 环境切换至 3.10.x 版本,然后重新使用 uv sync 安装依赖并运行。

参考文档:

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.

Related resource