国内团队调用 Whisper API,问题往往不在模型,而在链路上:跨境网络抖动、上传慢、长音频请求超时、单文件大小受限、多个项目共用一把 Key 难以对账。中转与代理就是把这些麻烦收口到一层接入服务。

但中转不是简单“换个地址”。音频是敏感数据,转写又是长请求,选型时要看上传限制、超时、重试、计费和 Key 管理。本文按这几个点拆开讲,并给一份可执行的验证与迁移清单。

说明:OpenAI、Whisper 是其权利人的商标,本文仅用于技术讨论,与相关厂商无隶属或代理关系。接口限制、错误码和计费口径可能调整,以官方文档和站内文档为准。

一、中转到底转了什么

一个语音中转通常做四件事:把请求转发到上游、替换或托管上游 Key、记录用量与日志、在失败时重试或切换通道。对业务侧来说,仍然是向 /v1/audio/transcriptions 发 multipart 请求,只是 base URL 和 Key 换了。

常见形态有三种:

  • 自建反向代理:只解决网络和出口,Key 和数据仍由自己控制,但稳定性靠自建。
  • 聚合网关:统一多家上游,提供额度、日志、限流和备用通道,适合多项目团队。
  • 转售或代充:由第三方账户代发请求,价格和条款差异大,要重点看数据与合规。

三者责任边界不同。自建代理出问题自己排查;聚合网关要看服务商的 SLA 和故障通知;转售则要确认上游条款是否允许这种用法。

二、上传限制:三层都要看

Whisper 接口对单文件有大小限制,官方文档目前写的是 25MB,且没有给出统一的时长上限。实际能传多久取决于编码:

  • 16kHz 单声道 16bit WAV 约每分钟 1.9MB,25MB 大约十几分钟。
  • 32kbps 单声道 MP3 约每分钟 240KB,25MB 可以到一小时以上。
  • 中转站、反向代理、Serverless 平台还可能设更小的请求体上限。

所以排查 413 或上传失败时,要同时看上游限制、网关限制和客户端限制。压缩音频通常比直接切分更省事:语音转写不需要高采样率,16kHz 单声道足够,MP3 或 Opus 能显著减小体积。

三、切分、转写与合并

超过限制的音频要切分。建议按静音点切,避免把一句话切成两半;如果做不到,固定时长切分也可以,但要保留少量重叠。

ffmpeg -i input.wav -ar 16000 -ac 1 -c:a libmp3lame -b:a 32k \
  -f segment -segment_time 600 -reset_timestamps 1 chunk_%03d.mp3

处理流程可以固定为:

  1. 统一转成 16kHz 单声道,减少体积和格式差异。
  2. 按 5 到 10 分钟切分,优先在静音处断开。
  3. 逐片调用转写接口,传入语言提示和简短上下文。
  4. 合并文本,并按分片序号加上时间偏移。
  5. 检查接缝处是否重复或漏句,必要时用重叠片段对齐。

时间戳要注意:每片的段级时间戳都要加上“片序号 × 每片时长”,否则合并后会全部回到开头。若使用词级时间戳,还要处理跨片词语被切断的情况。

四、超时与重试

长音频转写不是瞬时请求。客户端读超时、反向代理空闲超时、网关上游超时,任何一层设得太短都会失败。先把超时按最坏情况设置,再用队列控制并发。

故障 常见表现 处理方式
429 限流 高峰期集中失败 指数退避加随机抖动,降低并发
5xx 或网关错误 间歇性失败 有限次数重试,切换备用通道
读超时 长音频中途断开 加长超时,改为分片提交
413 请求过大 上传即失败 压缩或切分,检查代理上限
401/403 Key 失效或无权限 停止重试,检查 Key 与额度
400 参数错误 格式、语言或字段不支持 修正请求,不要盲目重试

重试只对限流、超时和 5xx 有意义。4xx 参数错误重试只会浪费额度。每次重试都要记录请求 ID,避免同一段音频被重复计费;批量任务建议进队列,失败片进入死信队列人工检查。

五、计费透明度

语音转写常见按音频时长计费,也有按 Token 计费的口径。比对账单时重点看:是否按分钟向上取整、最短计费时长、失败请求是否收费、重试是否重复计费、是否有最低消费。

做法很简单:本地统计提交的音频总分钟数,和账单分钟数对账;抽取一天日志,按请求逐条核对;对失败和重试单独建标签。若差异持续超过几个百分点,就要求服务商给出明细。具体价格和阶梯以价格页为准,价格会调整,不要用旧截图做预算。

六、Key 与数据风险

中转服务能看到你的音频和转写文本。选型时要问清:请求和响应是否落盘、保留多久、是否用于训练、有哪些子处理方、数据存放在哪个区域、删除机制是什么。

工程上至少做几件事:按项目分配独立 Key、设置额度上限、定期轮换、不要把 Key 写进前端、日志里避免记录完整转写文本。涉及客户录音、医疗、金融等敏感内容时,优先选择可签数据处理协议的服务,或改用自托管转写。

七、怎么验证一个中转

  • 用一段已知文本的音频测试,核对转写结果和字错率。
  • 检查返回字段:模型名、语言、时长、分段信息是否合理。
  • 传一个接近上限的文件,确认不会静默截断。
  • 模拟长音频,观察超时设置和失败提示是否清楚。
  • 触发一次限流或错误参数,看错误码是否透明、是否乱收费。
  • 连续几天核对用量与账单,确认统计口径一致。

验证时不要只测短视频。真实业务里的长会议、电话录音和嘈杂环境,才是问题集中的地方。

八、迁移清单

  1. 盘点现有接口、模型、音频格式、平均时长和峰值并发。
  2. 固化一份测试音频和人工校对文本,作为切换前后对比基线。
  3. 确认中转支持的上传上限、超时、并发和重试策略。
  4. 把 base URL、Key 和超时做成配置,避免硬编码。
  5. 补齐分片、合并、时间戳偏移和失败队列。
  6. 做账单对账和用量告警,设置预算上限。
  7. 先切一成流量,观察错误率和 P95,再逐步放量。
  8. 保留旧通道和回滚开关,确认稳定后再下线。

已有 OpenAI 兼容代码的团队,通常只需改配置就能接入;可以从注册页开始,先用小流量验证。

九、常见问题

Whisper API 中转和 VPN、反向代理有什么区别?

VPN 只改网络路径;反向代理转发请求;聚合网关还负责 Key、计费、限流和重试。问题不同,选的层也不同。

25MB 限制是中转站设的吗?

不一定。上游接口本身有单文件限制,中转和代理也可能设更低的上限。要逐层确认,不能只看客户端报错。

长音频应该切多长?

常见做法是 5 到 10 分钟一片,按静音点切分。片太小会增加请求数和费用,片太大容易超时,最终以实测为准。

重试会不会重复计费?

取决于服务商口径。成功返回后重试、超时但上游已处理,都可能产生重复计费。要用请求 ID 去重,并对账确认。

怎么判断中转有没有换模型?

看返回的模型字段、语言和分段结构,用固定测试集比较转写结果。若结果风格突然变化或字段缺失,要求服务商说明。

延伸阅读: