智谱 AI 的 glm-4v-flash 模型不仅免费(仅限制调用频率,不限制次数),而且具备强大的图像理解能力,可以作为 OCR 工具使用。虽然目前仅支持中英文识别,但对于大多数场景已经足够。
基于此开发了一个硬字幕提取软件
使用步骤:
- 下载解压: 下载软件压缩包,解压后双击
app.exe
即可运行。 - 选择视频: 点击软件界面上方的按钮,选择需要提取字幕的视频文件,请确保视频中存在硬字幕。
- 选择字幕位置: 选择字幕在视频中的位置,默认是“底部”,您也可以选择“顶部”、“中间”或“全部”区域。
- 填写 API Key: 填写您在智谱 AI 平台获取的 API Key。您可以免费注册并获取 API Key: 智谱AI开放平台
- 选择模型: 目前仅支持 GLM-4V-FLASH 模型(免费),其他模型均为付费使用。
- 开始提取: 点击“开始”按钮,软件下方文本框会显示进度和日志信息。提取完成后,会在视频文件所在目录生成同名的 SRT 字幕文件。
下载地址 (590MB)
百度网盘下载: https://pan.baidu.com/s/1of657WTHJ1dnQ4_mZ84e0A?pwd=s6mm
Github下载: https://github.com/jianchang512/stt/releases/download/0.0/GVS-0.1.7z
技术原理
- 视频切帧: 首先,使用 FFmpeg 工具将视频按 1 秒间隔切分为图像帧。选择 1 秒间隔而非逐帧提取,一方面可以大幅减少需识别的图像数量,另一方面考虑到字幕通常持续时间不会低于 1 秒,过多的帧数也会增加去重的难度。
- OCR 识别: 将切分后的图像帧发送给智谱 AI 的 GLM-4V-FLASH 模型,进行 OCR 识别,提取图像中的文字。
- 字幕去重: 由于连续的图像帧可能包含相同的字幕内容,为了避免重复,我们使用 sentence-transformers 模型计算当前识别出的字幕与前一句字幕的相似度。如果相似度超过 60%,则认为两条字幕内容相同,进行去重。
- 生成字幕文件: 最后,将去重后的字幕文本按照对应的时间戳进行拼接,并保存为 SRT 格式的字幕文件。