基本信息

Action:/audio/speech-ext

Method: POST

Content-Type:multipart/form-dataapplication/x-www-form-urlencoded

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

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

请求参数

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

model

字符串

要使用的模型,可选择 CosyVoice-300MStep-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 支持两种调用方式:

  • 方式一根据文字内容生成语音,必传参数:modelinput 以及 voice,且 Content-Type 为 application/x-www-form-urlencoded

  • 方式二根据文字内容和语音样本,生成与样本相同音色的语音。必传参数:modelinputprompt_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)

响应示例

音频文件。