#2810 whisper 使用其他fine-tune的model (safetensors版本)

2001:e68* Posted at: 4 days ago 👁47

whisper 使用其他fine-tune的model (safetensors版本)

3 Replies

Whisper 本身不支持直接加载 .safetensors 格式的模型文件。.safetensors 是 Hugging Face 生态中用于安全存储模型权重的格式,通常与 transformers 库配合使用。

如果您想在 pyVideoTrans 中使用基于 Whisper 架构、经过微调(fine-tune)的模型,您需要将其转换为与 faster-whisperopenai-whisper 兼容的格式。

以下是两种主要的解决方案:

方案一:使用 transformers 库的 Whisper 实现(如果模型托管在 Hugging Face)

如果您的微调模型已上传至 Hugging Face Hub,且是标准的 Whisper 架构,您可以尝试通过“自定义语音识别API”功能来调用。

  1. 前提:模型必须能在本地通过 transformers 库的 pipeline 加载并运行。
  2. 在 pyVideoTrans 中配置

    • 进入 设置 -> 语音识别设置
    • 在“自定义语音识别API”区域,填写相关信息。您需要提供一个能接收音频文件并返回识别文本的本地 API 服务地址(例如使用 gradiofastapi 搭建)。
    • 这种方式需要您自行编写一小段服务端代码来加载您的 .safetensors 模型并进行推理。

方案二:将模型转换为 faster-whisper 格式(推荐,性能更好)

faster-whisper 使用 CTranslate2 格式的模型,速度更快,显存占用更低。您需要将 .safetensors 模型转换为 CTranslate2 格式。

转换步骤(需要一定的 Python 和命令行操作经验):

  1. 安装必要库

    pip install transformers ctranslate2
  2. 编写转换脚本(例如 convert_to_ct2.py):

    from transformers import WhisperForConditionalGeneration
    import ctranslate2
    
    # 1. 从 Hugging Face 加载您的微调模型
    model_name = "您的 Hugging Face 模型 ID 或本地路径"  # 例如 "username/whisper-small-zh-finetuned"
    hf_model = WhisperForConditionalGeneration.from_pretrained(model_name)
    
    # 2. 转换为 CTranslate2 格式
    # 指定输出目录
    ct2_model_path = "./whisper-ct2-model"
    
    # 使用 CTranslate2 的转换器
    converter = ctranslate2.converters.TransformersConverter(model_name)
    converter.convert(ct2_model_path, quantization="int8_float16")  # 可选择量化方式,如 int8, int8_float16, float16 等

    运行此脚本后,会在 ./whisper-ct2-model 目录下生成 CTranslate2 格式的模型文件。

  3. 在 pyVideoTrans 中使用

    • 启动软件,在语音识别渠道选择 faster-whisper(本地)
    • 在“模型”下拉菜单旁,点击 ... 按钮。
    • 在弹出的文件选择器中,导航到您上一步生成的 whisper-ct2-model 文件夹,选择它。
    • 软件将加载您自定义的转换后模型进行识别。

重要注意事项

  • 架构一致性:您的微调模型必须基于原始的 Whisper 架构,不能有大的结构性改动,否则转换或加载可能失败。
  • 性能:方案二(faster-whisper)通常能获得更好的推理速度和更低的显存占用。
  • 语言支持:请确保在 pyVideoTrans 的“发音语言”设置中,选择与您微调模型匹配的语言(如果模型是针对特定语言微调的)。

如果您在转换或加载过程中遇到具体错误,请提供详细的错误信息,以便进一步分析。

请查看更多参考文档:

已经使用ctranslate2转好了 要怎么使用

您已经将模型转换为 CTranslate2 格式,可以按以下步骤在 pyVideoTrans 中使用:

  1. 启动软件:打开 pyVideoTrans。
  2. 选择识别渠道:在主界面第 2 行“语音识别”处,选择 faster-whisper(本地)
  3. 加载自定义模型

    • 点击“模型”下拉菜单旁边的 ... 按钮。
    • 在弹出的文件选择窗口中,导航到您转换好的 CTranslate2 模型文件夹(例如 ./whisper-ct2-model),选中该文件夹,然后点击“选择文件夹”或“打开”。
    • 软件界面上的“模型”名称会更新为您选择的文件夹路径。
  4. 正常使用:像使用官方模型一样,选择“发音语言”和“识别模式”,然后开始处理视频。

重要提示

  • 模型兼容性:确保您的微调模型是基于原始 Whisper 架构(如 whisper-small, whisper-large-v3 等),否则可能无法加载或运行出错。
  • CUDA 加速:如果您的模型支持 GPU 且已安装 CUDA,请务必勾选主界面第 6 行的“CUDA加速”选项。
  • 模型选择:加载自定义模型后,软件将使用该模型进行所有识别任务,直到您再次通过 ... 按钮切换回官方模型或选择其他自定义模型。

如果加载后运行出现错误,请检查转换过程是否正确,并查看 videotrans/logs/ 目录下的日志文件获取详细信息。

请查看更多参考文档:

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