视频自动字幕生成器 (Video Subtitle Generator)

这是一个基于 Qt 6.9 (C++)、FFmpeg 和 Python (Vosk / Whisper) 的 Windows 桌面应用程序。它可以自动识别视频中的中文语音,生成 SRT 字幕,并将其“烧录”进视频中(硬字幕),方便制作带字幕的视频内容。

image-20260102115147861

Github:https://github.com/haoyouxiaoju/addSubtitlesToVideo

这是我通过Trae直接生成的,开始只给了
‘目前需要完成一个程序,功能为可以给视频导入字幕。
具体使用Qt6.9来编写界面,主体是C++来完成,音频识别转换字幕使用python的库来完成(大致为ffmpeg将视频音频提取出来再交给python的Vosk或者Whisper进行转录,最后使用ffmpeg再将字幕导入视频中)。
流程为选择视频->程序将视频中音频提取出来->将提取出来的音频转换成文本字幕(目前只考虑中文)->将字幕导入视频中
输入:视频文件(需要保持不变,输出是额外的文件)
输出:加了字幕的视频文件和字幕的文本文件
需要完整的编写出来能够运行’
后续就是根据需求慢慢修改,最开始使用vosk可以直接使用,后续让其切换成whisper后就出现较多问题,要慢慢修改

由于里面使用的是ffmpeg和python的命令所以需要确保本地机器有搭建ffmpeg和python的环境
同时程序运行还会运行openai模型,所以第一次运行会下载模型比较久,
而且使用模型需要调用GPU,还需要额外pip一些cuda的库,不然只是使用CPU来转录就比较慢了

🚀 功能特性

  • 双引擎支持:
    • Vosk: 轻量级离线识别,CPU 运行,无需显卡,适合老旧设备。
    • Whisper (Faster-Whisper): 高精度识别,支持 GPU 加速 (CUDA),准确率远超 Vosk。
  • GPU 加速: 自动检测并配置 NVIDIA 环境,无需手动安装 CUDA Toolkit(通过 pip 依赖自动注入)。
  • 拖拽导入: 直接将视频文件拖入界面即可添加任务。
  • 批量处理: 自动队列管理,支持多任务顺序处理。
  • 硬字幕合成: 使用 FFmpeg 将字幕直接嵌入视频画面,确保在任何播放器中均可显示。
  • 智能排版: 自动检测长句,将字幕拆分为每行不超过 20 个字符的短句。
  • 可视化进度: 实时显示模型下载、音频转写、音频提取视频合成的详细进度 (步骤 1-3)。
  • 结果反馈: 清晰的成功/失败状态指示,失败任务高亮显示。
posted @ 2026-01-02 13:19  haoyouxiaoju  阅读(0)  评论(0)    收藏  举报