# 文本转语音计费：输入 token 加音频秒数

> 语音请求可能同时产生输入 token 费与音频输出费。应区分两种费率、估算时长，并核对完整请求，不能把音频每秒价格当作整笔账单。

_发布 2026-09-12 · 更新 2026-09-29 · [KeepRouter Editorial](https://keeprouter.com/editorial-policy#editorial-team) · 5 分钟阅读_

![时长标尺与波形条、播放节点与已测量区间](https://keeprouter.com/editorial/blog/text-to-speech-per-second-billing.png)

_返回音频时长与输入 token 分别计量，两部分费用以所选模型的公开费率计算。_

**先给结论：**KeepRouter 语音请求包含两部分费用：文本输入与生成音频。当前 `gemini-3.1-flash-tts-preview` 路由按输入 token 加音频输出秒数计费。只看每秒价格，会漏掉输入费用。

[模型页](/models/gemini-3.1-flash-tts-preview)与 [API 费用计算器](/tools/api-cost-calculator?model=gemini-3.1-flash-tts-preview)展示当前客户价格。下文数字核对日期为 2026 年 9 月 23 日，说明的是 KeepRouter 计费口径；直接向厂商付费属于另一份价格契约。

## 把两种用量分开

请求发送文本，响应体则是音频文件。对于当前路由，KeepRouter 根据提交的文本估算输入 token，再测量或估算返回音频的时长。二进制响应不会附带普通 Chat Completions 的 usage 对象，因此核对费用时应保留控制台中的请求记录。

长度相同的两段文本，会因语速、标点和音色产生不同长度的音频。因此只看输入长度无法预测整笔账单；反过来，只看音频时长也不包含文本输入费。估算公式为：

```
费用 = 输入 token 数 × 每 token 输入单价
     + 生成音频秒数 × 每秒输出单价
```

核对账单时，应使用该请求实际记录的用量。调用前，输入 token 与音频时长都只是待验证的假设，不是对输出长度的保证。输入 token 的估计值，也不能直接等同于原文的字符数或词数。

## 音频每秒费率从哪里来

Google 的 Gemini 定价页注明，这个 TTS 模型每秒音频对应 25 个音频 token。其标准音频输出价为每百万音频 token $20，换算为 `$20 × 25 / 1,000,000 = $0.0005` 每秒。这个换算只适用于音频输出部分，不会消除独立的文本输入价格。

本次核对时，KeepRouter 公布的客户价是**输入每百万 token $1**，以及**生成音频每秒 $0.0005**。制定预算前应再次查看目录。厂商价格可以解释换算方法，但 KeepRouter 请求应以本站模型页的客户价为准。

原先“20 秒一美分”的简写，只描述**音频输出费用**：`20 × $0.0005 = $0.01`。若同一请求还记录了 1,000 个输入 token，需要另加 `$0.001`，总估算为 **$0.011**。如果仍为 1,000 个输入 token，但输出为 6 秒，则估算为 `$0.001 + $0.003 = $0.004`。这些是给定用量下的算例，不是实测调用，也不保证生成时长。

## 先估算，再核对一笔请求

1. **确定准确模型与文本。** 记录目录中的输入和输出费率，以及预期请求次数。
2. **同时估计输入 token 与输出时长。** 在计算器里填写两项。长旁白与一句简短确认，应使用不同的音频时长假设。
3. **发一笔 `response_format: "wav"` 的样本请求。** 将返回音频与控制台中的请求用量和扣费记录一起核对。
4. **用观察到的用量替换假设。** 先相加文本输入费与音频输出费，再乘预期调用次数；重复生成也应计入工作量。

具有有效数据长度的未压缩 WAV，可以用音频数据字节数除以 byte rate 计算时长。不能直接用整个文件大小来除，因为容器头信息不是音频样本。这是在核对时长，并不能替代计费记录中的输入 token 数。

计算器采用当前客户价，不含充值手续费与税费。它用于预算：账本舍入，以及代理对 token 或时长的估算，都可能让实际记录与手算结果出现小幅差异。

## 格式与测量边界

**WAV。** 有效头信息与可用数据长度能提供最直接的时长测量。损坏的头信息或流式占位长度可能限制精度，因此只有 WAV 扩展名，并不能证明时长一定准确。

**压缩格式。** 当前代理依据响应声明的总字节数与标称码率估算非 WAV 音频时长。可变码率与容器开销可能让该值偏离播放器显示的时长。需要核对计费时长时，优先选择 WAV。

**无法测量的音频。** 代理无法确定时长时，不会编造音频时长用量；但输入费和已配置的按请求费用仍可能适用。当前公开 TTS 模型没有固定的按请求价格。时长缺失应当继续核查，不能据此认为整笔请求免费。

**不合理的估计。** 超过代理合理上限的估计值会被舍弃，不作为音频时长用量；这不表示整个请求必然被拒绝，也不保证没有输入费用。

## 按被采用的语音结果预算，包含重录

语音功能应固定输入文本，测实际音频时长。修正发音可能产生第二次付费生成，两次都要计入最终采用片段的成本。[Gemini 价格文档](https://ai.google.dev/gemini-api/docs/pricing)说明其计量单位，KeepRouter 模型页则确定这条线路的用户费率。不要用同一个每分钟词数估算所有语言，应按目标声音和速度测代表性样本。

## 不要把换算常数套到所有语音模型

其他语音产品可能按字符、token、请求或不同的音频换算方式收费。端点名称相似，并不能确定计费单位。把公式用到另一服务前，先核对准确模型的输入和输出价格；缺失价格应保持未知，而不是按零填写。

[多模态模型 API 说明](/zh/features/multimodal-models)介绍了不同路由的端点。[视频计费指南](/zh/blog/choosing-a-video-model-tier)则说明视频时长价格；该规则本身并不能描述 TTS 请求中的文本输入费用。


## 常见问题

### 每秒价格包含输入费用吗？

不包含。当前 Gemini TTS 路由分别公布文本输入价和音频输出价，应把输入 token 费用与音频秒数费用相加。

### 为什么费用与字符数不成比例？

字符数不是完整计费用量。KeepRouter 会估算输入 token，并测量或估算生成音频时长；音色、标点与语速会影响输出部分。

### 使用 WAV 能在生成前保证准确费用吗？

不能。生成后的有效 WAV 头信息有助于直接测量时长，但仍需加输入费用；损坏或占位长度可能限制测量，最终记录也遵循账本舍入。

### 测不了时长的音频就是免费吗？

不能这样假设。测量失败时不添加时长用量，但输入费与已配置的按请求费仍可能适用，应核查请求记录。

## 参考的一手资料

_本文最近复核 2026-09-29_

1. [Google Cloud text-to-speech pricing (audio token rates and the tokens-per-second note)](https://cloud.google.com/text-to-speech/pricing)
2. [Google Gemini API pricing (speech models and audio token rates)](https://ai.google.dev/gemini-api/docs/pricing)
3. [KeepRouter current Gemini TTS customer prices](https://keeprouter.com/models/gemini-3.1-flash-tts-preview)

## 继续阅读

- [多模态模型 API](https://keeprouter.com/zh/features/multimodal-models.md)
- [异步视频生成 API：任务 ID、轮询与按秒计费](https://keeprouter.com/zh/blog/async-video-generation-api.md)
- [models](https://keeprouter.com/models.md)
- [errors](https://keeprouter.com/docs/errors.md)
- [gemini 3.1 flash tts preview](https://keeprouter.com/models/gemini-3.1-flash-tts-preview.md)
- [api cost calculator](https://keeprouter.com/tools/api-cost-calculator)

## 查看这个型号的价格与 API

查看本文型号的当前用户费率、支持端点与接入示例。

[查看型号与价格](https://keeprouter.com/models/gemini-3.1-flash-tts-preview)

[创建 Key，测试免费模型](https://keeprouter.com/login?returnTo=%2Fconsole%2Fkeys%3Fmodel%3Dfree)

免费测试使用 free 模型；其他付费型号需要足够预付额度。

[全部文章](https://keeprouter.com/zh/blog.md) · [模型与价格](https://keeprouter.com/models.md)
