文本转语音 (TTS) 支持多音色语音合成,包括系统预设、用户自定义和动态音色克隆。
1. 使用场景
文本转语音模型 (TTS) 是一种将文本信息转换为语音输出的 AI 模型。该模型将输入文本内容生成自然流畅、富有表现力的语音,适用于多种应用场景:
- 为博客文章提供音频朗读
- 生成多语言语音内容
- 支持实时流媒体音频输出
2. API 使用指南
- 端点:
/audio/speech,具体使用可参考 API 文档。 - 主要请求参数:
model:用于语音合成的模型,支持的 模型列表。input:待转换为音频的文本内容。voice:参考音色,支持系统预置音色、用户预置音色、用户动态音色。speed:可以控制音频速度,float 类型,默认值是 1.0,可选范围是 [0.25, 4.0]。gain:音频增益,单位 dB,可以控制音频声音大小,float 类型,默认值是 0.0,可选范围是 [-10, 10]。response_format:控制输出格式,支持 mp3、opus、wav 和 pcm 格式。在选择不同的输出格式时,输出的采样率也会有所不同。sample_rate:控制音频采样率,默认值因输出格式而异。stream:是否流式输出音频,适合长文本生成场景。
3. 音色类型
| 类型 | 说明 | 使用方式 |
|---|---|---|
| 系统预置音色 | 平台官方提供的高质量音色 | 直接指定 voice 参数 |
| 用户预置音色 | 用户通过 API 上传并保存的自定义音色 | 通过 voice_id 调用 |
| 用户动态音色 | 每次请求时临时上传的参考音频 | 通过 references 字段 |
4. 使用示例
4.1 基础语音合成
curl --location 'https://khb.net.cn/v1/audio/speech' \
--header 'Authorization: Bearer sk-xx' \
--header 'Content-Type: application/json' \
--data '{
"model": "FunAudioLLM/CosyVoice2-0.5B",
"input": "你好,欢迎使用 KHB 算力平台",
"voice": "FunAudioLLM/CosyVoice2-0.5B:alex",
"response_format": "mp3",
"stream": false
}'
4.2 Python 流式合成
import requests
url = "https://khb.net.cn/v1/audio/speech"
payload = {
"model": "FunAudioLLM/CosyVoice2-0.5B",
"input": "你站在桥上看风景,看风景的人在楼上看你。明月装饰了你的窗子,你装饰了别人的梦",
"voice": "FunAudioLLM/CosyVoice2-0.5B:alex",
"response_format": "mp3",
"stream": True
}
headers = {
"Authorization": "Bearer sk-xx",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers, stream=True)
if response.status_code == 200:
with open("output.mp3", "wb") as f:
for chunk in response.iter_content(chunk_size=1024):
if chunk:
f.write(chunk)
print("音频已成功保存为 output.mp3")
else:
print(f"请求失败,状态码: {response.status_code}")
print(f"错误信息: {response.text}")
5. 计费说明
语音合成按输入字符数计费,具体单价以 模型广场 为准。
6. 最佳实践
- 对于长文本,建议使用流式输出 (
stream=true),避免等待超时 - 对于个性化需求,可使用声音克隆 API 上传自定义音色
- 关注音频大小与采样率的平衡,在音质和成本之间取舍
