天府新谷开普勒公共算力服务平台
返回平台
Skip to content

MiniMax-文字转语音(T2A) ​

将口播文案合成为音频,可选返回字幕文件链接,用于 混剪配音、数字人口播、字幕轨对齐 等场景。

与 ASR 的配合:混剪常见流程为 T2A 生成口播音频 + 字幕 → 成片后再用 录音文件 ASR(极速版) 做校对或拆条(视业务而定)。

URL:$BASE_URL/v1/t2a_v2

Method:POST

Content-Type:application/json

平台模型:speech-2.8-hd(请求体 model 字段须与此一致)

aisee 混剪用哪个接口? ​

aisee 等业务侧通过 amagssdk.CreateT2A 调用本平台,底层即:

http
POST $BASE_URL/v1/t2a_v2
Authorization: Bearer $API_KEY

不是 WebSocket,不是 /v3/... 路径。混剪配音推荐:

项推荐值
接口POST /v1/t2a_v2
模型speech-2.8-hd
streamfalse(一次性拿完整 JSON + 字幕链接)
subtitle_enabletrue(返回 data.subtitle_file)
subtitle_typesentence(句级字幕,便于上轴)
响应JSON,data.audio 为 hex 音频,data.subtitle_file 为字幕 JSON 地址

长文案、需边合成边播放时可设 stream: true(SSE),见下文「流式合成」。

鉴权 ​

公共变量见 API 接入 · 公共参数。

方式说明
Authorization: Bearer $API_KEY推荐
x-api-key: $API_KEY兼容 Anthropic / OpenAI 风格客户端

API Key 需 scope 为 chat 或 all,且租户 可用余额 > 0。

请求体(MiniMax 官方格式 · 混剪推荐) ​

字段类型必填说明
modelstring是填 speech-2.8-hd
textstring是待合成文案(与 input 二选一,混剪用 text)
streambool否默认 false;true 时为 SSE 流式
output_formatstring否非流式建议 hex(响应内嵌音频 hex)
voice_settingobject否音色参数
voice_setting.voice_idstring否MiniMax 音色 ID
voice_setting.speedfloat否语速,如 1.0
voice_setting.volfloat否音量
voice_setting.pitchint否音调
audio_settingobject否输出音频格式
audio_setting.formatstring否如 mp3、wav
audio_setting.sample_rateint否如 32000
subtitle_enablebool否混剪建议 true
subtitle_typestring否sentence / word;word_streaming 仅 stream=true
language_booststring否如 Chinese

混剪请求示例 ​

json
{
  "model": "speech-2.8-hd",
  "text": "大家好,欢迎收看本期混剪口播。",
  "stream": false,
  "output_format": "hex",
  "voice_setting": {
    "voice_id": "Chinese_Internet_Lyrical_Voice",
    "speed": 1.0,
    "vol": 1.0,
    "pitch": 0
  },
  "audio_setting": {
    "format": "mp3",
    "sample_rate": 32000
  },
  "subtitle_enable": true,
  "subtitle_type": "sentence",
  "language_boost": "Chinese"
}

响应(非流式 · 含字幕) ​

HTTP 200,Content-Type: application/json:

json
{
  "data": {
    "audio": "ffd8e0...",
    "subtitle_file": "https://example.com/subtitle.json",
    "status": 2
  },
  "extra_info": {
    "audio_length": 3500,
    "audio_sample_rate": 32000,
    "usage_characters": 42,
    "audio_format": "mp3"
  },
  "base_resp": {
    "status_code": 0,
    "status_msg": "success"
  }
}
字段说明
data.audiohex 编码的音频,解码后写入 mp3/wav
data.subtitle_file句级字幕 JSON 的下载 URL(需 subtitle_enable: true)
extra_info.usage_characters计费字符数
extra_info.audio_length音频时长(毫秒)

解码音频 ​

bash
python -c "import json; d=json.load(open('response.json')); open('voice.mp3','wb').write(bytes.fromhex(d['data']['audio']))"

CURL 示例 ​

先设置 公共变量:

bash
BASE_URL="https://ai.open.thinkzoneai.com"
API_KEY="替换为你的API Key"

混剪口播 + 句级字幕(推荐) ​

