T2A 快速接入
本示例基于python3,帮助您快速接入MiniMax开放平台体验中心的语音能力,您需要完成以下步骤:
1.获取鉴权信息
在【基础信息】获取group_id
在【接口秘钥】获取 api key
需要注意的是,由于API密钥在生成后我们不会再显示他们,所以当你需要复制API密钥的时候,可以重新创建一个以完成复制操作。
2.复制完整代码并执行
以下是一份可以在python3的终端环境中直接执行的完整代码,请将以下group_id和api_key替换为第一步获取的鉴权信息即可执行。
注意:添加import readline引用是为了解决在中文输入下,python的input接口在删除字符的时候错误处理的问题。
import requests
group_id = "请填写您的group_id"
api_key = "请填写您的api_key"
url = f"https://api.minimax.chat/v1/text_to_speech?GroupId={group_id}"
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json",
}
data = {
"voice_id": "male-qn-qingse",// 如同时传入voice_id和timber_weights时,则会自动忽略voice_id,以timber_weights传递的参数为准
"text": "你好",
"model": "speech-01",
"speed": 1.0,
"vol": 1.0,
"pitch": 0,
"timber_weights": [
{
"voice_id": "male-qn-qingse",
"weight": 1
},
{
"voice_id": "female-shaonv",
"weight": 1
},
{
"voice_id": "female-yujie",
"weight": 1
},
{
"voice_id": "audiobook_male_2",
"weight": 1
}
]
}
response = requests.post(url, headers=headers, json=data)
print("trace_id", response.headers.get("Trace-Id"))
if response.status_code != 200 or "json" in response.headers["Content-Type"]:
print("调用失败", response.status_code, response.text)
exit()
with open("output.mp3", "wb") as f:
f.write(response.content)
如果您想进一步了解上述完整代码是如何逐步构建,您可以继续阅读以下详细步骤解释:
3.构建请求头
复制下面代码并根据鉴权信息构建请求头(group_id和api_key为需要您替换的鉴权信息)
url = f"https://api.minimax.chat/v1/text_to_speech?GroupId={group_id}"
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json",
}
4.构建请求内容
本示例是基于python在终端交互的对话,input关键字内的提示词根据您的场景替换成对应的用户输入获取代码或参数。 其余参数,不建议您修改。
data = {
"voice_id": "male-qn-qingse",// 如同时传入voice_id和timber_weights时,则会自动忽略voice_id,以timber_weights传递的参数为准
"text": "你好",
"model": "speech-01",
"speed": 1.0,
"vol": 1.0,
"pitch": 0,
"timber_weights": [
{
"voice_id": "male-qn-qingse",
"weight": 1
},
{
"voice_id": "female-shaonv",
"weight": 1
},
{
"voice_id": "female-yujie",
"weight": 1
},
{
"voice_id": "audiobook_male_2",
"weight": 1
}
]
}
5.完成交互
通过requests库提供的post能力对api进行调用,复制下面的代码即可完成多轮交互。
注意:每一轮回复都需要追加到messages中,这样才能在多轮的对话中记住对话历史。
response = requests.post(url, headers=headers, json=data)
print("trace_id", response.headers.get("Trace-Id"))
if response.status_code != 200 or "json" in response.headers["Content-Type"]:
print("调用失败", response.status_code, response.text)
exit()
with open("output.mp3", "wb") as f:
f.write(response.content)
最后修改时间: 1 年前