本接口基于 Fish Audio 官方 Model API,用于基于一段音频样本创建一个新的克隆音色。地址为Documentation Index
Fetch the complete documentation index at: https://docs.xhuoapi.ai/llms.txt
Use this file to discover all available pages before exploring further.
POST https://api.xhuoapi.ai/v1/fish/model。
分页检索现有音色请参考 Fish Model Query API;按 _id 查询单个音色详情请参考 Fish Model Get API。
申请流程
要使用 API,需要先到 Fish Model API 对应页面申请对应的服务,进入页面之后,点击「Acquire」按钮。 如果你尚未登录或注册,会自动跳转到登录页面邀请您来注册和登录,登录注册之后会自动返回当前页面。 在首次申请时会有免费额度赠送,可以免费使用该 API。请求体字段
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
title | string | 是 | 音色名称,用于在控制台列表中识别。 |
voices | string | 是 | 音频样本的 HTTP(S) URL(单个字符串,不是数组)。本接口不支持 multipart/二进制上传,请先把音频放到任意可公开访问的对象存储。 |
description | string | 否 | 音色描述。 |
cover_image | string | 否 | 封面图 HTTP(S) URL。 |
visibility | string | 否 | private 或 public,默认 private。public 表示发布到 Fish 公共音色库供他人使用。 |
tags | string[] | 否 | 公共库检索标签,例如 ["male","narration","zh"]。 |
texts | string[] | 否 | 与样本对应的参考文本(用于纠正发音)。 |
enhance_audio_quality | boolean | 否 | 训练前是否对样本做音质增强。 |
generate_sample | boolean | 否 | 训练完成后是否自动生成一段示例音频。 |
字段与上游完全一致,请同时参考 Fish 官方文档。
示例:创建一个私有克隆音色
注意:成功响应直接返回 Fish 平台的 ModelEntity 对象(下例为我们实测过的最小可用音色,删去了部分长字段以便阅读):voices必须是字符串(单个音频 URL),不是数组。传成["..."]上游会拒绝。
_id 即可作为后续 Fish TTS API 中 reference_id 字段的值,用于使用该克隆音色进行语音合成:
样本要求
经验值(与上游一致,可参考 Fish 官方文档):- 时长建议 30 秒以上,5 分钟以内效果最佳;超过 10 分钟边际收益不大。
- 采样率 16 kHz 及以上,单声道或立体声均可。
- 内容尽量干净:无背景音乐、回声、明显环境噪声;同一说话人。
- 格式建议
mp3/wav。
enhance_audio_quality: true 让上游先做音质增强。
计费说明
仅本接口POST /fish/model 计费——按「创建一次音色」结算。后续的查询接口(Fish Model Query、Fish Model Get)均不计费。
错误处理
400 token_mismatched:请求参数缺失或不合法(最常见是voices不是 URL,或传成了数组)。401 invalid_token:鉴权 token 不存在或无效。429 too_many_requests:触发账号速率限制。500 api_error:服务器内部错误。
结论
调用本接口只需要准备一段可公开访问的样本音频 URL,把它放到voices 字段即可拿到 _id,再喂给 /fish/tts 的 reference_id 就完成了端到端的「克隆 → 合成」。常见坑点是 voices 必须是字符串、不能是数组。
