Skip to content

文本转语音

提供 OpenAI 兼容的文本转语音接口。

请求方法

POST

请求地址

https://chat.ecnu.edu.cn/open/api/v1/audio/speech

请求参数

参数名类型是否必须描述
modelstring模型名称,目前可用 ecnu-tts,详见 模型列表
inputstring要转换为语音的文本,不超过 4096 个字符
voicestring语音类型,可选值:xiayu, liwa,默认为 xiayu
response_formatstring音频格式,可选值:mp3, opus, aac, flac, wav, pcm, 默认为 mp3
speednumber语速倍数,范围 0.25-4.0,默认为 1.0

返回参数

参数名类型描述
audio_databinary音频二进制数据
content_typestring音频MIME类型

请求示例

http
POST https://chat.ecnu.edu.cn/open/api/v1/audio/speech
Content-Type: application/json
Authorization: Bearer sk-UDK3*******************1Y

{
    "model": "ecnu-tts",
    "input": "你好,欢迎使用文本转语音服务",
    "voice": "xiayu",
    "response_format": "mp3",
    "speed": 1.0
}

返回示例

http
HTTP/1.1 200 OK
Content-Type: audio/mpeg
Content-Length: 123456

[二进制音频数据]

代码示例

直接调用接口

python
import requests
import json

# 设置API参数
url = "https://chat.ecnu.edu.cn/open/api/v1/audio/speech"
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer your-api-key"  # 替换为您的API密钥
}

# 文本转语音请求
data = {
    "model": "ecnu-tts",
    "input": "你好,欢迎使用文本转语音服务",
    "voice": "xiayu",
    "response_format": "mp3",
    "speed": 1.0
}

response = requests.post(url, headers=headers, data=json.dumps(data))

# 保存音频文件
if response.status_code == 200:
    with open("output.mp3", "wb") as f:
        f.write(response.content)
    print("音频文件已保存为 output.mp3")
else:
    print(f"请求失败: {response.status_code}")

使用 OpenAI SDK

python
from openai import OpenAI
import os

client = OpenAI(
    base_url="https://chat.ecnu.edu.cn/open/api/v1",
    api_key="your-api-key"  # 替换为您的API密钥
)

# 文本转语音请求
response = client.audio.speech.create(
    model="ecnu-tts",                    # 指定模型
    voice="xiayu",                         # 语音类型
    input="你好,欢迎使用文本转语音服务",    # 输入文本
    response_format="mp3",                 # 音频格式
    speed=1.0                              # 语速
)

# 保存音频文件
with open("output.mp3", "wb") as f:
    f.write(response.content)

print("音频文件已保存为 output.mp3")

批量文本转语音

python
from openai import OpenAI
import os

client = OpenAI(
    base_url="https://chat.ecnu.edu.cn/open/api/v1",
    api_key="your-api-key"  # 替换为您的API密钥
)

# 批量文本列表
texts = [
    "第一段文本内容",
    "第二段文本内容"
]

voices = ["xiayu", "liwa"]  # 不同的语音类型

for i, (text, voice) in enumerate(zip(texts, voices)):
    response = client.audio.speech.create(
        model="ecnu-tts",
        voice=voice,
        input=text,
        response_format="mp3"
    )
    
    # 保存为不同文件
    filename = f"speech_{i+1}.mp3"
    with open(filename, "wb") as f:
        f.write(response.content)
    
    print(f"音频文件已保存为 {filename}")

语音类型说明

语音类型描述适用场景
xiayu男性、平衡的语音通用场景
liwa女性、平衡的语音通用场景

音频格式说明

格式文件大小音质兼容性推荐场景
mp3良好广泛支持通用推荐
opus最小良好现代浏览器网络传输
aac优秀苹果设备移动应用
flac无损专业设备高质量需求
wav很大无损广泛支持专业音频处理
pcm最大原始专业设备实时音频处理