OpenAI 发布 gpt-transcribe 和 gpt-live-transcribe 语音转录模型:真实录音词错误率下降一半,价格便宜 25%
- 转一场有口音、有专业名词、有人插话的真实会议,名字和数字错一片,OpenAI 这次在 API 里上的两个新模型,主要就冲这件事去的
- gpt-transcribe 管已经录完的文件,gpt-live-transcribe 管正在说的话;文档把这两个定成了新集成的推荐起点,老模型改成有特殊需求才用
- 真实世界录音基准上,gpt-transcribe 词错误率 8.98%,同一项上 whisper-1 是 15.21%
- 每分钟 $0.0045,比 whisper-1 的 $0.006 便宜 25%,准确率和价格这次往同一个方向走了
- 核心机制:发请求时可以附上一段场景描述、一张关键词表、一组预期语言,模型照着这些去听
- 最硬的一处证据是那组对照实验:加上背景信息之后,三个老模型一个涨 0.2 个点、两个反而掉了,这个能力得在训练里学会,光加参数加不出来
- 但词级时间戳、srt/vtt 字幕、说话人分离、翻成英文,这四件事仍然得回去找老模型
- 还有一处只在演示视频里说了:两个新模型支持 57 种语言,而文档里写着 Whisper 支持 98 种,语言覆盖是往回退的
这是什么、谁发的、解决谁的问题
OpenAI 以 API 的形式发布了两个最新的语音转录模型,gpt-transcribe 和 gpt-live-transcribe,分别面向已经录好的音频文件和正在发生的实时音频流。
发布当天文档、定价、调用端点就全齐了,不是预告也不是候补名单。官方开发者账号随后发推公布,附了六张跑分图和一段演示视频。
两个模型各管一头,各自都有一个要接班的前任。
「接班」这个词得说准一点。老模型一个都没被砍掉,文档的措辞是:新的集成从这两个新模型开始,而 gpt-4o-transcribe、gpt-4o-mini-transcribe、gpt-realtime-whisper 这三个「不是新转录集成的推荐起点」。
注意这句点名的三个里没有 whisper-1。它的处境更微妙:通用的文件转录这条路上,文档改推 gpt-transcribe 了;但另有三件事,文档到今天还在明确推荐 whisper-1 去做。哪三件,本文第七节有一张对照表。
「边处理边出字」和「实时音频」是两件事
这里有个容易混的地方,官方文档专门开了一段讲,而且它直接关系到你要付多少钱。
gpt-transcribe 也能一边处理一边往外吐字。但它吐的是一个已经录完的文件的转写进度,文件早就完整躺在服务器上了,只是结果分批给你,好让用户不用盯着转圈等。gpt-live-transcribe 面对的是还没说完的话,声音正一点一点到达。
判断标准只有一条:音频还在不在产生。还在产生,就得走实时那条路,开 WebSocket 或者 WebRTC 连接;已经录完了,哪怕你想要一个流式的进度效果,也用不着实时模型。
这一条值钱在价格上,两个模型每分钟差 3.8 倍。把已经录好的音频错送进实时通道,钱是白花的。
为什么这次值得看
语音转文字这件事,过去三年大家的体感是「差不多够用了」。可一旦音频不干净,它离能用就还差一截:人名转成谐音字,订单号少一位,行业缩写被拆成拼音。稿子拿到手,你还是得对着录音重听一遍才敢发出去。
这次发布最有意思的地方在于,它把「你可以提前告诉模型这段录音是关于什么的」做成了模型本身的能力。同一组对照实验还顺手证明了一件事:这个能力老模型学不会,你把提示喂给它也是白喂。
先看最硬的一组数字:错误率砍掉一半还多
把机器转出来的稿子和正确稿子逐词比对,每 100 个词里有多少个是错的,听错的、漏掉的、凭空多出来的都算。像默写完一段话老师数你错了几个字,只不过错字、漏字、多写的字一起数。
OpenAI 放了六张图,两组模型、三个基准。先看文件转录这一组。图上标的指标是 WER,词错误率,越低越好。
40.37% 是什么概念?大约每说五个词错两个。这份稿子拿到手基本得重听一遍才敢用。19.27% 也谈不上完美,但每五个词错一个,至少能当草稿改,这是「重做」和「改改」的区别。
8.98% 大约是每 11 个词错 1 个,whisper-1 的 15.21% 是每 6 到 7 个词错 1 个。两个都还没到「不用人校对」的程度,但校对这件活的性质变了:从对着录音重听一遍,变成扫一眼改几处。
官方推文只拿 whisper-1 来对比,但图上一共画了四个模型。把它们排在一起,会看到一件推文里读不出来的事:gpt-4o-transcribe 在真实世界录音上是 22.21%,比它本该超越的 whisper-1(15.21%)还差。
这说明「OpenAI 的转录模型一代比一代强」这个直觉不成立,至少在真实录音这一项上,中间那一代是退步的。这次的提升是真的,但它不保证下一次也是。
实时那一组,差距要小得多
Common Voice 上,gpt-live-transcribe 19.70% 对 gpt-realtime-whisper 20.33%,差 0.63 个百分点。真实世界录音上是 9.60% 对 11.65%,差 2.05 个百分点。
比起文件转录那边动辄腰斩的幅度,实时这边的提升要克制得多。这也合理:实时转录的前任本来就没有 whisper-1 那么老的底子,起点高,能榨的空间就小。
真正的新东西:你可以先告诉它这段录音是关于什么的
以前的转录模型是蒙着眼睛听:不管你送进去什么音频,它都当第一次听,不知道这是客服电话还是医生问诊。你说「把这个订单号记一下,是 AC-42」,它听得见声音,却不知道这串音节是个订单号,也不知道你们公司的订单号长什么样,只能按读音硬猜一个写法(示意)。
新模型接三种上下文,都在发请求的时候一起送进去。
prompt 是一段自由文本,描述这段录音是什么场景。官方文档给的例子是「一通关于高级套餐和账号 AC-42 的客服电话」。文档特意提醒了一句:只写跟音频有关的背景,别在里面重复交代转录任务本身。
keywords 是一个词条列表,写你预期会听到的字面词,产品名、药名、缩写。这里有个容易踩的坑,官方把话说得很明白:
关键词是提示,不是必须出现的输出。只有音频里确实说了这个词,转录稿里才应该有它。
OpenAI 转录指南
所以你不能靠塞关键词把某个词「塞进」稿子里。你列了「阿司匹林」,但医生这段话里压根没提,它就不该出现。文档还建议你实测一下:加了关键词到底是提高了准确率,还是让没说过的词开始往外冒。
languages 是预期的语言列表。注意是复数,这个字段专门为「一段录音里混着好几种语言」设计的,官方文档里给的例子直接就是 ["en", "fr"]。它替代了老模型那个单数的 language 字段,而且两个不能一起发。
一个人在一段话、甚至一句话里混着说几种语言。说着中文突然蹦一句英文那种。这是转录模型最容易崩的场景之一,单语言模型会硬把外语按母语音节猜写。
还有第四种上下文,不用你传:gpt-transcribe 在实时会话里干活时,会自动把前面已经转写出来的那几轮接着当上下文往下听,你不用手动把上一轮的稿子再喂一遍。
演示视频里,多语言这一项被演得很直观
官方推文带了段两分多钟的视频,两个模型各演一段。
前半段是实时演示:一个人对着笔记本说话,浏览器里跑着本地 demo 页面,右上角标着 gpt-live-transcribe,声音一进去字就往外冒。最有说服力的是中间那一下,他说着英文,中途切成西班牙语说了三句,再切回英文,同一个会话里没做任何手动切换,转录稿就跟着换语言往下走。屏幕上留下的那段稿子英西混排,看得清清楚楚。
后半段换到同一个 demo 的 Offline 标签,右上角标 gpt-transcribe,喂进去一个 25 分钟、23.2 MB 的会议录音文件,等一份完整稿子。
视频开头有一句话,六份官方文档里都找不到:两个模型都支持 57 种语言。
这个数字值得和 whisper-1 摆在一起看。文档在讲 whisper-1 的语言支持时写着,Whisper 支持 98 种语言,只是各语言的准确率参差。也就是说,在覆盖的语言种类上,新模型比它要接班的那个少了四十来种。
OpenAI 没有解释这个差距,也没有公布 57 种具体是哪些。如果你的用户说的是小语种,这是迁移前必须自己拿真实音频验一遍的地方,跑分赢了不等于你那门语言还在名单上。
语言码得按格式写,写错整个请求被拒
这是个实操细节,写错了会白白浪费一次调试。文档列了三类可用写法:ISO 639-1 两位码(en、es、fr)、部分 ISO 639-3 三位码(eng、spa、yue 粤语、cmn 普通话),以及中文地区码(zh-cn、zh-tw、zh-hk)。文档用的是「包括」而不是「仅限」,所以这三类是举例,不是完整清单。
不在支持范围里的、或者格式写错的语言码,API 会拒掉,不是静默忽略。
同样的提示喂给老模型,准确率原地不动
上面讲的三件套听起来很合理:多给模型一点背景,它当然该听得更准。那么一个自然的问题是,这需要新模型吗?给老模型也塞一段 prompt,是不是也能涨?
不逐词比对,看的是关键信息有没有听对。同一段音频,词错误率低不代表语义准确率高,错的那几个词如果正好是人名和订单号,字面上只错了两个词,意思却全废了。所以这是个跟 WER 互补、但不能互相换算的指标。
OpenAI 为这件事专门建了个基准叫 Context Aware ASR Benchmark,衡量语义准确率(越高越好),把每个模型都跑了两遍:一遍不给背景信息,一遍给。按推文的说法,这里给的是自由格式的那段场景描述。五个模型的两遍成绩分散画在两张图上,下面这张是本站把它们并到一起重排的。
先说一处缺席:whisper-1 不在这五个里。这篇从标题到价格一直拿它当参照物,唯独这道题它没参加。文档里能查到的相关事实是,whisper-1 的 prompt 有 224 个 token 的长度上限,也不支持 keywords 和复数的 languages 字段。至于它为什么没进这张图,OpenAI 没有说明。
三个老模型,喂的是同样的上下文,结果一个涨 0.2 个点(约等于没动)、两个反而掉了。模型得在训练里学会怎么用这些信息,才谈得上「能听懂上下文」。在 API 上加个字段加不出这个能力,老模型你把提示塞进去,它要么当没看见,要么被带偏。
这也解释了 OpenAI 为什么把它做成两个新模型,而不是给老模型加两个新参数,参数早就能加,能力加不上去。
但这张图还有另一面
全场表现最好的 gpt-transcribe 是 45.2%。这个分数听着离及格还远,但它到底代表什么,外人其实算不出来:这是个 OpenAI 自己出题、自己应考、自己判卷的新基准,数据集没公开,怎么构造的没说,「语义准确率」具体怎么算也没说。题目有多难,外面看不到。
所以这张图只支持一个结论:在这类难题上,新模型比老模型强得多。它撑不起「上下文这个问题解决了」,也撑不起「45.2 分说明一半以上都做错了」,后面这两种读法都是拿一把没有刻度的尺子去量绝对长度。
便宜了,而且是大幅下降
模型发布通常是这个剧本:更强,但更贵,你自己权衡。这次不是。
每分钟
每分钟
从 15.21% 降到 8.98%
gpt-transcribe 每分钟 $0.0045。它要取代的 whisper-1 是 $0.006,中间那代 gpt-4o-transcribe 也是 $0.006。比老的便宜 25%,真实录音上的错误率还砍掉了四成,两边同时往好的方向走,这在模型发布里不常见。
实时那边是另一种情况:gpt-live-transcribe 每分钟 $0.017,和它取代的 gpt-realtime-whisper 一模一样。价格没动,准确率往上走了一点。
| 模型 | 用途 | 每分钟 |
|---|---|---|
gpt-transcribe | 文件转录 | $0.0045 |
gpt-live-transcribe | 实时转录 | $0.017 |
gpt-4o-transcribe | 文件转录 | $0.006 |
gpt-4o-mini-transcribe | 文件转录 | $0.003 |
gpt-4o-transcribe-diarize | 转录 + 分辨说话人 | $0.006 |
whisper-1 | 文件转录 | $0.006 |
gpt-realtime-whisper | 实时转录 | $0.017 |
表里还有个值得算一笔的:gpt-4o-mini-transcribe 每分钟 $0.003,账面上仍然是最便宜的。但它在真实世界录音上的词错误率是 15.46%,比 gpt-transcribe 的 8.98% 高出七成。
这笔账得看你的返工成本。转一小时录音,两者差价是 $0.09,六毛多人民币(按每分钟差 $0.0015、六十分钟算,示意)。如果这一小时的稿子里多出来的错误要人去听一遍改,六毛钱显然不值。如果是海量音频做粗筛、错了也不影响用途,那 mini 依然合理。
还有一处口径要留神:定价页那一列的表头写的是「估算成本」。gpt-transcribe、gpt-live-transcribe 和 whisper-1 是纯按音频分钟数收费,每分钟多少就是多少;gpt-4o-transcribe 和 gpt-4o-mini-transcribe 走的是按 token 计费,$0.006 和 $0.003 只是折算给你看的估算值,实际账单还要看输入输出的 token 量。拿它俩跟新模型比单价,比的不是同一种东西。
实时那个模型,延迟是可以拧的
gpt-live-transcribe 有个 delay 参数,五档。模型多听一会儿再吐字,拿到的上下文更全,错得更少;急着吐字,就得靠猜。
上下文最少 听得最久 →
错得最少
官方表述是:具体延迟多少毫秒会随模型配置变化,别假设某一档就等于某个固定时延,拿你自己的真实音频去测。
值得留意的是,整篇文档里一个具体的毫秒数都没有。gpt-live-transcribe 的核心卖点是「低延迟」,但这个「低」到底是多低,发布材料里没给可验证的数字,只给了五个档位名。
做实时字幕之前,先想清楚这件事
实时转录是一小截一小截往外吐的,不用等你说完整句,每一小截官方叫它一个 delta。麻烦在于,后吐出来的那截会回头改掉前面已经显示的字。
举个例子(示意)。你对着麦克风说「帮我订一张去上海的机票,航班号 CA1501」:
于是屏幕上已经写出来的「差一五零一」五个字,当着用户的面变成了 CA1501。这不是出错,恰恰是模型在自我纠正,但用户看到的就是字自己动了。
难题在这儿:字被改写的那一瞬间,界面该怎么呈现?直接替换,用户会看见文字在跳,正在读的那行突然变了样;把还没定的部分用浅色标出来,用户知道这段还会变,可整页会一直在闪;等这句彻底定了再显示,实时字幕就不实时了。三条路各有代价,得你自己挑一条。
官方把这一条写进了生产清单。它跟模型准不准无关,纯粹是交互设计问题,而且模型再准也不会消失,只要还是边听边出字,就一定有猜了又改的时刻。
同一份清单里还有一条容易漏:模型报「这一句说完了」的通知,到达顺序没有保证。两个人先后说完,通知未必按这个先后到你手里,得靠每条通知带的 item_id 去认领和排序,不能按收到的先后直接往下拼。
它不干什么,这段可能比上面所有跑分都值钱
下面这些限制全部出自 OpenAI 自己的文档。跑分好看不等于能直接换上,先看清楚你现在依赖的功能它还有没有。
| 你需要的 | 新模型能给吗 | 那得用 |
|---|---|---|
| 纯文字稿(已录好的文件) | 能 | gpt-transcribe |
| 纯文字稿(实时音频流) | 能 | gpt-live-transcribe |
| 检测出说的是哪几种语言 | 两个新模型里只有一个能 | gpt-transcribe,文件转录和实时会话里都返回;gpt-live-transcribe 不返回 |
| 词级时间戳 | 不能 | whisper-1 |
| srt / vtt 字幕文件 | 不能 | whisper-1 |
| 分清是谁在说话 | 不能 | gpt-4o-transcribe-diarize |
| 把外语录音直接翻成英文 | 不能 | whisper-1 的翻译端点 |
| 每个词的置信度分数 | gpt-live-transcribe 不给 | 文档没点名替代方案,建议在应用层自己兜底 |
这张表里 whisper-1 出现了三次。通用转录这条路上它让了位,但在时间戳、字幕格式、翻译成英文这三件事上,文档到今天还在推荐它,没有给出替代品。官方的弃用页面上也查不到它的下线时间表,所以「whisper-1 被淘汰了」这个说法没有依据,它只是不再是通用转录的首选。
如果你现在用 whisper-1 只是为了拿一份文字稿,那这次迁移的理由很充分:更准、更便宜。如果你在用它做视频字幕,那暂时哪儿也去不了。
还有几条会直接把请求打回来的硬规矩
文件最大 25 MB,支持 mp3、mp4、mpeg、mpga、m4a、wav、webm 七种格式。超了得自己切,官方特意提醒别从句子中间切,切掉上下文会掉准确率。
keywords 每条必须写在一行里,不能含 <、>、回车、换行。违反一条,整个请求被拒,不是忽略掉那一条继续跑。prompt 超过模型的长度上限同样是整个请求被拒。
复数的 languages 和老的单数 language 不能一起发,前面讲三件套时提过一次,这里再点一下,因为它是迁移老代码时最容易漏掉的一处。
官方推文说 gpt-transcribe 是「为已完成音频文件和批量工作负载优化的」。但官方模型页的端点支持表里,v1/batch(Batch API,那条打折的异步批处理通道)明确标着「不支持」。
两边都是官方口径。我的读法是,这里的「批量」指的是「你有一大堆文件要转」这个场景,不是指走 Batch API 那条便宜通道,但这只是读法,OpenAI 没有解释过。如果你的成本模型指望着 Batch API 那档折扣,先按不支持来算。
官方怎么建议你测
文档里有一整节专门讲怎么测试。这套测法不挑厂商,换成任何一家的语音转文字模型都成立,所以它是这份文档里最能直接拿走的部分。
第一条是别只用干净样本测。要用真实麦克风录、用电话音质录,带上口音、带上背景噪音、带上语码转换和领域术语,再测一遍长会话。测试集里要塞进数字、日期、货币金额、邮箱地址、产品名,这些正是转录模型最容易翻车、而人最容易发现错误的地方。
第二条更值钱:别只盯着词错误率。文档给的例子是,医疗场景就去测药名转得对不对,客服场景就去测订单号转得对不对。
一份词错误率只有 5% 的稿子,如果错的那 5% 全是药名和剂量,这份稿子在医疗场景里是废的。反过来,一份错误率 15% 但错的全是「嗯」「那个」这类口头语的稿子,可能完全能用。平均错误率会把要命的错误和无关紧要的错误混在一起算。
第三条是把三类故障单独统计:空转录(一个字都没出)、截断的转录(说到一半没了)、延迟的转录(迟迟不出)。这三种在词错误率里体现得很不充分,但在真实产品里是最招用户投诉的。
最后,做实时的还要额外定两件事:先定好你能接受的延迟和准确率目标再去调 delay,别边调边改标准;以及每一种目标语言都单独测一遍,不要靠一种语言的成绩推断其他语言。
OpenAI 的新语音转录模型能听懂你先给的背景,老模型给了也白给
OpenAI 上线 gpt-transcribe 和 gpt-live-transcribe:真实录音错误率减半、每分钟还便宜 25%,一页带图讲完。
↓ 一页读完 · 有一张会动的图
OpenAI 在 API 里上了两个语音转文字模型,一个管已经录完的文件,一个管正在说的话。各自都有一个要接班的前任。
→ 录好的文件
gpt-realtime-whisper
→ 正在说的话
→ 录好的文件
gpt-live-transcribe
→ 正在说的话
老模型一个都没下线,OpenAI 只是把它们改成了「有特殊需求才用」。分工的判断标准只有一条:音频还在不在产生。实时那个每分钟 $0.017,是文件那个的 3.8 倍,把录好的音频送错通道就是白花钱。
衡量的指标是词错误率:把机器转出来的稿子和正确稿子逐词比对,每 100 个词里错几个,听错的、漏掉的、凭空多出来的都算,越低越好。
真实世界录音上的词错误率
whisper-1 的成绩
whisper-1 是 $0.006
准确率同时往上走了
8.98% 大约每 11 个词错 1 个,15.21% 是每 6 到 7 个词错 1 个。校对这件活的性质变了:从对着录音重听一遍,变成扫一眼改几处。更准同时更便宜,在模型发布里不常见。两组跑分均为 OpenAI 自测,第三方尚未复现。
同一张图上还有一件推文没提的事:中间那代 gpt-4o-transcribe 在真实录音上是 22.21%,比它本该超越的 whisper-1 还差。「一代比一代强」这个直觉在这条线上不成立。
以前的转录模型是蒙着眼睛听:不知道这是客服电话还是医生问诊,听到一串字母加数字,只能按读音硬猜一个写法。新模型在发请求的时候,可以把三样东西一起带进去。
keywords 只是提示:音频里没说过的词,它不该出现在稿子里,你没法靠塞词把某个词塞进稿子。languages 是复数,专门给一段录音里混着说好几种语言的场景用,中途换语言不用手动切。
那么这需要新模型吗?给老模型也塞一段同样的背景,是不是也能涨?OpenAI 把五个模型各跑了两遍,一遍不给背景,一遍给。
另一面也得说清楚:全场最好也才 45.2%。这是 OpenAI 自己出题、自己应考、自己判卷的新基准,数据集和评分方法都没公开,题目有多难外面看不到。所以这张图只撑得起「新模型比老模型强得多」这一个结论。
跑分好看不等于能直接换上。下面这些限制全部出自 OpenAI 自己的文档。
✔ 正在说的话边说边出字 , gpt-live-transcribe
✔ 一段录音里混着几种语言,中途不用手动切
✔ 告诉你这段说的是哪几种语言(只有 gpt-transcribe 返回)
✘ srt / vtt 字幕文件 , 回去用 whisper-1
✘ 分清是谁在说话 , 用 gpt-4o-transcribe-diarize
✘ 把外语录音直接翻成英文 , 回去用 whisper-1
每 6 到 7 个词
错 1 个
是订单号
蒙着眼睛听:
只能按读音
硬猜一个写法
同项 whisper-1 是 15.21%
比 whisper-1 的 $0.006 低 25%
不也能涨
背景喂给
五个模型
一段背景
- × 每个词第几秒
- × srt / vtt 字幕
- × 分清谁在说话
- × 直接翻成英文
找 whisper-1
