两个仓库本体:
- elevenlabs-stt: https://github.com/Sallyn0225/elevenlabs-stt
- 翻译skill: https://github.com/Sallyn0225/sallyn-skill
写在前面
在使用scribe v2模型之前
在非LLM,和多媒体有关的AI中,最让我感兴趣的还是音频这一块的大模型。其中STT是我一直在折腾的东西。
Whisper 是由 OpenAI 于 2022年9月 推出并开源的自动语音识别(ASR)系统。它支持包括中文在内的约99种语言的语音转录以及翻译功能。没想到都已经过去了差不多快4年了,当前你能看到的很多AI烤肉项目都是靠这个进行转录。

我过去也用过whisper作为AI烤肉转录阶段的第一选择,因为当时选择不多,openAI的这个模型反而是最好的选择。而且也有很多人制作了图形界面,比如 faster-whisper-GUI 就是其中一个。

但很快,后面搁家都开始推出新的ASR模型,whisper的转录精度很快就不够用了。Qwen3-ASR是第二个让我感觉转录上有很大进步的模型,虽然各种项目并没有whisper的多,但是qwen官方提供了Qwen3-ASR-Toolkit 来让你能够更好的使用他们的API,另外价格其实也还算是很便宜,省去了本地部署的麻烦。

虽然千问的ASR已经很强了,但是实际在我处理音频的时候还是感觉有些词语转录的错误还是较多,另外官方的toolkit是使用切分音频来制作字幕的时间轴的,所以时轴的效果反而还比不上whisper那么好。
终于,找着找着,在 artificial analysis 这个榜单上看到了另一个非常之强的模型——Scribe V2


Scribe V2牛逼在哪
首先这个榜其实很简单,就是看转录后错误的词占所有的百分比。scribe v2拿下了2.2%的成绩,也就是说100个词中只有2个多一点点的词会被转录错误。
第一的模型?
需要注意的是,Fun-ASR这个模型的只在这一个榜里而其他的榜查无此人,而我也没有看到其他人说这个模型,为了防止存在刷榜的情况暂时不推荐。
另外价格也非常能打,在这个图中横轴代表价格,纵轴代表错误率,也就是说越往左下走的模型越好。可以看到scribe v2在保持了极低的错误率的同时价格也是同等错位率里最低的那个。

另外模型的转录速度也很快,一个十分钟的音频大概只需要等待20~30s左右就可以拿到结果。官方给出的数据是每秒可以转录33s左右的音频。
极低的使用门槛
虽然scribe v2是一个闭源模型,但是在官网给每个免费账号都提供了一定的额度。一个免费账号的初始额度是1w,大概可以转录10分钟左右的视频。而且官网并没有对注册的方式进行限制,不需要手机号,不需要KYC,也不会验证你的邮箱是否是自建,只要有邮箱和验证码,基本就能注册。这也给后面我做2api和注册机做了个铺垫。

效果展示
借助这套工作流,已经完成了几个单人切片的制作。后期主要的工作在于修正时轴和翻译上的措辞问题,都是小修改。

另外感谢我的外星人兄弟帮我做的校对

最新一个视频 BV1FCMw6cEDP 则是完全依赖这套工作流,转录1h的语音大概只等待了上游ElevenLabs一分半左右的时间+花10分钟让DeepSeek-V4-Pro走skill进行完整的翻译流程,7M token,0.6美刀左右。

如果你有订阅
虽然DeepSeek的API已经很便宜了,但是当前为了保证翻译质量,翻译的时候会开出大量的子代理,所以还是建议有订阅token plan的朋友去放开了使用这个skill进行翻译。
可以看到这么一套流程下来,一些传统whisper可能会漏的专有词也会被正确识别并且翻译进来(即使你没有设置相关的热词)

当然,这个并不是单纯依靠Scribe V2模型本身实现的,而是我自己按照翻译的思路设计了一个skill,在不懂外语的情况下尽最大可能的还原视频语境中所想表达的意思。
如何使用呢?
前置条件
如果你打算自己手动注册ElevenLabs账号,那么这个脚本只需要安上依赖就可以开箱即用了,也就是在使用2api的功能;当然用这个肯定要配合注册机起来才用的最爽,这个情况下你需要准备以下两样东西:
- 一个域名(推荐最好不要用
.top.xyz等有可能被风控的域名) - 一个cloudflare账号,免费层级就行
- 一个临时邮箱后端项目 https://github.com/dreamhunter2333/cloudflare_temp_email
- 随意一个Agent工具(CC, Codex, OpenCode, openclaw, hermes, Pi……)
- 大模型的API或者订阅服务,图省事deepseek够用了。
购买域名不做推荐,但是推荐优先在国外平台进行购买,如 Spaceship, Namesilo, Namecheap 等。如果考虑在国内平台进行购买,可以看看哪些平台有比较好的首次购买优惠,如阿里和火山云,后者大概率有比较大力度的优惠。
购买了域名之后,如何部署自己的临时邮箱,可以查看这篇非常详细的文章(需要特殊网络环境):https://linux.do/t/topic/1666961

