利用智谱 AI 免费的 glm-4v-flash 模型,制作了个视频硬字幕提取软件

266 天前
 jianchang512
智谱 AI 的 glm-4v-flash 模型不仅免费(仅限制调用频率,不限制次数),而且具备图像理解能力,可以作为 OCR 工具使用。虽然目前仅支持中英文识别,但对于大多数场景已经足够。

基于此开发了一个硬字幕提取软件。



## 技术原理

1. 视频切帧: 首先,使用 FFmpeg 工具将视频按 1 秒间隔切分为图像帧。按照上中下三等分根据选择取其一。选择 1 秒间隔而非逐帧提取

2. OCR 识别: 将切分后的图像帧发送给智谱 AI 的 GLM-4V-FLASH 模型,进行 OCR 识别,提取图像中的文字。

3. 字幕去重: 由于连续的图像帧可能包含相同的字幕内容,为了避免重复,使用 sentence-transformers 模型计算当前识别出的字幕与前一句字幕的相似度。如果相似度超过 60%,则认为两条字幕内容相同,进行去重。

4. 生成字幕文件: 最后,将去重后的字幕文本按照对应的时间戳进行拼接,并保存为 SRT 格式的字幕文件。


软件下载地址 https://github.com/jianchang512/stt/releases/download/0.0/GVS-0.1.7z
3105 次点击
所在节点    分享创造
5 条回复
subtleworks
266 天前
请问挂 VPN 后可以调用这个 api 吗
jianchang512
266 天前
国内 api 似乎都不支持国外 ip 访问
mumbler
266 天前
字幕用 whisper 从音频提取不是更好么
jianchang512
265 天前
@mumbler 当然更好,也更简单,不过有些场景下希望提取硬字幕,通常在语音和字幕不是同一种语言时,例如某些国外电影资源语音非中文,但配有中文硬字幕时
syaoranex
263 天前
1. 1 秒间隔肯定会漏字幕。因为有一小部分字幕的持续时间不足 1 秒。现阶段成熟的制品都是用 CV 来做字幕帧判断。
2. 从图中来看,你这个没有换行呀。OCR 的输出没有换行,最终字幕到生产上是肯定用不了的。
3. sentence-transformers 没必要,如果第一步就用 CV 来做的话。当然去重有很多办法,没必要在本地跑模型,简单的字符串相似度检测都有比较好的效果,杀鸡没必要用牛刀。


现在硬字幕转 SRT 的最佳流程还是 CV 截取+传统多个模型共同识别+多模型大模型审校。时间戳和转换出来的效果都很不错。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1099153

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX