Files
sionrui/docs/cosyvoice-copy.md
2025-11-19 21:57:16 +08:00

130 lines
8.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 阿里云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`(语速)等参数调节输出效果。