V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
爱意满满的作品展示区。
andyskaura
4.64D

用 AI 做了一个给小电影加字幕的工具

  •  
  •   andyskaura · 1 day ago · 2627 views
    原先在 v 站发了一贴,当时只有 mac 端,没什么人用。
    后来在别的帖子提了一嘴,发现还是有很多人需要的。

    于是五一抓紧时间完善了一下。

    写完只想说,ai 更新太快,刚开始调研需求时,还处于 web 上一问一答的古法 ai 时代,等落地时已经是无人值守时代了。

    博客链接: https://kuraa.cc/archives/yong-aizuo-liao-yi-ge-gei-xiao-dian-ying-jia-zi-mu-de-gong-ju
    Supplement 1  ·  6 mins ago
    经过昨天大家伙儿反馈,主要集中在 whisper 转录慢。
    梭哈时没有考虑太多,计划从两个方向进行优化:
    1.使用 fast-whisper 替换原生 whisper
    2.whisper 开启 gpu 加速(开发时完全没去了解这些,所以默认的跑在 cpu 上:))

    花一点点时间 vibe 出来的东西能带来价值,真的挺开心的。
    感谢大家使用
    54 replies    2026-05-07 09:26:17 +08:00
    xuromky
        1
    xuromky  
       23h 54m ago
    OP 建议用什么翻译模型,我来试试
    andyskaura
        2
    andyskaura  
    OP
       23h 31m ago
    @xuromky 其实都可以,7b 本地都够用了。llm 做翻译就是手拿把掐。
    不过老旧的笨模型好像序列化输出可能会有问题。
    idblife
        3
    idblife  
       23h 29m ago
    点赞,我一直想做一个呢,这下省时间了,哈哈。
    除了小电影外,有些冷门的美剧/电影没有字幕,也需要这个工具。
    mywaiting
        4
    mywaiting  
       23h 13m ago
    项目简介的图片,这刚一点开,后面就不知不觉站了几个同事了~~啧啧啧~~
    xuromky
        5
    xuromky  
       23h 12m ago
    @andyskaura 这样填对吗 还是需要加上 v1
    andyskaura
        6
    andyskaura  
    OP
       23h 9m ago
    @xuromky #5 一般是得有 v1 的,得看你那个提供商给的 openai 格式的接口是啥
    buxuku2008
        7
    buxuku2008  
       23h 8m ago   ❤️ 1
    感谢作者开源,用 tauri 来做非常棒,我之前也做了一个类似这样的工具,生成字幕,翻译,校对,字幕合成这些功能都集成有了。
    https://github.com/buxuku/smartsub
    andyskaura
        8
    andyskaura  
    OP
       23h 8m ago
    @mywaiting 很有效果嘛
    heganyuliang
        9
    heganyuliang  
       23h 8m ago
    这类工具市场上有不少,对我来说最大的痛点是不支持 AMD 显卡的 GPU 加速哈哈
    andyskaura
        10
    andyskaura  
    OP
       23h 7m ago
    @buxuku2008 你这个功能完成度好像比我的高不少啊
    buxuku2008
        11
    buxuku2008  
       23h 0m ago
    @andyskaura 也是一步步迭代过来的。之前也考虑过采用 tauri + whisper-rs 进行重构,但没精力搞。可以作为你的一个借鉴参考。
    andyskaura
        12
    andyskaura  
    OP
       22h 48m ago
    @buxuku2008 #11 好的,感谢,目前已满足我对 nas 小姐姐的需求,有你这个项目,更不会迭代了
    xuromky
        13
    xuromky  
       22h 47m ago
    @heganyuliang +1,我的也是 AMD 的显卡,现在处理速度好慢
    mywaiting
        14
    mywaiting  
       22h 43m ago   ❤️ 1
    @andyskaura 该说不说 V2 这里加个 [NSFW] 在标题里,推广项目感觉更有效果~~[逃]~~
    ala2008
        15
    ala2008  
       22h 40m ago   ❤️ 1
    感觉不错,可惜我需要的是在线翻译啊,一般不下载本地看🤣
    JYii
        16
    JYii  
       22h 37m ago
    去年年初就准备买硬盘组 nas ,到今天,购物车里 4t 的价格翻了 2.5 倍。
    lagrange7
        17
    lagrange7  
       22h 35m ago
    不错,下个试试。给你点 star 了
    idblife
        18
    idblife  
       22h 19m ago
    @andyskaura
    有自动升级功能没?
    没有的话等有了我再安装,比较懒。。。
    firefox12
        19
    firefox12  
       22h 5m ago
    弱问一下 拿 llm 本地翻译, 我这么写的 把下面的英语翻译成中文 直接给中文 不要给任何信息,下面就是一段英语。 翻译出来的结果 有时候正确,有时候 他会把思考的步骤 返回出来 比如说 这句话原意是什么 可以这么思考 。。。。。 我就是用大模型做一个翻译,这个该如何解决?因为再试一次可能对 也可能不对。正确的打开方式是什么?
    andyskaura
        20
    andyskaura  
    OP
       21h 54m ago
    @firefox12 response_format={'type': 'json_object'} 铁汁,你得用序列化输出啊
    firefox12
        21
    firefox12  
       21h 51m ago
    @andyskaura 本地镜像起的服务 肯定是 json 结果啊, 但是结果里不是纯净的翻译结果。 所以我再调了一次大模型,让它看上次的结果里 有没有 xxx xxx 这样的关键字 有的话 就去掉。 我用的 qwen2.5 的模型,chatgpt 给的建议 发现不太好用。结果总是不太对
    jtam
        22
    jtam  
       21h 21m ago
    原来是 NSFW 的摄影师大佬,失敬
    Clannad0708
        23
    Clannad0708  
       21h 3m ago
    op 是怎么用 ai 无人值守迭代出这个产品的?
    andyskaura
        24
    andyskaura  
    OP
       20h 58m ago
    @firefox12 #21
    andyskaura
        25
    andyskaura  
    OP
       20h 42m ago
    @Clannad0708 我这里的无人值守是指我不是很关注实现细节,全交给它了。
    把整个需求直接 txt 列好了,codex 开最高权限,开始梭哈,然后开一局 csgo ,打完一局,再纠正一下。
    andyskaura
        26
    andyskaura  
    OP
       20h 41m ago
    @jtam 年纪大了 看 a 片都跳过啪啪啪部分。
    xuromky
        27
    xuromky  
       20h 7m ago
    @andyskaura 是不是没 AMD 显卡 gpu 加速的关系,都快两个小时了,一部小电影还没结束
    andyskaura
        28
    andyskaura  
    OP
       19h 56m ago
    @xuromky #27 我也收到反馈了,我两台电脑,14600kf+intel 显卡 b580 和 m1 的 mac ,2 小时电影,大概 30 分钟转录完。 https://huggingface.co/ggerganov/whisper.cpp/tree/main 你方便手动下载 tiny 模型替代一下看看效果和效率?
    xuromky
        29
    xuromky  
       19h 38m ago
    @andyskaura #28 选哪个呀,我的电脑配置是
    andyskaura
        30
    andyskaura  
    OP
       19h 23m ago
    @xuromky #29 tiny-q5—1.bin 试试,如果还是慢或者效果不好,就得找找别的方案了。
    andyskaura
        31
    andyskaura  
    OP
       18h 52m ago
    @xuromky #27 隔壁站那个说慢的也是你!
    zyxk
        32
    zyxk  
       18h 39m ago
    我想知道, 用国内翻译模型,会不会被封号,你们都用什么翻译
    @buxuku2008 #7
    @andyskaura #2
    firefox12
        33
    firefox12  
       18h 37m ago
    OLLAMA_URL = "http://127.0.0.1:11434/api/generate"
    MODEL = "qwen2.5:7b"

    RETRY = 3
    SLEEP = 1


    # ===== 调用本地大模型 =====
    def translate(text, mode="movie"):
    if not text:
    return None

    if mode == "movie":
    prompt = f"把下面的英文句子描述翻译成简体中文,保持简洁自然。记住我的要求,前面的部分不要重复, 只给出后面的翻译 :\n{text}"
    print(prompt)
    for i in range(RETRY):
    try:
    response = requests.post(OLLAMA_URL, json={
    "model": MODEL,
    "prompt": prompt,
    "stream": False
    }, timeout=120)

    result = response.json()
    return result.get("response", "").strip()

    except Exception as e:
    print(f"翻译失败,第{i+1}次重试:", e)
    time.sleep(2)

    return None
    我是用本地模型,效果不行,有的好,有的会有思考过程的结果
    yrk20212021
        34
    yrk20212021  
       18h 24m ago
    windows 版本在 model 目录下载了 ggml-large-v3-turbo.bin 或者 ggml-large-v3.bin 替换你默认配置的 ggml-base-q5_1.bin ,出现加载失败。
    zyxk
        35
    zyxk  
       18h 18m ago
    @buxuku2008 #7 smartsub 使用了一下, 功能很完善,提一点小建议, 字幕翻译是一条一条翻译的,速度比较慢, 如果能改进一下, 批量翻译,每次翻译 20 / 30 / 50 条,速度会有 N 倍的提升。

    我使用 10 分钟的中文视频测试,并翻译为英文,mac m4 提取字幕只用了 26 秒, 但是翻译用了近 5 分钟, 看了一下日志,使用 DeepSeek 请求 二或三秒 返回一次,每次只请求一句, 如果每次翻译请求 30 句,那就太棒了。
    litchinn
        36
    litchinn  
       18h 17m ago
    模型对这方面的输出没有限制吗
    andyskaura
        37
    andyskaura  
    OP
       18h 13m ago
    @yrk20212021 我测试了 tiny 是正常的,等我回家试试体量更大模型
    andyskaura
        38
    andyskaura  
    OP
       18h 12m ago
    @litchinn 反正鸡鸡什么的都正常输出
    andyskaura
        39
    andyskaura  
    OP
       18h 11m ago
    @zyxk #35 确实,如果一句一句翻,还容易翻译不准确。用 llm 的优势就是,直接一大篇发过去,带着上下文翻译又快又准
    xuromky
        40
    xuromky  
       18h 6m ago
    @andyskaura #31 哈哈哈是我,现在换了你说的这个,速度快多了 不过也要 1 个小时,翻译效果不是很好
    hardyfish
        41
    hardyfish  
       17h 56m ago
    看日本老师在线片,有中文翻译解决方案不?
    andyskaura
        42
    andyskaura  
    OP
       17h 48m ago
    @xuromky #40 是的 所以还得是默认的模型,不然转录出来很怪。我再找找有没有加快的方式吧
    lambdaX999
        43
    lambdaX999  
       17h 32m ago
    你们都是科技加持,只有我去考了日语等级
    mrabit
        44
    mrabit  
       17h 30m ago
    @litchinn 部分模型还是会有敏感词的 目前用过最宽松的 应该就是 grok 了
    andyskaura
        45
    andyskaura  
    OP
       17h 24m ago
    @lambdaX999 撕国一列
    xuromky
        46
    xuromky  
       17h 20m ago
    @andyskaura #42 为什么这么多 translation: send error: channel closed
    andyskaura
        47
    andyskaura  
    OP
       17h 3m ago
    @xuromky #46 这像是 api 调用失败了,不断地再重试
    xuromky
        48
    xuromky  
       17h 2m ago
    @andyskaura #47 好吧 话说你推荐的 GLM-4.7-Flash 模型是官方申请的吗 我找不到
    andyskaura
        49
    andyskaura  
    OP
       16h 43m ago
    19cm
        50
    19cm  
       12h 28m ago
    不错, 原来 v 站有老哥发了个收费的
    19cm
        51
    19cm  
       12h 27m ago
    如果老哥对成人这块特别有热情,可以跟我交流,我写了个成人网站的插件,功能挺多的
    snowfuck
        52
    snowfuck  
       11h 55m ago
    老哥可以的,最重要是动起手来!
    qfdk
        53
    qfdk  
    PRO
       6h 36m ago
    哈哈 可以可以, 其实我的 voila 是可以有实时字幕模式的, 只不过不能翻译 这个有点儿遗憾.回头接一个翻译接口吧,这样估计也就舒服了不用等的喔
    buxuku2008
        54
    buxuku2008  
       43 mins ago
    @zyxk 支持批量翻译的,在翻译服务商设置的下面
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   6304 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 205ms · UTC 02:10 · PVG 10:10 · LAX 19:10 · JFK 22:10
    ♥ Do have faith in what you're doing.