Fish Audio S2.1 Pro 语音合成:83 个语种共用一个模型,语音克隆前 20 个免费,输出 mp3 / wav / pcm / opus。两个计费档是同一个模型 —— 标准档 $0.03、经济档 $0.005,每千 UTF-8 字节。
这个模型按输入文本的 UTF-8 字节数计价,而站内其它语音模型都是按字符。一个拉丁字母是 1 字节,一个汉字是 3 字节,一个 emoji 是 4 字节。也就是说同样一千个字,中文的价钱是英文的三倍。从别的语音模型切过来时,中文用量要按字节重新估,不能沿用字数。
| 文本 | 字节 | fish-s2.1-pro | fish-s2.1-pro-free |
|---|---|---|---|
| 英文 1,000 字符 | 1,000 | $0.030 | $0.005 |
| 中文 1,000 字 | 3,000 | $0.090 | $0.015 |
| 中英各 500 | 2,000 | $0.060 | $0.010 |
失败不扣费。前 20 个克隆音色免费。
$0.03 / 千字节。有人在等这段音频时用它。我们实测 2000 字节约 17 秒。上游按付费档的数据协议处理请求。
$0.005 / 千字节,同一个模型、同样音质。适合验证音色、跑原型、批量处理不急的活儿。三个代价见下。
另外,上游的免费窗口有公布的截止日期,并且已经被推迟过四次。把这个价格当成临时的。
# ─── 合成一段语音 ───────────────────────────────────────
curl -X POST https://api.apimodels.app/v1/audio/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "fish-s2.1-pro",
"text": "Hello from apimodels.",
"format": "mp3"
}'
# { "code": 200, "data": { "taskId": "clxxx", "state": "pending" } }
# ─── 用克隆出来的音色说话 ────────────────────────────────
curl -X POST https://api.apimodels.app/v1/audio/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "fish-s2.1-pro",
"text": "Now I speak in the cloned voice.",
"reference_id": "YOUR_VOICE_ID",
"format": "wav",
"prosody": { "speed": 1.2 }
}'
# ─── 取结果 ─────────────────────────────────────────────
curl "https://api.apimodels.app/v1/audio/generations?task_id=TASK_ID" \
-H "Authorization: Bearer YOUR_API_KEY"
# { "code": 200, "data": { "state": "completed", "resultUrls": ["https://r2.apimodels.app/..."] } }| 字段 | 必填 | 类型 | 说明 |
|---|---|---|---|
| model | 是 | string | fish-s2.1-pro / fish-s2.1-pro-free |
| text | 是 | string | 要合成的文本,单次上限 10 万 UTF-8 字节 |
| reference_id | 否 | string | 音色 id(克隆得到的,或来自 Fish 音色库)。也接受 voice_id 这个写法。 |
| format | 否 | string | mp3(默认)/ wav / pcm / opus |
| prosody | 否 | object | { speed, volume }。speed 取 0.5-2.0。也接受扁平的 speed 字段。 |
| mp3_bitrate | 否 | number | 64 / 128 / 192,仅 mp3 有效 |
| sample_rate | 否 | number | 采样率,如 44100 |
| latency | 否 | string | balanced(默认,首字更快)/ normal(更稳) |
| chunk_length | 否 | number | 100-300,默认 200。小块开口更早,大块长文更省。 |
| callback_url | 否 | string | 任务完成后的回调 URL |
不传 reference_id 时用 Fish 的缺省音色,非英语听起来可能偏平。可以从 Fish 公共音色库里挑一个,把返回的 voice_id 当 reference_id 传:
GET https://api.apimodels.app/v1/audio/voices/fish/library?source=licensed&language=en&q=calm&page=1 Authorization: Bearer YOUR_API_KEY
| 字段 | 必填 | 类型 | 说明 |
|---|---|---|---|
| source | 否 | string | licensed(缺省,Fish 官方授权音色)/ community(平台上全部公开音色) |
| language | 否 | string | 语言代码,如 en / zh / ar / ja |
| q | 否 | string | 按名称搜索 |
| page / page_size | 否 | number | 翻页,每页最多 50 |
每条返回 voice_id、name、languages、preview_url(试听)、licensed、uses。授权音色数量较少(部分语言暂时没有,比如阿拉伯语);社区音色由 Fish 用户上传,其中有模仿真人的,商用前请自行确认权利。也可以克隆自己的音色。
试一试:Playground
按输入文本的 UTF-8 字节数计,不是按字符。拉丁字母 1 字节、汉字 3 字节,所以标准档英文 1000 字符是 $0.03,中文 1000 字是 3000 字节、$0.09。免费档是它的六分之一。语音克隆不收费,失败不扣费。
20 个。超过 20 个在存的音色之后,每多开一个槽位 $1,删掉一个又会把槽位腾出来 —— 收的是「长期占着很多音色」的钱,不是克隆这个动作本身。传十秒以上的干净样本,约 5 到 20 秒拿到音色 id,之后合成时当 reference_id 传进去即可。之后合成出来的语音按字节另外计费。
两档是同一个模型,音质完全相同。免费档便宜六倍但是尽力而为:同样 2000 字节的文本实测 41 秒对 17 秒,没有延迟和可用性承诺,上游可能用免费档请求改进模型,而且免费窗口有公布的截止日期。验证和原型用免费档,有人在等就用标准档。