本文介绍 Voice Studio 语音合成的计费方式:定价与计费项、字符数的计算规则、计费文本的取值口径,以及哪些调用会产生用量、如何查看用量。
计费规则
Voice Studio 的语音合成按 输入文本的字符数 后付费计费,输出音频不计费。
定价:1.2 元 / 万字符 ,即单个字符 0.00012 元。不区分音色、模型与接口形态,所有计费项共用这一个单价。
费用按实际字符数折算,不以万字符为单位取整。字符数的算法见下面的【字符计算规则】
计费项
计费项 | 计费规则 |
实时语音合成 | 按输入文本的字符数计费,输出不计费 |
语音合成(非流式) | 按输入文本的字符数计费,输出不计费 |
音色克隆 / 音色设计 | 音色的创建过程不按字符计费;用该音色合成时按上面两项计费 |
所有计费项共用同一套字符计算规则。
字符计算规则
一个 汉字 (包括简体汉字、繁体汉字、日文汉字和韩文汉字)计为 2 个字符 。
其他字符 (如一个英文字母、一个数字、一个标点符号、一个空格、一个日文假名、一个韩文字母、一个 emoji)计为 1 个字符 。
换行、制表符等控制字符 不计入字符数。
使用 SSML 时,SSML 标签本身不计入字符数,仅统计待合成的文本内容。
示例:你好 = 4 个字符;Hello 123 = 9 个字符;你好,世界 = 9 个字符;<speak>你好</speak> = 4 个字符。
粗略估算:纯中文文本的字符数约为字数的 2 倍 ,纯英文文本约等于字符数。
计费文本以文本归一化后为准
计费文本是 实际送入合成引擎的文本 ,而不是你提交的原文。差异来自 文本归一化(TN) —— TN 把数字、日期、金额等书面写法转成口语读法后再合成。TN 默认关闭 ,通过 X-TTS-TN: enable 请求头开启。
TN 关闭 (默认):按你提交的原文计费
TN 开启 :按归一化后的文本计费。口语读法通常比原文长,例如
123(3 个字符)会展开为一百二十三(10 个字符)
如果需要账单可精确预估,可以不开启 TN,自行把文本处理成口语读法后再提交。
哪些情况会产生用量
用量在任务结束时一次性结算,中途的 flush 分段不会重复计量。口径可概括为一句话:文本一旦送入合成引擎就会产生用量,只有平台侧责任导致的失败才免费。
会产生用量 ——正常结束、中途取消、客户端断开连接或超时、连接达到时长上限被服务端收敛。以上均按已送入引擎的文本计量。
不产生用量 ——参数校验失败、音色不存在等在文本送入引擎之前就被拒绝的情况;平台或引擎故障导致的失败。
取消场景需特别注意:取消只会停止后续音频的输出,已送入引擎的部分照常计量。此时 task-finished 中下发的 usage.characters 为 0,但这 不代表本次不计费 。
如何查看用量
实时合成的 task-finished 事件带回本任务的字符数:
"payload": { "usage": { "characters": 42 } }result-generated 的 sentence-end 子事件也带 usage.characters,表示截止当前句的累计值,最终数值 以 task-finished 为准 。按账期的用量与账单明细请在费用中心查看。
并发限制
除按量计费外,实时语音合成还受 并发连接数 限制:同一工作空间同时在线的 WebSocket 连接 默认上限为 5 路 。连接建立即占用一路,关闭即释放; 空闲连接同样占用额度 。
超出上限的新连接会被拒绝(握手返回 429 ,连接升级后表现为关闭码 4429 ),已建立的连接不受影响。需要提升额度请联系平台。
常见问题
为什么字符数比我发的字数多? 汉字按 2 个字符计,纯中文文本约为字数的 2 倍。
同样一段文本,两次算出的字符数不同? 检查是否开启了文本归一化(TN)。开启后按归一化结果计费,数字、日期等会被展开。
SSML 标签会计费吗? 不会,只统计标签内的正文。
中途取消或断线会计费吗? 会,已送入引擎的文本照常计量。
调用失败要付费吗? 文本送入引擎之前被拒绝(参数错误、音色不存在)不计费。