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

找不到好用的视频生成字幕及翻译字幕软件,于是我开源了一款

  •  
  •   buxuku2008 · 168 天前 · 3366 次点击
    这是一个创建于 168 天前的主题,其中的信息可能已经有所发展或是发生改变。

    [!TIP]

    客户端版本地址: https://github.com/buxuku/video-subtitle-master ,欢迎大家使用体验

    自己之前下载了一些外文视频(我说是学习视频,而非岛国视频,你信吗?哈哈!),没有字幕,希望能够添加字幕文件,同时也能够将字幕文件翻译成中文, 还希望能够通过批量处理的方式来减轻工作量。

    类似需求,有一批厂商已经提供到了支持,比如 讯飞听见, 网易见外 等,但这些在线服务都涉及到视频的上传动作,效率相对比较低下。

    希望能够找一个客户端工具,在本地来生成,试用了一些工具( Mac 平台),依然不理想

    • Buzz 非 Store 版本没有对 apple silicon 做优化,字幕生成速度比较慢,也不支持翻译
    • MacWhisper 免费版本只支持单个生成,不支持批量,不支持翻译
    • WhisperScript 可以批量生成,但字幕文件需要手动一个个地保存,不支持翻译
    • memo.ac 做了 mac 下的性能优化,可以使用 GPU ,也支持翻译功能,非常棒的一款软件,但目前批量模式有一些 bug ,无法正常使用

    找不到好用的,干脆就自己来写个工具吧,因为自己是做前端的,想到的就是用 Nodejs 写脚本来批量处理实现。核心流程就是通过 ffmpeg 提取音频,通过 whisper 生成字幕文件,通过翻译 api 把字幕文件翻译成中文字幕文件,然后就可以在播放器里面挂载字幕了。

    我把这个工具开源了,地址: https://github.com/buxuku/VideoSubtitleGenerator , 后面非常荣幸得到了一峰大佬的推荐,一峰大佬的影响力果然非同凡响,推荐之后,这个项目的 star 数直线蹭蹭上涨,一下子就得到了 300 多 star, 给我了很大的鼓舞。

    Star History Chart

    同时,我也发现,小工具,自己用用很简单,但要把它开源,做成好用的产品,还是有一定难度的,比如我这个小工具,要使用它,需要在电脑上提前安装好 whisper 和 ffmpeg, 这本身就有一点门槛了。

    于是我进行了迭代了,把 whisperffmpeg 集成到了工具里,不需要用户下载了,减少了很多步骤,但它依然还是一个命令行的工具,需要在终端里面使用,同时修改配置也需要在配置文件里面进行修改,使用上还是有一些难度的。

    进一步想想,那我干脆把它做一个客户端工具好了,所有的配置操作都可视化, 这样使用上就没有什么门槛了,大家使用起来也非常方便了。

    啃了一下 electron 的文档,集成 ffmpeg, 通过 nextjs + shadcn + tailwindcss 写前端页面,把整个命令行工具的能力集成到了这个客户端工具里面。整体效果如下图:

    wpTTKH_20240523_AXpKEE

    当然,它还只是一个初始版本,也非常欢迎 V 友们尝试使用,提出宝贵的意见和建议,我将持续更新迭代,让它能够更好地帮助到有需要的朋友们。

    这是项目的地址: https://github.com/buxuku/video-subtitle-master 欢迎 V 友赐 star 一枚🤝

    第 1 条附言  ·  150 天前
    当前已经支持了 windows 系统。欢迎大家帮忙测试体验。
    42 条回复    2024-06-11 10:20:44 +08:00
    skyqiao
        1
    skyqiao  
       168 天前
    👍 以前需要过,用了飞书妙记。
    yangwcool
        2
    yangwcool  
       168 天前
    有没有 windows 版的计划?
    zhw2590582
        3
    zhw2590582  
       168 天前
    Nosub
        4
    Nosub  
       168 天前   ❤️ 1
    作为一个字幕软件开发者有感而发。

    为啥国内的开发者都在卷套壳(套 whisper ),不卷底层技术,比如视频播放器,时间轴,字幕编辑器。

    我不是鄙视国内开发者没有技术水平,而是过于浮躁;

    重复造轮子并没有解决任何问题;

    我不想说批量生成视频字幕是伪需求,请问什么人需要批量生成视频字幕呢?

    字幕制作本身就是一个精细化的流程,并不是求快的结果;

    就像楼上所说的,你用 whisper 再怎么 CPU/GPU 加速,有飞书妙记和剪映快和效果好吗。

    这本身就是本末倒置,用一个效率更低的生产工具替代一个更好的工具,比如:剪映;
    Ericxiaoshuang
        5
    Ericxiaoshuang  
       168 天前 via Android
    @Nosub 国内这机吧土地,卷的首先是生存问题,然后才可能闲心搞技术
    伪需求?看应用场景,海外电动汽车,火箭,星链互联网,脑机接口,
    renmu
        6
    renmu  
       168 天前 via Android
    @Nosub 其实楼主不是一个字幕软件者,他只是一个想要翻译字幕的人,他不需要对字幕的准确性负责。
    我曾看到过下载 YouTube 视频提取字幕编码上传一条龙的工具,我不知道除了垃圾搬运号谁还需要这种工具
    Ericxiaoshuang
        7
    Ericxiaoshuang  
       168 天前 via Android
    @Ericxiaoshuang 国内尽是些红包,微商,搬运剪辑,真的是能力不行么? icp 备案,404 ,烂尾楼,哪一个不是往死里整
    纯技术层面来说,剪映再好,也无法个性化(自定义),免费最终会收费,再加个敏感词检测,一不小心识别了啥喝茶
    0Z03ry75kWg9m0XS
        8
    0Z03ry75kWg9m0XS  
       168 天前
    @Nosub Linux 上有什么好用的推荐么。kdenlive 现在也是用的 whisper 识别
    buxuku2008
        9
    buxuku2008  
    OP
       168 天前
    @Nosub 我确实不是一名字幕软件者,我也只是在看外国的一些学习视频时,能够一个字幕方便看。所以不需要对字幕的准确性,以及时间轴的准确性有多高的要求。所以对于字幕开发者,或者视频创作者而言,那是另外一个方面的追求了。肯定要求的更加精细化的追求而不是简单通过工具去生成。

    @renmu 我的初衷确实也没有想到还有垃圾搬运这样的场景。只是想有一个本地化的工具,对自己看一些视频有挂个字幕,而方便生成的一个工具而已。哈哈。
    shuxhan
        10
    shuxhan  
       168 天前
    歪下楼,我比较好奇把图片加阴影是什么工具做的 @buxuku2008
    buxuku2008
        11
    buxuku2008  
    OP
       168 天前   ❤️ 1
    @shuxhan
    Shottr 这个免费的截图软件,使用 Capture Active Window 就可以自动截取活动窗口了。
    jatesun
        12
    jatesun  
       168 天前
    我想问一下有没有实时生成在线字幕的方法?或者类似的思路
    buxuku2008
        13
    buxuku2008  
    OP
       168 天前
    @yangwcool
    是有这个计划了,但因为手头没有 window 电脑,只能用虚拟机来跑,进度可能会比较慢一点。
    buxuku2008
        14
    buxuku2008  
    OP
       168 天前
    @jatesun
    我也在思考这个问题,比如我在看 youtube 时,实时生成字幕。只能想到提前拿到视频进行生成,然后对上时间轴去展示。要真实现播放时的那种实时生成,肯定会存在延迟的, 之前试过华为的那个 ai 翻译,它是边识别边修正,实际体验感觉并不是特别理想。
    jatesun
        15
    jatesun  
       168 天前
    @buxuku2008 #14 已 star ,感谢回复,我一直就在想如何做一款实时视频在线生成的工具,感觉很多人有这种需求,毕竟现在很少有人下载视频了,基本都是在线。我再深入研究一下。
    thinkm
        16
    thinkm  
       168 天前
    请教一下断句的问题,whisper 很多时候断句会断在奇怪的位置

    然后翻译是一行一行翻译的,结果就不准确

    OP 怎么解决这个问题的,是不是用了上下文,一次性扔几行给翻译服务?
    xianyun5
        17
    xianyun5  
       168 天前
    之前一直想弄个,结果大佬直接开源了,谢谢分享,已经 star
    NoOneNoBody
        18
    NoOneNoBody  
       168 天前
    @Nosub #4
    对于字幕工作者,一直是感恩的

    但现实是软字幕很难找(欧美还好一点),明明手头有 4k 或 1080p 更好的视频源,但很多时候为了看得明白,需要下载 720p 熟肉,显得很无奈。而且连吐槽的资格也没有,道德制高点已被占领,一开口就被淹没,只好选择硬着头皮看英文字幕,或者选择离开,OP 此类作品的出现,算是多了一个选择

    感觉是所有圈子都在圈地,唉
    digd
        19
    digd  
       168 天前
    很久之前用过 autosub ,调用 youtube 的 api 的,还挺好用的,但是不稳定
    SawyerGuo
        20
    SawyerGuo  
       168 天前
    我之前也用 whisper 和 Electron 开发了个 windows 的客户端,开发完了也就自己用了一两次,后来项目都没再打开过。
    chunkingName
        21
    chunkingName  
       168 天前
    请问,能在我家里的群晖上部署然后自动为群晖上所有视频生成字幕吗?
    winglight2016
        22
    winglight2016  
       168 天前
    前几天刚看到一个 js 版的命令行开源项目,好像就是 lz 这个,这么快就有 GUI 了。我用 AI 帮忙做了个 python 版,有兴趣的拿走: https://github.com/winglight/VideoExtractSub
    buxuku2008
        23
    buxuku2008  
    OP
       168 天前
    @thinkm #16
    buxuku2008
        24
    buxuku2008  
    OP
       168 天前
    @thinkm
    抱歉哈,我目前对于输出的要求没有那么高。所以翻译也是一行一行进行翻译的,火山支持多行翻译,但应该也没有去关联上下文,如果我良好的上下文关联进行翻译的话,估计要通过 ai 来翻译可能效果会好一些。
    你这边方便的话,可以麻烦帮我提供一素材,就是那种单行翻译效果比较差的那种。我好去尝试一下更好的翻译方法实现。
    buxuku2008
        25
    buxuku2008  
    OP
       168 天前
    @digd 恩,看了一下,该项目已经不再维护了,不过思路挺不错的。
    buxuku2008
        26
    buxuku2008  
    OP
       168 天前
    @SawyerGuo 大佬,可以分享了下项目地址吗?我这个项目目前还没有支持 windows 版本,下一步计划正好也是去兼容 Windows
    buxuku2008
        27
    buxuku2008  
    OP
       168 天前
    @chunkingName
    不支持在群晖上面运行那个 GUI 版本,不过你可以试试那个命令行版本,但最好的方式,是在电脑上面运行,然后挂载群晖里面的内容。
    YuushaTao
        28
    YuushaTao  
       168 天前
    等个 windows 版,先 star
    DavZhn
        29
    DavZhn  
       168 天前
    已 star ,不过好像下载模型的时候,一直是正在下载,77.7m 的那个 下载了 10 分钟了 还是那样诶?
    buxuku2008
        30
    buxuku2008  
    OP
       168 天前
    @DavZhn 你使用的是官网的源吗?官网的源有时会被墙,使用国内源应该是很快的。
    DavZhn
        31
    DavZhn  
       168 天前
    @buxuku2008 选择的是国内的诶
    lhsakudsgdsik
        32
    lhsakudsgdsik  
       168 天前
    chrome 浏览器现在貌似就可以识别视频字幕吧
    thanksir
        33
    thanksir  
       168 天前
    @zhw2590582 好喜欢这个界面
    ivyliner
        34
    ivyliner  
       168 天前
    @buxuku2008 嗯, 我的 APP: YPlayer 好像可以完美解决你的核心需求: 本地批量生成字幕和批量翻译
    https://www.engineerdraft.com/yplayer/
    ivyliner
        35
    ivyliner  
       168 天前
    @jatesun #12 我的 APP BeMyEars 好像就是你想要的 https://www.engineerdraft.com/bemyears/
    buxuku2008
        36
    buxuku2008  
    OP
       168 天前
    @DavZhn
    你通过 command + shift + i 可以打开控制台,在 console 里面看看,有没有什么日志信息呢
    forvvvv123
        37
    forvvvv123  
       168 天前
    大赞,非常好,我非常需要!现在就下载下来试试!
    FFFMML
        38
    FFFMML  
       168 天前
    用 pixel 自带的他可以把英文实时实翻译成繁体,准确度高,而且基本上是全局调用,找个 iptv 的英文电台,他都直接显示中文字幕。自己录的视频他也会跑出来翻译。
    mdgwmt0
        39
    mdgwmt0  
       168 天前 via iPhone
    感谢
    LJason
        40
    LJason  
       168 天前
    支持一下,等 Linux 或 Windows 版
    zhaoyi1234
        41
    zhaoyi1234  
       168 天前 via Android
    @jatesun 试试沉浸式翻译浏览器插件,https://immersivetranslate.com/ ,支持常见视频网站
    buxuku2008
        42
    buxuku2008  
    OP
       150 天前
    @yangwcool
    @YuushaTao
    @LJason
    当前已经支持 Windows 版本了,欢迎大家试用体验。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2612 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 01:39 · PVG 09:39 · LAX 17:39 · JFK 20:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.