在部署了这个项目之后,一定要记住的三个东西,后面我们会用上:
- 你的后端地址
- 你设置的管理员密码
- 你用于临时邮箱的域名
基本配置
把 config.example.toml 复制为 config.toml ,然后进行修改。大部分东西在WebUI中也可以修改,需要这里推荐把 [temp_email] 的相关字段给填上。也就是你刚才记下来的三个内容:base_url 对应后端地址,admin_password 对应管理员密码,domain 对应你注册的时候要是用的域名。其他部分保持默认就行。

为什么保持默认也行
其实WebUI我个人用的比较多,所以很多配置在WebUI里配置也是没问题的。
启动WebUI
先安装一下相关需要的依赖
pip install -r requirements.txt
playwright install chrome # 仅登录步骤需要然后直接启动WebUI
python web.py # 打开 http://127.0.0.1:8756然后在命令行中弹出的网页ctrl加左键点击打开即可

登录/注册机注册账号
我们刚进来,肯定是没有ElevenLabs账号的。假如你之前注册了但是还没用额度,可以通过登录功能把账号登录进来。

如果你账号都没有,但是你已经按照上面的教程部署了临时邮箱,这个时候就可以走注册机了。

这里只需要检查一下是不是我们刚才配置文件里配置的东西即可,其他默认就行。
提示
注意保持网络环境良好,要可以正常访问ElevenLabs
然后点击开始批量创建,二次确认,之后就可以放开鼠标键盘让脚本自行操作了。需要注意的是,脚本操作过程中不要去动鼠标键盘,因为采用的是模拟点击跳过风控的方案。另外,如果你是台湾的网络环境,可能可以完全全自动走完注册流程,但是IP质量或者部分国家的ToS不一致,在注册的页面会提示需要勾选ToS,这个时候可以移动鼠标勾选上然后点击一下注册按钮,之后继续恢复全自动的流程。
Bug
我在公司、自用电脑、朋友电脑上都已经测试过了这个脚本,目前来看就只有一个ToS弹框的问题。
如果不弹ToS就可以放着不动自动注册好,如果有的话每个账号注册账号的时候都需要点一下。确实有些不太优雅。
进行转录
假设我们已经注册了几个账号,在账号池里已经可以看到我们注册的账号和额度了,我们就可以开始把音频拉过来开始翻译了。

我们回到转录页面,然后把自己的音频文件弄过来。我暂时还没做把视频拖过来然后自动抽音频的功能,后面应该会加上。
可以转录单个音频,也可以转录多个音频。但是当前没开放逐个音频设置参数,所以最好保证你批量转录多个音频的时候,语言、热词是通用的。

参数设置其实也没什么说的,语言自己选好,格式选择SRT就行,自定义词汇设置一些你觉得音频中可能会高频出现的词语特别是人名/作品名等靠语音识别容易出错的词语。其他默认设置基本就够,但是建议追加打开一个 跳过长静音 的功能,可以省一些账号,去掉不必要转录的静音片段。
需要注意的是,一个账号大概只能转录接近10min的音频,并且当前代码还设置了一定的安全余量,不能最大程度的榨干一个账号的额度(为了以防万一)所以如果你的单个音频超出了一个账号所能转录的额度,那么这个音频就会被切分到小段的音频,分配到不同的账号文件,然后分账号进行转录,最后依靠脚本把字幕拼接起来。

像我这个点击开始之后就会进行转录,稍等一会之后就会自动下载一个合并好的SRT文件到本地。如果你是自己手动做的切分,那么就会下载多个SRT文件而不是帮你合并。
配置你的Agent
当我们拿到了SRT之后,这个东西是不能直接用的。这也是我不太喜欢Scribe V2的一个原因:它的时轴还是非常奇怪,不能直接用;另外一句话为了防止一行过长会有奇怪的换行;有的时候一句话被拆开的位置特别奇怪,上一句话的末尾几个字被丢到了下一句话……而这些东西是我们使用脚本没有办法处理的,是转录模型的问题。
我的工作流里,因为我的字幕并未保留日语原文的字幕,所以我倾向于直接做翻译到中文并且进行一定修正之后,再来处理时轴的问题。因此我做了一个skill,利用一个命令,你就可以安装这个skill,不论你使用的是Codex还是Claude Code甚至是像我使用的冷门Pi Agent,都是可以安装的。
npx skills add Sallyn0225/sallyn-skill --skill translate-srt输入这串命令之后,选择你要给你的哪些Agent安装,据个人情况而定。

