V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
jianchang512
V2EX  ›  分享创造

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

  •  
  •   jianchang512 ·
    jianchang512 · 7 天前 · 956 次点击
    智谱 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
    5 条回复    2024-12-23 02:44:27 +08:00
    subtleworks
        1
    subtleworks  
       7 天前
    请问挂 VPN 后可以调用这个 api 吗
    jianchang512
        2
    jianchang512  
    OP
       6 天前
    国内 api 似乎都不支持国外 ip 访问
    mumbler
        3
    mumbler  
       6 天前
    字幕用 whisper 从音频提取不是更好么
    jianchang512
        4
    jianchang512  
    OP
       6 天前
    @mumbler 当然更好,也更简单,不过有些场景下希望提取硬字幕,通常在语音和字幕不是同一种语言时,例如某些国外电影资源语音非中文,但配有中文硬字幕时
    syaoranex
        5
    syaoranex  
       4 天前
    1. 1 秒间隔肯定会漏字幕。因为有一小部分字幕的持续时间不足 1 秒。现阶段成熟的制品都是用 CV 来做字幕帧判断。
    2. 从图中来看,你这个没有换行呀。OCR 的输出没有换行,最终字幕到生产上是肯定用不了的。
    3. sentence-transformers 没必要,如果第一步就用 CV 来做的话。当然去重有很多办法,没必要在本地跑模型,简单的字符串相似度检测都有比较好的效果,杀鸡没必要用牛刀。


    现在硬字幕转 SRT 的最佳流程还是 CV 截取+传统多个模型共同识别+多模型大模型审校。时间戳和转换出来的效果都很不错。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3028 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 11:00 · PVG 19:00 · LAX 03:00 · JFK 06:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.