MiniMax 语音合成技能
功能概览
| 功能 | API 端点 | 说明 |
|---|
| 异步语音合成 | /v1/t2a_async_v2 | 长文本语音合成(推荐) |
| 查询任务状态 | /v1/query/t2a_async_query_v2 | 查询异步任务进度 |
| 音色快速复刻 | /v1/voice_clone | 克隆自定义音色 |
| 查询可用音色 | /v1/get_voice | 获取音色列表 |
| 删除音色 | /v1/del_voice | 删除自定义音色 |
重要说明
同步端点 /v1/t2a_v1 已停用,返回 404。请使用异步端点 /v1/t2a_async_v2。
工作流程
文本 → 创建任务 → 轮询状态 → 获取file_id → 下载音频 → 本地保存
快速开始
异步语音合成
import requests
import os
API_KEY = os.getenv("MINIMAX_API_KEY")
# 1. 创建任务
response = requests.post(
"https://api.minimaxi.com/v1/t2a_async_v2",
headers={
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
},
json={
"model": "speech-2.8-hd",
"text": "你好,欢迎使用 MiniMax 语音合成服务",
"voice_setting": {
"voice_id": "Chinese (Mandarin)_Lyrical_Voice",
"speed": 1.0,
"vol": 1.0,
"pitch": 0,
"emotion": "happy"
},
"audio_setting": {
"audio_sample_rate": 32000,
"format": "mp3",
"bitrate": 128000,
"channel": 1
}
}
)
task_id = response.json()["task_id"]
# 2. 查询状态
status_resp = requests.get(
f"https://api.minimaxi.com/v1/query/t2a_async_query_v2?task_id={task_id}",
headers={"Authorization": f"Bearer {API_KEY}"}
)
status = status_resp.json()["status"] # Processing / Success / Failed
# 3. 下载音频
if status == "Success":
file_id = status_resp.json()["file_id"]
file_resp = requests.get(
f"https://api.minimaxi.com/v1/files/retrieve?file_id={file_id}",
headers={"Authorization": f"Bearer {API_KEY}"}
)
download_url = file_resp.json()["file"]["download_url"]
# 保存到本地
save_dir = "~/.openclaw/workspace/assets/audios"
os.makedirs(save_dir, exist_ok=True)
save_path = os.path.join(save_dir, "output.mp3")
audio_resp = requests.get(download_url)
with open(save_path, 'wb') as f:
f.write(audio_resp.content)
支持的模型
| 模型 | 说明 | 适用场景 |
|---|
speech-2.8-hd | 高清语音(推荐) | 高质量要求 |
speech-2.8-turbo | 快速语音 | 低延迟 |
speech-2.6-hd | 高清语音 | 标准质量 |
speech-02-hd | 标准高清 | 通用场景 |
speech-01-hd | 基础高清 | 简单场景 |
音色设置 (voice_setting)
| 参数 | 类型 | 默认值 | 说明 |
|---|
voice_id | string | 必填 | 音色 ID |
speed | float | 1.0 | 语速 [0.5, 2] |
vol | float | 1.0 | 音量 (0, 10] |
pitch | int | 0 | 语调 [-12, 12] |
emotion | string | - | 情绪控制 |
情绪选项
happy, sad, angry, fearful, disgusted, surprised, calm, fluent, whisper
常用系统音色
| 语言 | voice_id | 说明 |
|---|
| 中文 | Chinese (Mandarin)_Lyrical_Voice | 抒情女声 |
| 中文 | Chinese (Mandarin)_HK_Flight_Attendant | 空乘女声 |
| 英文 | English_Graceful_Lady | 优雅女声 |
| 英文 | English_Persuasive_Man | 说服力男声 |
| 日文 | Japanese_Whisper_Belle | 日文低语 |
音频设置 (audio_setting)
| 参数 | 可选值 | 默认值 |
|---|
audio_sample_rate | 8000, 16000, 22050, 24000, 32000, 44100 | 32000 |
bitrate | 32000, 64000, 128000, 256000 | 128000 |
format | mp3, pcm, flac | mp3 |
channel | 1 (单声道), 2 (双声道) | 1 |
声音效果器 (voice_modify)
| 参数 | 类型 | 说明 |
|---|
pitch | int | 音高调整 [-100, 100] |
intensity | int | 强度调整 [-100, 100] |
timbre | int | 音色调整 [-100, 100] |
sound_effects | string | 音效 |
音效选项
spacious_echo - 空旷回音
auditorium_echo - 礼堂广播
lofi_telephone - 电话失真
robotic - 电音
音色快速复刻
- 上传音频文件获取
file_id
- 调用
/v1/voice_clone 进行复刻
- 使用复刻的
voice_id 进行语音合成
输出目录
生成的音频保存在:~/.openclaw/workspace/assets/audios/
脚本工具
scripts/tts_sync.py - 异步语音合成(自动保存本地)
scripts/tts_async.py - 异步语音合成 + 状态查询
scripts/voice_clone.py - 音色复刻
scripts/voice_list.py - 查询可用音色
命令行用法
# 语音合成
python tts_sync.py "要转换的文本" --voice "Chinese (Mandarin)_Lyrical_Voice"
# 查询音色列表
python voice_list.py --type all
# 音色复刻
python voice_clone.py --file-id 123456789 --voice-id "my_voice"
API 参考
详细文档: