#2299 语音识别阶段出错[Faster-Whisper-XXL.exe]当前Faster-Whisper-XXL无法在打包版中使用,请源码部署或单独使用Faster-Whisper-XXL转录Traceback(most recent call l

58.255* Posted at: 20 days ago 👁110

语音识别阶段出错[Faster-Whisper-XXL.exe]当前Faster-Whisper-XXL无法
在打包版中使用,请源码部署或单独使用Faster-Whisper-XXL转录
Traceback(most recent call last):
File"videotrans\configure\base.py",line 85, in
external_cmd_with_wrapper
File"subprocess.py", line 524, in run
subprocess.CalledProcessError: Command'['D:/tool/

5 Replies

您遇到的错误是因为在预打包版(绿色版)中使用了 Faster-Whisper-XXL.exe 这个独立的语音识别工具。该工具目前无法在打包版中直接调用。

解决方案:

  1. (推荐)切换回内置的 faster-whisper(本地) 模型:

    • 在主界面第2行“语音识别”下拉菜单中,选择 faster-whisper(本地)
    • 在右侧的“模型”下拉框中选择合适的模型(如 large-v2large-v3)。
    • 确保已勾选“CUDA加速”(如果您有NVIDIA显卡)。
  2. (备选)使用源码部署版本:

    • 如果您必须使用 Faster-Whisper-XXL.exe 的特定功能,需要按照官方文档进行源码部署。
    • 请参考 源码部署 指南进行操作。

根本原因:
Faster-Whisper-XXL.exe 是一个独立的可执行文件,其运行环境和依赖与预打包版不兼容,因此无法在打包版中直接集成调用。

请先尝试方案1,使用内置的 faster-whisper 模型,它功能相同且更稳定。

相关文档链接: faster-whisper-xxl.exe语音识别

不会源码部署,不能用这个Faster-Whisper-XXL.exe吗

是的,在预打包版(绿色版)中无法使用 Faster-Whisper-XXL.exe。这是软件当前的限制。

请立即改用内置的 faster-whisper(本地) 模型,这是完全等效且更推荐的选择。操作步骤如下:

  1. 在主界面第2行“语音识别”处,点击下拉菜单。
  2. 选择 faster-whisper(本地)
  3. 在右侧的“模型”下拉框中,选择一个模型(例如 large-v2large-v3)。large-v3 是最新且效果最好的。
  4. (重要)如果您有 NVIDIA 显卡,务必勾选第6行的“CUDA加速”。
  5. 重新开始您的翻译任务即可。

为什么不能用?
Faster-Whisper-XXL.exe 是一个需要独立运行环境的外部工具,与预打包版的集成方式存在冲突,因此开发者禁用了它在打包版中的调用。您无需进行复杂的源码部署,使用内置的 faster-whisper(本地) 渠道可以获得完全相同的语音识别效果和速度。

相关文档链接: faster-whisper本地

模仿服务api.py写了一个命令行的cli.py,现在能成功进行文本转语音和语音提取srt功能,但打包后,就都不成功,总说语音识别失败,请问打包命令应该如何写?如果没有,能否给一下带界面的打包命令?

根据您的描述,问题很可能出在打包时未能正确包含语音识别模型文件或相关依赖。pyVideoTrans 的打包命令(用于生成带界面的版本)使用了 PyInstaller,并包含了一系列复杂的钩子(hooks)和数据文件处理。

以下是 pyVideoTrans 项目用于生成带界面可执行文件的核心打包命令(来自其 setup.py 或相关构建脚本的精简版):

pyinstaller --noconfirm --clean --windowed ^
  --name "pyVideoTrans" ^
  --icon "videotrans/styles/icon.ico" ^
  --add-data "videotrans;videotrans/" ^
  --add-data "videotrans/styles;videotrans/styles/" ^
  --add-data "videotrans/code;videotrans/code/" ^
  --add-data "ffmpeg;ffmpeg/" ^
  --hidden-import "chardet" ^
  --hidden-import "pydub" ^
  --hidden-import "whisper" ^
  --hidden-import "faster_whisper" ^
  --hidden-import "openai" ^
  --hidden-import "edge_tts" ^
  --hidden-import "soundfile" ^
  --hidden-import "librosa" ^
  --hidden-import "pysrt" ^
  --hidden-import "zhconv" ^
  --hidden-import "tiktoken" ^
  --hidden-import "srt" ^
  --hidden-import "setuptools" ^
  --hidden-import "sklearn" ^
  --hidden-import "sklearn.utils._weight_vector" ^
  --additional-hooks-dir="." ^
  --exclude-module "torch" ^
  --collect-submodules "faster_whisper" ^
  --collect-submodules "whisper" ^
  sp.py

针对您 CLI 版本打包失败的核心原因和解决方案:

  1. 模型文件缺失(最可能)faster-whisper 需要下载模型(如 large-v3)。打包时,这些模型不会自动包含。您需要:

    • 方案A(动态下载):确保您的 cli.py 在首次运行时,能自动将模型下载到用户可写目录(如 %APPDATA%/pyvideotrans/models),而不是打包程序内部。检查失败日志,看是否是 Could not locate model file 之类的错误。
    • 方案B(打包模型):将模型文件夹(例如 ~/.cache/huggingface/hub/models--Systran--faster-whisper-large-v3)手动复制到项目目录(如 models/ 下),并在打包命令中用 --add-data "models;models/" 包含它。但这会显著增大打包体积。
  2. 依赖缺失:除了上述 --hidden-import,语音识别还依赖 ctranslate2tokenizers 等。确保都已正确隐藏导入或收集子模块。
  3. 运行时路径问题:打包后,sys._MEIPASS 指向临时解压目录。您的代码中所有文件路径(如查找模型、配置文件)都必须使用 sys._MEIPASS 进行修正。例如:

    import sys
    import os
    
    if getattr(sys, 'frozen', False):
        base_path = sys._MEIPASS
    else:
        base_path = os.path.dirname(__file__)
    
    model_path = os.path.join(base_path, 'models', 'faster-whisper-large-v3')

给您的建议打包命令(CLI版)
在您的项目根目录下,尝试使用以下命令打包 cli.py

pyinstaller --onefile --console ^
  --name "my_video_trans_cli" ^
  --add-data "videotrans;videotrans/" ^
  --add-data "ffmpeg;ffmpeg/" ^
  --hidden-import "faster_whisper" ^
  --hidden-import "whisper" ^
  --hidden-import "chardet" ^
  --hidden-import "pydub" ^
  --hidden-import "soundfile" ^
  --collect-submodules "faster_whisper" ^
  --additional-hooks-dir="." ^
  cli.py

关键步骤:

  1. 先不打包,直接调试:在命令行运行 python cli.py [参数],确保所有功能(尤其是语音识别)在源码模式下完全正常。
  2. 查看完整错误:打包后运行失败时,将错误信息完整保存下来。重点看 Traceback 的最后几行,它指明了是哪个模块或文件找不到。
  3. 模型路径处理:按照上面第3点修改您的代码,确保在打包后能正确找到模型文件(无论是动态下载还是打包进去)。

如果上述方法仍无法解决,请提供打包后运行失败的完整错误日志,以便进一步分析。

参考文档链接:

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