文本生成音频(TTS)扩展
更新时间:2024-11-07 06:26:01
基本信息
Action:/audio/speech-ext
Method: POST
Content-Type:multipart/form-data
或 application/x-www-form-urlencoded
Authorization:需提前在 API 密钥管理中创建和获取。
计费方式:output 音频文件秒数。
请求参数
参数 | 类型 | 作用 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|---|
model |
字符串 |
要使用的模型 |
是 |
CosyVoice-300M |
- |
input |
字符串 |
待转换为音频的文本内容 |
是 |
吃葡萄不吐葡萄皮,不吃葡萄倒吐葡萄皮 |
- |
voice |
字符串 |
音频的声音音色 |
否 |
中文女 |
支持中文女、中文男、日语男、粤语女、英文女或英文男 |
prompt_wav |
文件 |
样本语音文件 |
否 |
- |
语音文件必须为 |
prompt_text |
字符串 |
样本语音文字 |
否 |
床前明月光,疑似地上霜 |
- |
speed |
浮点型 |
语速 |
否 |
1.0 |
默认值 1.0,范围 0.5~2.0 |
该 API 支持两种调用方式:
-
方式一:根据文字内容生成语音,必传参数:
model
、input
以及voice
,且 Content-Type 为application/x-www-form-urlencoded
。 -
方式二:根据文字内容和语音样本,生成与样本相同音色的语音。必传参数:
model
、input
、prompt_wav
以及prompt_text
,且 Content-Type 为multipart/form-data
。
响应参数
音频文件。
请求示例
Curl
-
根据文字内容生成语音:
curl -X POST \ -H "Authorization:Bearer sk-xxxxxxxxxxxxxxxxxx" \ -H "Content-Type:application/x-www-form-urlencoded" \ -d "model=CosyVoice-300M" \ -d "input=吃葡萄不吐葡萄皮,不吃葡萄倒吐葡萄皮" \ -d "voice=中文女" \ 'https://openapi.coreshub.cn/v1/audio/speech-ext' \ --output test.wav
-
根据文字内容和语音样本生成相同音色的语音:
curl -X POST \ -H "Authorization:Bearer sk-xxxxxxxxxxxxxxxxxx" \ -H "Content-Type:multipart/form-data" \ -F "model=CosyVoice-300M" \ -F "input=吃葡萄不吐葡萄皮,不吃葡萄倒吐葡萄皮" \ -F "prompt_text=床前明月光,疑似地上霜,举头望明月,低头思故乡" \ -F "prompt_wav=@\"./样本.wav\";type=audio/wav;filename=\"样本.wav\"" \ 'https://openapi.coreshub.cn/v1/audio/speech-ext' \ --output test.wav
Python
-
根据文字内容生成语音:
import requests url = 'https://openapi.coreshub.cn/v1/audio/speech-ext' key = 'Bearer sk-xxxxxxxxxxxxxxx' data = { "input": """吃葡萄不吐葡萄皮,不吃葡萄倒吐葡萄皮""", "voice": "中文女", "model": "CosyVoice-300M" } response = requests.post(url, headers={'Authorization': key}, data=data) with open('output.wav', 'wb') as audio_file: audio_file.write(response.content)
-
根据文字内容和语音样本生成相同音色的语音:
import requests url = 'https://openapi.coreshub.cn/v1/audio/speech-ext' key = 'Bearer sk-xxxxxxxxxxxxxxxxxx' file_path = 'demo.wav' files = {'prompt_wav': open(file_path, 'rb')} data = { "input": """吃葡萄不吐葡萄皮,不吃葡萄倒吐葡萄皮""", "prompt_text": '床前明月光,疑似地上霜,举头望明月,低头思故乡', "model": "CosyVoice-300M" } response = requests.post(url, headers={'Authorization': key}, data=data, files=files) with open('output.wav', 'wb') as audio_file: audio_file.write(response.content)
响应示例
音频文件。