Laravel框架中使用ChatGPT语音转文本API如何计算消耗Token
计算Whisper API音频翻译的Token消耗
Whisper API(包括audio/translations接口)的响应默认不会返回Token使用量,要统计每次调用的Token消耗,可通过以下方式实现:
核心逻辑
Whisper的Token消耗基于翻译输出的文本内容,遵循OpenAI GPT系列模型的Token计数规则。你需要先获取翻译后的文本,再用官方Token工具计算其Token数量。
具体实现步骤
1. 提取翻译结果文本
从接口响应中拿到翻译后的文本内容,对应返回数据里的text字段:
$data = json_decode($response->getBody()->getContents(), true); $translatedText = $data['text'];
2. 使用OpenAI Tokenizer计算Token数
借助OpenAI官方的Token计算库(PHP环境可使用openai-php/tiktoken)来统计文本的Token数量:
- 首先安装依赖:
composer require openai-php/tiktoken
- 在代码中集成计算逻辑:
use OpenAI\Tokenizer\Tokenizer; // ... 你的speechToText函数代码 ... $data = json_decode($response->getBody()->getContents(), true); // 初始化Tokenizer,使用与Whisper匹配的编码规则(gpt-3.5-turbo的编码兼容) $tokenizer = Tokenizer::create('gpt-3.5-turbo'); $tokenCount = $tokenizer->count($data['text']); // 将Token数添加到返回结果中 $data['token_consumed'] = $tokenCount; return $data;
补充说明
- Whisper API的计费方式是按音频时长(whisper-1模型为$0.006/分钟),而非Token数量,但上述方法可准确统计翻译输出对应的Token消耗,用于内部统计或其他需求。
- 若需批量核对,也可登录OpenAI后台的使用面板查看整体Token消耗,但无法获取单条调用的明细。
内容的提问来源于stack exchange,提问作者Kowsalya A
相关产品推荐
相关产品推荐

