Files
sionrui/docs/cosyvoice-copy.md

130 lines
8.2 KiB
Markdown
Raw Normal View History

2025-11-19 21:57:16 +08:00
# 阿里云CosyVoice声音复刻API说明文档
## 一、接口概述
CosyVoice声音复刻API依托大模型技术仅需10~20秒清晰音频即可快速生成高度拟真的定制音色`voice_id`),支持`cosyvoice-v1``cosyvoice-v2`模型v2效果更优。复刻服务免费使用复刻音色进行语音合成时按字符计费。
核心功能:音色的创建、查询、更新、删除,生成的`voice_id`可直接用于CosyVoice语音合成接口。
## 二、前提条件
1. 开通CosyVoice服务获取API Key推荐配置到环境变量避免硬编码
2. 安装最新版DashScope SDKJava/Python其他语言需调用RESTful API。
3. 准备公网可访问的音频URL推荐上传至阿里云OSS支持WAV/MP3/M4A格式
## 三、核心接口详情支持Java/Python SDK + RESTful API
### 1. 创建音色生成voice_id
#### 功能描述
上传10~20秒音频生成专属`voice_id`,用于后续语音合成。
#### 请求参数
| 参数名 | 类型 | 是否必填 | 说明 |
|--------------|--------|----------|----------------------------------------------------------------------|
| target_model | string | 是 | 复刻模型,支持`cosyvoice-v1`/`cosyvoice-v2` |
| prefix | string | 是 | 音色自定义前缀,仅允许数字和小写字母,长度<10字符 |
| url | string | 是 | 音频文件公网URL需满足格式要求采样率≥16kHz、文件≤10MB、含≥5秒连续语音 |
#### 响应参数
| 参数名 | 类型 | 说明 |
|----------|--------|--------------------------|
| voice_id | string | 定制音色ID用于语音合成 |
| request_id| string | 任务唯一标识,用于排查问题 |
#### 示例代码Python SDK
```python
import os
import dashscope
from dashscope.audio.tts_v2 import VoiceEnrollmentService
dashscope.api_key = os.getenv('DASHSCOPE_API_KEY')
service = VoiceEnrollmentService()
# 调用创建接口
voice_id = service.create_voice(target_model="cosyvoice-v2", prefix="test", url="音频公网URL")
print(f"生成的voice_id: {voice_id}")
```
### 2. 查询所有音色
#### 功能描述
查询账号下已创建的所有音色,支持按前缀筛选和分页。
#### 请求参数
| 参数名 | 类型 | 是否必填 | 说明 |
|------------|--------|----------|-------------------------------|
| prefix | string | 否 | 音色前缀,为空则返回所有音色 |
| page_index | int | 否 | 页码索引默认0 |
| page_size | int | 否 | 每页条数默认10 |
#### 响应参数
| 参数名 | 类型 | 说明 |
|--------------|--------|----------------------------------------------------------------------|
| voice_list | array | 音色列表,含每个音色的`voice_id`、创建时间gmt_create、状态status |
| status | string | 音色状态DEPLOYING审核中/OK可用/UNDEPLOYED审核失败 |
| request_id | string | 任务唯一标识 |
### 3. 查询指定音色
#### 功能描述
查询单个`voice_id`的详细信息状态、原始音频URL等
#### 请求参数
| 参数名 | 类型 | 是否必填 | 说明 |
|----------|--------|----------|--------------------|
| voice_id | string | 是 | 需查询的音色ID |
#### 响应参数
| 参数名 | 类型 | 说明 |
|----------------|--------|----------------------------------------------------------------------|
| voice_id | string | 音色ID |
| resource_link | string | 复刻所用音频的公网URL |
| target_model | string | 复刻时使用的模型 |
| status | string | 音色状态DEPLOYING/OK/UNDEPLOYED |
| gmt_create | string | 音色创建时间 |
### 4. 更新音色
#### 功能描述
使用新的音频URL更新已有`voice_id`的音色。
#### 请求参数
| 参数名 | 类型 | 是否必填 | 说明 |
|----------|--------|----------|----------------------------------------------------------------------|
| voice_id | string | 是 | 需更新的音色ID |
| url | string | 是 | 新的音频公网URL需满足格式要求 |
#### 响应参数
| 参数名 | 类型 | 说明 |
|------------|--------|--------------------|
| request_id | string | 任务唯一标识 |
### 5. 删除音色
#### 功能描述
删除无需使用的`voice_id`释放配额账号最多保留1000个音色
#### 请求参数
| 参数名 | 类型 | 是否必填 | 说明 |
|----------|--------|----------|--------------------|
| voice_id | string | 是 | 需删除的音色ID |
#### 响应参数
| 参数名 | 类型 | 说明 |
|------------|--------|--------------------|
| request_id | string | 任务唯一标识 |
## 四、音频文件要求
1. 格式支持WAV16bit、MP3、M4A。
2. 采样率≥16000Hz。
3. 时长10~20秒建议不超过60秒含至少一段≥5秒的连续语音。
4. 大小≤10MB。
5. 质量:语音清晰、无杂音,朗读连贯。
## 五、使用流程(复刻→合成)
1. 调用「创建音色」接口传入音频URL获取`voice_id`
2. 调用CosyVoice语音合成接口`voice_id`作为`voice`参数传入,即可使用定制音色合成语音。
3. (可选)通过「查询指定音色」接口确认`status``OK`后再使用。
## 六、关键限制
1. 配额限制每个主账号最多保留1000个复刻音色删除后释放配额。
2. 并发限制复刻接口总并发≤10 RPSv1+v2合计语音合成接口并发≤3 RPS。
3. 模型匹配v1版本`voice_id`仅用于v1合成v2版本`voice_id`仅用于v2合成不可混用。
4. 有效期超过1年未使用的音色将自动下线。
## 七、常见错误码及解决方案
| 错误码 | 说明 | 解决方案 |
|-------------------------|---------------------------------------|------------------------------------------------------------------|
| Throttling.AllocationQuota | 音色数量达限额 | 删除无用音色或提交工单申请扩容 |
| Audio.AudioShortError | 音频有效时长过短 | 重新录制10~20秒连续语音 |
| InvalidApiKey | API Key无效 | 检查API Key是否正确无多余空格或缺失字符 |
| Model.AccessDenied | 模型访问权限不足 | 使用“默认业务空间”下的API Key调用 |
| BadRequest.UnsupportedFileFormat | 音频格式不支持 | 转换为WAV/MP3/M4A格式确认文件实际编码与后缀一致 |
| Audio.FileSizeExceed | 音频文件超过10MB | 压缩文件大小或截取有效片段 |
## 八、注意事项
1. 版权要求:需对复刻音频的所有权及合法使用权负责,遵守服务协议。
2. 音频URL确保公网可访问推荐使用阿里云OSS生成临时访问链接避免长期公开泄露
3. 升级建议v1音色可使用原始音频重新复刻为v2版本获得更优效果。
4. 合成调节:使用`voice_id`合成语音时,可通过`volume`(音量)、`speechRate`(语速)等参数调节输出效果。