这篇文章中我介绍了如何在 Windows 上使用 Subtitle Edit 自动识别视频字幕并生成 srt 字幕文件。

今天我将为大家带来 macOS 系统如何使用 whisper 大模型来为视频自动识别字幕。

安装 anaconda (推荐)

推荐使用 anaconda 来作为 python 的包管理工具。conda 是一个开源的跨平台包管理器和环境管理器,可用于管理 Python 和非 Python 包,例如 C/C++ 编译库等。

此处以苹果 M4 芯片为例,其余芯片的安装步骤请参阅 Installing Anaconda Distribution

  1. 打开终端并运行以下命令之一(取决于您的 macOS 架构)来下载安装程序:

    curl -O https://repo.anaconda.com/archive/Anaconda3-2024.10-1-MacOSX-arm64.sh
  2. (推荐)验证安装程序的完整性,以确保其在下载过程中未被损坏或篡改。

    为确保您下载的安装程序未被篡改或损坏,请生成其 SHA-256 哈希值并将其与档案中提供的官方哈希值进行比较。

    1. 打开终端输入如下命令:

      shasum -a 256 ~/Anaconda3-2024.10-1-MacOSX-arm64.sh
    2. 注意输出中生成的 SHA-256 哈希值。

    3. 访问 repo.anaconda.com/archive 查找安装程序的官方 SHA-256 哈希值。

    4. 比较哈希值。如果匹配,则安装程序可以安全使用。

  3. 运行以下命令进行安装

    bash ~/Anaconda3-2024.10-1-MacOSX-arm64.sh
  4. 按回车键查看 Anaconda 的服务条款 (TOS)。然后按住回车键滚动。

  5. 输入 yes 来确认服务条款

  6. 按回车键接受默认安装位置 (PREFIX=/Users/<USER>/anaconda3),或输入其他文件路径指定备用安装目录。安装可能需要几分钟才能完成。

  7. 选择初始化选项:

    1. Yes - conda 会修改您的 shell 配置,以便在您打开新 shell 时初始化 conda 并自动识别 conda 命令。
    2. No - conda 不会修改您的 Shell 脚本。安装后,如果您需要初始化,则必须手动进行。更多信息,请参阅手动 Shell 初始化
  8. 安装程序完成并显示,“Thank you for installing Anaconda3!”

  9. 关闭并重新打开终端窗口以使安装完全生效,或者使用以下命令刷新终端:

    source ~/.zshrc

    您还可以控制 Shell 每次打开时是否激活基础环境。以下命令仅在 conda 已初始化的情况下有效:
    默认开启:conda config --set auto_activate_base True
    默认关闭:conda config --set auto_activate_base False

  10. 检查安装状态
    Anaconda Navigator,即 conda 的图形用户界面 (GUI),在成功安装 Anaconda 发行版后应该会自动打开。
    如果没有自动打开,请手动打开该应用程序或使用 CLI 来验证您的安装:

    1. 访问您的操作系统的 CLI:

      1. 使用 Cmd+空格键打开 Spotlight 搜索。
      2. 输入“Terminal”并按回车键打开。

      您应该在命令行提示符中看到 (base)。这表示您已处于基础 conda 环境中。要了解有关环境的更多信息,请参阅环境。

    2. 运行任意 conda 命令。例如:

      • conda list - 显示活动环境中安装的软件包及其版本的列表。
      • anaconda-navigator - 打开 Anaconda Navigator。

到此 Anaconda 就算安装完毕了。

创建 Whisper 专用环境

由于 Whisper 是在 python-3.9.9 环境下进行训练的,所以我们最好也准备相同的环境来安装 Whisper,我们使用如下命令来创建 Whisper 的 python 环境。

# 创建 whisper 环境
conda create -n whisper python=3.9
# 激活 whisper 环境
conda activate whisper

有了 whisper python 环境之后,我们就可以安装 whisper 了。

pip install -U openai-whisper
# 要将软件包更新到此存储库的最新版本,请运行:
pip install --upgrade --no-deps --force-reinstall git+https://github.com/openai/whisper.git

等待 whisper 的安装完毕。

它还需要在您的系统上安装命令行工具 ffmpeg,大多数包管理器都可以提供该工具:

# 在 macOS 上请使用如下命令进行安装
brew install ffmpeg
# 如果安装失败并显示“No module named 'setuptools_rust'”,则需要安装 setuptools_rust,例如运行以下命令:
pip install setuptools-rust

我们可以在终端命令行中输入 whisper --help 来验证 whisper 是否正确安装。如果有帮助手册输出则说明 whisper 安装成功。

到此 Whisper 就算是安装完毕了。

可用的 Whisper 模型和语言

共有六种模型大小,其中四种为纯英语版本,在速度和准确率方面有所取舍。以下列出了可用模型的名称及其相对于大型模型的大致内存需求和推理速度。以下相对速度是通过在 A100 上转录英语语音测得的,实际速度可能会因多种因素(包括语言、语速和可用硬件)而有很大差异。

Size Parameters English-only model Multilingual model Required VRAM Relative speed
tiny 39 M tiny.en tiny ~1 GB ~10x
base 74 M base.en base ~1 GB ~7x
small 244 M small.en small ~2 GB ~4x
medium 769 M medium.en medium ~5 GB ~2x
large 1550 M N/A large ~10 GB 1x
turbo 809 M N/A turbo ~6 GB ~8x

针对中文的字幕识别,我这边推荐使用 medium 模型起步,低于 medium 的话错误后比较多,medium 模型识别出来的字幕错误较少,可以手动进行纠错。

使用 Whisper 自动识别视频字幕

首先我们可以使用 whisper --help 来查看 whisper 支持哪些功能。

我今天主要介绍如何通过 whisper 自动识别没有字幕的视频。

  1. 首先需要提取视频的音频

    ffmpeg -i input_video.mp4 -vn -acodec mp3 output_audio.mp3
  2. 使用 whisper 识别字幕

    # 使用 medium 尺寸的模型对之前提取的音频进行识别,语言类型为中文,输出格式为 srt
    whisper output_audio.mp3 --model medium --language zh --output_format srt
  3. 得到 srt 字幕文件之后我们就可以将字幕文件导入到视频剪辑工具中进行字幕微调,修改错别字、修改时间线等。再使用剪辑工具进行视频压制即可得到有字幕的视频。

总结

Whisper 是一个非常好用的开源字幕识别工具,非常适合个人视频内容创作者,大大降低了给视频配字幕的难度。