基本信息

Action:/audio/speech-ext

Method: POST

Content-Type:multipart/form-data 或 application/x-www-form-urlencoded

Authorization:需提前在 API 密钥管理中创建和获取。

计费方式:output 音频文件秒数。

请求参数

参数 类型 说明 是否必须 示例 备注

model

字符串

要使用的模型,可选择 CosyVoice-300M 或 Step-Audio-TTS-3B

是

CosyVoice-300M

-

input

字符串

待转换为音频的文本内容

是

吃葡萄不吐葡萄皮,不吃葡萄倒吐葡萄皮

-

voice

字符串

输出音频的声音特点。针对不同模型可输入的值不一样,具体如下:

  • CosyVoice-300M 模型:仅支持音色维度,可输入:中文女、中文男、日语男、粤语女、英文女或英文男

  • Step-Audio-TTS-3B 模型:支持情绪、语言、语速以及模式 4 种维度,可输入值如下:

    • 情绪:高兴1、高兴2、生气1、生气2、悲伤1、撒娇1

    • 语言:中文、英文、韩语、日语、四川话、粤语、广东话

    • 语速:慢速1、慢速2、快速1、快速2

    • 模式:RAP、哼唱(仅在非克隆模式下有效)

否

  • 仅指定一个维度时: 中文女

  • 指定多个维度时:高兴2|英文|RAP

  • 用户需根据所使用的模型选择相应的输入值。

  • 若模型输出声音支持多个维度,则每个维度支持选择 0 或 1 个值,指定多个维度参数值时,需使用 | 符号分隔。

prompt_wav

文件

样本语音文件,该语音文件必须为 .wav 格式

否

-

-

prompt_text

字符串

样本语音文字

否

床前明月光,疑似地上霜

-

speed

浮点型

语速,默认值为 1.0,取值范围 0.5~2.0

否

1.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)

响应示例

音频文件。