然后一直按enter就行(默认给你安装到项目级别)
让Agent使用skill进行翻译
然后进入你的agent,打好对应的skill和刚才得到的字幕文件,回答源语言、目标语言、相关热词,然后让他自己去做就可以了。

警告
设计这个skill的时候,我让主代理派发多个子代理去联合搜集信息,然后再汇报给主代理。然后主代理完成了对原SRT文件的处理之后又会派发多个子代理去进行翻译的任务(如果字幕过长的话)最后主代理合并,然后派发一个审查子代理去审查翻译质量并且进行修复。在这个过程中可能会消耗掉不少的token,需要注意。
有的朋友可能会说,为什么不直接接大模型API进行翻译就行了,还一定要让agent甚至是多个agent来干这活?因为本身我们拿到的SRT就是STT得来的,中间可能有很多转录错误。举个例子,比如把绿龙的magixx听成magic,把NAVI听成navy,把claude听成cloud……加上上下文的信息不够,模型不一定知道这些东西,特别是一些知识库不够丰富的模型。因此,首先需要搜索子代理去发散性的参考原字幕去搜索相关信息然后汇总给主代理,主代理派发翻译代理的时候再告诉它这些信息,优化整体的翻译方向。最后再由上下文干净的审查代理参考原字幕、搜集到的信息对翻译的字幕进行审核和修改。
这个方向是对的,但是我对token的使用效率还不是很高,所以目前颇有些“力大砖飞”的味道在。
这个skill还有些不足
虽然通过发散搜索相关信息可以在翻译上提高准确率,但是翻译的“雅”一直是一个比较让我头痛的事情。有的时候烤肉man不只是单单需要翻译,某些时候外语语境里有特定的梗需要烤肉man进行注释而AI翻译未必能够知道。另外当前搜索到的信息也只是在上下文里交给了主代理并没有写成research文件硬化下来也是个问题。
得到熟肉,修改时轴
基本上打开全自动权限之后,Agent就会一直干到得到最终的 _{lang}_{fix}.srt 字幕文件。这个时候我们可以导进Aegisub或者Arctime这样的字幕编辑软件再好好对一下时轴和翻译质量。经过这个skill的优化之后我感觉我需要修改翻译的次数明显下降了,至于时轴……Scribe V2模型本身的问题,没有办法在后处理上面进行优化了。
还有什么不足
其实上面已经说的差不多了,如果省流一下的话,就是:
- Scribe V2模型本身在时轴上的问题无法解决,分句、换行奇怪但是可以用skill来修复。
- skill的token效率不高,一个一小时的节目可能就要花掉7M左右的token,但是包括了缓存命中。
- 翻译的时候缺少对具体外语语境中梗的识别。
第一点是模型问题,确实是我没有办法解决的;第二点有的朋友提出可以在本地建立RAG知识库的形式,可以省去使用websearch发散性搜索的一些token,是一个优化方向但是有些强时效性的东西可能没有办法进行及时更新;第三点的话就是对skill的优化了。
写在最后
首先,这是一个2api+注册机的项目,也就是说,只要官方想或者他们改动了接口,那么这个项目可能就废了,所以,能用的时候就顺手用用吧,我也不知道说不定哪一天漏洞就被堵上了。
另外,我始终认为不经过人工校核的科技肉能够比过经过精校的人工肉——至少现在不行。虽然过去有whisper现在有各种ASR模型,还有很多比我这个东西成熟很多的一整套流程的AI烤肉项目,但是越用越能感觉到当前AI烤肉的局限性。项目的本意是希望不懂外语的人也能通过相关的技术看懂自己想看的视频或者节目,在此基础上再分享准确无误的字幕给其他没有时间去烤肉或者说也一样听不懂外语的其他人看。但若不负责只是一味的把AI转录和翻译出来的东西不加核对地做成视频发上来甚至不做标注,这样的东西反而会误导了其他的人。
奥维德讲过塞浦路斯的雕刻师皮格马利翁,他用象牙刻出一尊少女像,刻得连雅典娜都挑不出哪一刀是多余的;可那终究只是一尊像,要等维纳斯在它唇上落下一吻,它才走下基座,先是有了呼吸,再有了名字。我们的AI烤肉,大概就停在那一步之前了——它已经能听得很准、翻得很顺,差的那一口,从来都不是更多算力能补上的那一种。
另外,如果你对这个脚本或者我的翻译skill有什么好的建议的话,也欢迎在我的github仓库里给我提出意见。