一个简单的转录测试能告诉你什么,又不能告诉你什么
Synthorai 现在支持音频转录了,一个 endpoint 背后接了两个系列共 13 个模型。
这一个 endpoint 隐藏了大量工作,因为这些模型原生接口几乎没有共同点。whisper-1 接收 multipart 文件上传,返回 {text}。gpt-4o-transcribe 用同样的上传方式,但额外返回 token 用量。Gemini 根本不是一个转录 API:你得把音频 base64 编码塞进一个 JSON generateContent 请求,再从 candidates[0].content.parts[].text 里把转录文本挖出来。字节跳动的 seed-asr 走的是 BytePlus AUC 协议,而 Google 的 chirp 系列是用 OAuth 访问的 Cloud Speech-to-Text 识别器。
不同的 endpoint、不同的鉴权、不同的响应结构,每接一个就多一次集成。通过网关,这些都变成一次 OpenAI 兼容的调用:把 gpt-4o-mini-transcribe 换成 gemini-2.5-flash-lite 或 seed-asr-bigmodel,代码里别的什么都不用改。
这个调用就是 OpenAI 兼容的转录 endpoint,所以如果你已经在用 Whisper,可以直接替换:
curl https://synthorai.io/v1/audio/transcriptions \
-H "Authorization: Bearer $SYNTHORAI_API_KEY" \
-F file=@meeting.mp3 \
-F model=gemini-2.5-flash-lite
from openai import OpenAI
client = OpenAI(base_url="https://synthorai.io/v1", api_key="sk-syn-...")
with open("meeting.mp3", "rb") as f:
result = client.audio.transcriptions.create(model="gemini-2.5-flash-lite", file=f)
print(result.text)
转录文本在 text 里返回,计费成本在 x-total-cost-usd 响应头里。
我们用同一个简单测试跑了全部 13 个模型,下面所有数字都取决于这个测试到底是什么。
这个测试是什么,又不是什么
我们用一段不含专有名词的日常文本(一个早晨、天气、去趟市场),在全球使用人数最多的五种语言里各用一个标准 TTS 嗓音生成语音,然后把每段音频跑过全部 13 个模型。每段音频大约 12 到 15 秒,约 40 个词的正常语速、没有长停顿,编码为 16 kHz 单声道 16-bit PCM WAV(256 kbps,每分钟约 2 MB)。文本是 ground truth,时长是精确的。
这是一个刻意设计得很简单的场景:干净、有脚本、单说话人的音频,没有口音、噪音或行话。所以它适合衡量那些跟音频难度无关的指标。它测的是成本、延迟、模型到底能不能接受某种语言,以及能不能 streaming,这些都是稳定的事实。
它不是一个质量基准。真实录音里有口音、背景噪音、领域词汇、说话人重叠,还有长达一小时的时长,这些会把这些模型拉开干净语音永远拉不开的差距,而这里的任何数据都预测不了那一点。把准确率数字当成一次底线检查,而不是排名;把成本、覆盖语言和 streaming 的结果当成你真正能依赖的基准。
两种模型类型,三种请求模式
这十三个模型分为两类:
- 原生多模态模型(六个,Google 的 Gemini 家族:
gemini-2.5-flash-lite、gemini-3.1-flash-lite-preview、gemini-2.5-flash、gemini-3-flash-preview、gemini-3.5-flash、gemini-2.5-pro)。通用的音频加文本模型,转录只是其多模态能力的副产品。 - 专用 ASR 模型(七个:OpenAI 的
whisper-1、gpt-4o-transcribe、gpt-4o-mini-transcribe;字节跳动的seed-asr-bigmodel;阿里巴巴的qwen3-asr-flash;Google 的chirp-2和chirp-3)。专门为语音打造。
发送音频有三种方式:
- 文件输入,批量输出:上传完整录音,一次响应返回全部转录文本。所有模型都支持。
- 文件输入,流式文本输出:同样上传文件,但转录文本边生成边通过 SSE 流式返回。部分模型支持,其余只能批量返回。
- 音频流输入,文本流输出:对实时麦克风或通话做实时识别。仍在开发中,尚未上线,所以下文只涉及前两种模式。
转录如何计费
计费方式有两种。按音频分钟计费(whisper-1、seed-asr、qwen3-asr-flash 以及 Chirp 系列):按录音的实际时长收费,无论里面是什么内容。按 token 计费(gpt-4o 和 Gemini 系列):音频按固定费率 tokenize,你支付这些输入 token 加上转录输出 token 的费用,所以静音比密集语音便宜。
按 token 计费有个坑:列出的输入费率是针对文本的,音频的实际费率更高(gpt-4o-mini-transcribe 标注输入 $1.25/M,但音频按 $3/M 计费)。用文本费率去估算就会低估。网关会在 x-total-cost-usd 响应头里返回真实费用,直接读它,别去价目表上猜。
成本
成本是测试里能干净测出来的部分,差异也最大。下面是按计费 header 算出的每分钟成本:
| 模型 | 类型 | 每分钟成本 | 延迟 | 流式 |
|---|---|---|---|---|
gemini-2.5-flash-lite | multimodal | $0.0006 | ≈4s | chunks |
gemini-3.1-flash-lite-preview | multimodal | $0.0016 | ≈3s | chunks |
seed-asr-bigmodel | dedicated | $0.0020 | ≈10s | no |
qwen3-asr-flash | dedicated | $0.0021 | ≈3s | no |
gemini-2.5-flash | multimodal | $0.0026 | ≈2s | chunks |
gpt-4o-mini-transcribe | dedicated | $0.0031 | ≈3s | token-by-token |
gemini-3-flash-preview | multimodal | $0.0035 | ≈4s | chunks |
whisper-1 | dedicated | $0.0060 | ≈4s | no |
gpt-4o-transcribe | dedicated | $0.0062 | ≈2s | token-by-token |
gemini-2.5-pro | multimodal | $0.0082 | ≈5s | chunks |
chirp-2 | dedicated | $0.0164 | ≈3s | no |
chirp-3 | dedicated | $0.0164 | ≈4s | no |
gemini-3.5-flash | multimodal | $0.0178 | ≈5s | chunks |
价格区间大约相差 30 倍:最便宜的 gemini-2.5-flash-lite 每分钟 $0.0006,最贵的 gemini-3.5-flash 每分钟 $0.0178。有两点值得注意,都跟价格有关,跟质量无关。最便宜的单个模型是 Gemini flash-lite,比最便宜的专用 ASR 还便宜三倍。而且在 Gemini 系列内部,价格和这次测试的准确率没有任何关系,所以更大、更贵的模型不会自动成为更稳妥的选择。这反而说明,在为大模型付费之前,应该先拿你自己的音频去测一测便宜的那个。
这些数字在你自己的文件上会怎么变,取决于计费方式。按分钟计费的模型(whisper-1、seed-asr、qwen3-asr-flash、两个 Chirp)只按时长计费,所以费率是可以直接套用的:十分钟音频就是每分钟费率的十倍,跟格式和内容无关。
按 token 计费的模型(gpt-4o 和 Gemini 那几行)的输入成本随时长伸缩,而不是随文件大小,因为提供方会在 tokenize 之前先对音频重采样。同样内容下,一个 320 kbps 的大体积 MP3 和我们那个精简的 16 kHz WAV,tokenize 出来的成本差不多,所以压缩文件省的是存储,不是转写费用。真正影响 token 账单的是实际说了多少话:我们的片段语速正常、没有静音段,所以比这更密集或更安静的音频,在输出 token 上会多花或少花一点。每种情况下,x-total-cost-usd header 都是最终的准绳。
准确率与语种覆盖
英语、西班牙语、法语这三种语言,只要模型支持,基本都是 0% 错误率。这是底线,谁都能过。到了普通话和印地语,这个本来很简单的测试才开始露出破绽。但这只能说明你该往哪个方向加测,不能当成最终结论:
| 模型 | 普通话(CER) | 印地语(WER) | 覆盖语种 |
|---|---|---|---|
gemini-2.5-flash-lite | 0% | 13% | 五种全覆盖 |
gemini-3.1-flash-lite-preview | 0% | 15% | 五种全覆盖 |
seed-asr-bigmodel | 0% | 失败 | 仅英语 + 中文 |
qwen3-asr-flash | 0% | 15% | 五种全覆盖 |
gemini-2.5-flash | 0% | 15% | 五种全覆盖 |
gpt-4o-mini-transcribe | 0% | 4% | 五种全覆盖 |
gemini-3-flash-preview | 16% | 7% | 五种全覆盖 |
whisper-1 | 0% | 22% | 五种全覆盖 |
gpt-4o-transcribe | 0% | 13% | 五种全覆盖 |
gemini-2.5-pro | 0% | 15% | 五种全覆盖 |
chirp-2 | 16% | 15% | 五种全覆盖 |
chirp-3 | 2% | 15% | 五种全覆盖 |
gemini-3.5-flash | 0% | 15% | 五种全覆盖 |
这里真正的硬指标是覆盖范围,而不是准确率。seed-asr 对印地语、西班牙语、法语返回的转录结果毫无用处:它是个只支持英语和中文的模型,所以只有当你的音频是这两种语言之一时才能选它。其余模型五种语言都能处理。
印地语的成绩参差,加上普通话上的几次失手(chirp-2、一个 Gemini),说明这些模型在你那些较难的语言上要先测过再信,而不是说哪个就一定比另一个强。这些绝对数值被合成语音和评分方式抬高了,每跑一次都会变。老实说,在主流语言的清晰语音上,准确率拉不开这些模型的差距,所以这个测试也没法据此告诉你该选谁。
流式输出
模型能不能流式返回转录结果,是个能力问题,跟质量无关,而这一项把整个阵容分成了两派。按分钟计费的那批模型(whisper-1、seed-asr、qwen3-asr-flash,以及两个 Chirp)只支持批处理;你要让它们流式输出,网关会返回 400。gpt-4o 系列则逐 token 流式返回:gpt-4o-transcribe 大约一秒就能给出开头几个词,然后逐步补全,这正是实时感 UI 需要的效果。Gemini 系列严格说也算流式,但是分三到六个大块返回,第一块到达的时间差不多就是整段转录完成的时候,所以基本没什么意义。费用跟批处理一样。要开启流式,加上 stream=true:
curl -N https://synthorai.io/v1/audio/transcriptions \
-H "Authorization: Bearer $SYNTHORAI_API_KEY" \
-F file=@meeting.mp3 -F model=gpt-4o-transcribe -F stream=true
# data: {"type":"transcript.text.delta","delta":"When"}
# data: {"type":"transcript.text.delta","delta":" you"} ...
缓存重复音频
缓存又一次把两种计费方式分开了。按分钟计费的模型没法缓存:我们把同一段音频给 whisper-1 发了五次,每次都付一模一样的 $0.015478,因为账单只按时长算。按 token 计费的 Gemini 系列则可以。反复发同一个文件,Gemini 的隐式缓存会复用音频 token:一段 155 秒的音频发五次,gemini-2.5-flash 在其中两次重复时从 $0.0054 降到 $0.0026,省了约 51%,gemini-2.5-pro 降了约 39%。
有两点让它不是稳赚。一是它属于尽力而为,有些重复命中缓存,有些还是按全价付费;二是音频长度得过 Gemini 的 token 门槛,大概一分钟以上,而本测试里别处的那些短音频根本达不到。gpt-4o 系列没有标出缓存费率,表现出来的也只是每次跑动间的正常波动。所以如果你的业务会反复转录同样的文件,缓存在按 token 计费的模型上是实打实的折扣,在按分钟计费的模型上则毫无作用。
先看什么,自己测什么
这个测试没法告诉你哪个模型在你的录音上最准。但它能告诉你在跑自己的评测之前该过滤掉什么:
- **语言。**确认模型支持你需要的每一种语言。
seed-asr只支持英文和中文;其余十二个模型都能处理我们试过的全部五种语言。这是硬性门槛,不是偏好问题。 - **流式。**如果你要实时转写,只有
gpt-4o系列模型能逐 token 流式输出;按分钟计费的模型只支持批量处理,Gemini 的流式粒度也很粗。 - **成本。**差距大约 30 倍。
gemini-2.5-flash-lite最便宜,而且依然支持多语言;Chirp 系列和最大的 Gemini 模型最贵。同一系列里更大的模型在简单片段上并没有体现出它的溢价,所以不要没核实就默认自己需要它。如果你经常重复转写同样的文件,按 token 计费的 Gemini 模型还能像上面说的那样缓存音频。
筛掉一批后,剩下的问题——每个模型在你自己的音频上(带着口音、噪声和专有词汇)到底有多准——只能靠你自己回答。任何干净语音的基准测试都替代不了把幸存者放到真实录音上跑一遍。
结论
在主流语言的干净朗读语音上,十三个模型的准确率大致相当。这正是这个测试给出的最有用信息:准确率不是你做选择的依据。它真正能确定、也真正有差异的,是基线:成本相差约 30 倍,有一个模型只支持两种语言,还有几个不支持流式。用这些来缩小范围,而不是用来宣布赢家,然后把剩下的两三个模型放到你自己的音频上跑。最后这一步,没有哪个简单测试能替你完成。
来源
- OpenAI: Speech to text guide
- OpenAI: API pricing
- Google Cloud: Chirp speech models
- BytePlus: Seed-ASR (ByteDance) overview
成本与延迟数据于 2026-06-25 在 Synthorai 上测得,覆盖十三个模型和五种语言(英语、普通话、印地语、西班牙语、法语),通过 x-total-cost-usd header 和 SSE 计时获取。音频由文本转语音生成,刻意做得简单,所以这些准确率数字只是一个下限检查,而非质量基准;带口音和噪声的真实语音会把这些模型区分得更明显。延迟每次运行都会有波动。报价为该平台截至该日期的费率。在依赖这些数字之前,请先核实当前定价。