API 文档音色管理
声音克隆
上传参考音频并创建新的个人音色。
声音克隆
POST /api/open/v1/voices
Authorization: Bearer YOUR_API_KEY
Content-Type: multipart/form-data完整地址:
https://fishaudio.org/api/open/v1/voices创建音色需要上传参考音频。Open API 当前固定使用 FishAudio 创建流程;请求中的 provider 字段会被忽略,不需要传。
请求字段
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
name | string | 是 | 音色名称 |
audioFiles | file[] | 是 | 参考音频文件,可传多个 |
description | string | 否 | 音色描述 |
referenceText | string | 否 | 参考音频对应文本 |
visibility | string | 否 | private 或 public,默认 private |
languages | string | 否 | JSON 字符串数组,例如 '["zh","en"]' |
支持的文件扩展名:aac、flac、m4a、mp3、mp4、mpeg、oga、ogg、opus、wav、webm。单个文件最大 10MB。
不要手动设置 multipart 请求的 boundary。使用 curl -F、浏览器 FormData 或 SDK 时,让客户端自动生成 Content-Type。
curl 示例
curl -X POST "https://fishaudio.org/api/open/v1/voices" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "name=我的克隆音色" \
-F "description=用于中文旁白" \
-F "visibility=private" \
-F 'languages=["zh"]' \
-F "audioFiles=@/path/to/sample-1.mp3;type=audio/mpeg" \
-F "audioFiles=@/path/to/sample-2.wav;type=audio/wav"响应
{
"voiceId": "voice_abc123",
"title": "我的克隆音色",
"description": "用于中文旁白",
"createdAt": "2026-07-09T00:00:00.000Z"
}保存返回的 voiceId,后续生成语音时直接传入 TTS 请求。
错误行为
| 状态码 | 场景 |
|---|---|
400 | 缺少必填字段、文件格式不支持或文件过大 |
401 | API 密钥缺失或无效 |
403 | 当前账户无权创建音色 |
429 | 创建音色请求过于频繁 |
500 | 音色创建失败或服务端处理失败 |
如果创建失败,响应中会带 requestId。排查时请保留这个值。
计费与积分
创建音色会写入 API 用量记录,具体额度和限制以当前账户开通的 Open API 权益为准。真正的 TTS 生成扣费发生在使用 voiceId 创建语音音频时。