基本信息

Action:/audio/speech-ext

Method: POST

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

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

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

请求参数

参数 类型 作用 是否必须 示例 备注

model

字符串

要使用的模型

CosyVoice-300M

-

input

字符串

待转换为音频的文本内容

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

-

voice

字符串

音频的声音音色

中文女

支持中文女、中文男、日语男、粤语女、英文女或英文男

prompt_wav

文件

样本语音文件

-

语音文件必须为 .wav 格式

prompt_text

字符串

样本语音文字

床前明月光,疑似地上霜

-

speed

浮点型

语速

1.0

默认值 1.0,范围 0.5~2.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)

响应示例

音频文件。