bash
curl -s -X POST "$BASE_URL/v1/t2a_v2" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "speech-2.8-hd",
    "text": "大家好,欢迎收看本期混剪口播。",
    "stream": false,
    "output_format": "hex",
    "voice_setting": {
      "voice_id": "Chinese_Internet_Lyrical_Voice",
      "speed": 1.0,
      "vol": 1.0,
      "pitch": 0
    },
    "audio_setting": {
      "format": "mp3",
      "sample_rate": 32000
    },
    "subtitle_enable": true,
    "subtitle_type": "sentence",
    "language_boost": "Chinese"
  }' \
  -o t2a-response.json

最简合成(无字幕) ​

bash
curl -s -X POST "$BASE_URL/v1/t2a_v2" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "speech-2.8-hd",
    "text": "你好,这是一段测试。",
    "stream": false,
    "output_format": "hex",
    "voice_setting": { "voice_id": "Chinese_Female_Sharp" },
    "audio_setting": { "format": "mp3" }
  }'

OpenAI 兼容(直接返回 mp3 字节) ​

仅 input + voice + format、且 未开 subtitle_enable 时,响应可能为裸 audio/mpeg:

bash
curl -s -X POST "$BASE_URL/v1/t2a_v2" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "speech-2.8-hd",
    "input": "Hello, this is a test.",
    "voice": "alloy",
    "format": "mp3"
  }' \
  --output out.mp3

混剪场景请用 官方格式 + subtitle_enable,不要用纯 OpenAI 兼容路径。

流式合成(SSE) ​

长文案可设 stream: true,响应为 text/event-stream,事件体为 MiniMax SSE JSON(含分片 data.audio hex)。

bash
curl -N -X POST "$BASE_URL/v1/t2a_v2" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "speech-2.8-hd",
    "text": "这是一段较长的口播文案……",
    "stream": true,
    "output_format": "hex",
    "voice_setting": { "voice_id": "Chinese_Internet_Lyrical_Voice" },
    "audio_setting": { "format": "mp3" }
  }'

浏览器测试页:/t2a-stream-test.html(部署后与站点同源访问)。

Go SDK(aisee 同款) ​

go
import (
    "code.keplerjai.com/keplerjai/campus-amags/pkg"
    "code.keplerjai.com/keplerjai/campus-amags/sdk/amagssdk"
)

// Init:amagssdk.Init(host); amagssdk.SetAPIKey(key)

subtitleEnable := true
result, err := amagssdk.CreateT2A(pkg.MiniMaxT2AReq{
    Model: "speech-2.8-hd",
    Text:  "大家好,欢迎收看本期混剪口播。",
    VoiceSetting: &pkg.MiniMaxT2AVoiceSetting{
        VoiceID: "Chinese_Internet_Lyrical_Voice",
    },
    AudioSetting: &pkg.MiniMaxT2AAudioSetting{
        Format:     "mp3",
        SampleRate: 32000,
    },
    SubtitleEnable: &subtitleEnable,
    SubtitleType:   "sentence",
    LanguageBoost:  "Chinese",
})
if err != nil { /* handle */ }

audio, _ := amagssdk.T2AAudioBytes(result)           // 写入 mp3
subtitleURL := result.Resp.Data.SubtitleFile        // 下载字幕 JSON 上轴
chars := result.Resp.ExtraInfo.UsageCharacters      // 计费字符

流式:CreateT2AStream,返回 io.ReadCloser,调用方自行解析 SSE。

计费 ​

  • 模型:speech-2.8-hd(type=audio)
  • 维度:audio(按 usage_characters 字符数,默认单位 1 万字符)
  • 任务:每次调用创建 audio 类型任务

常见错误 ​

HTTP / 响应原因处理
401API Key 无效检查 Bearer
400model 缺失、模型未启用、余额不足确认 speech-2.8-hd 已上架
base_resp.status_code != 0上游 MiniMax 错误看 status_msg、音色 ID 是否有效
400subtitle_type=word_streaming 且 stream=false改为 stream: true 或换 sentence

混剪接入流程(参考) ​

  1. 用户提交口播文案 → POST /v1/t2a_v2(subtitle_enable: true)
  2. 解码 data.audio → 上传 OSS / 加入时间线
  3. 拉取 data.subtitle_file → 生成字幕轨或给剪辑引擎
  4. (可选)成片或素材 wav 再走 ASR 极速版 校对时间轴

参考 ​