# minimax-tts 技能 ## 强制规则(违反将导致功能失败) 1. **必须用 HTTPS 访问 agent-service** — `https://127.0.0.1:${PORT}` 加 `-k` 跳过证书验证 2. **全程使用 Bash curl** — 不要使用 HttpRequest 工具或 Python ## 完整执行流程 ### 前置条件 - 用户已在资源管理器-算力中配置 MiniMax Media Provider 并填写 API Key - agent-service 正在运行 ### 语音选择指南 | voice_id | 特点 | 适用场景 | |----------|------|---------| | male-qn-qingse | 青涩男声 | 旁白、播客 | | female-shaonv | 少女女声 | 有声书、对话 | | female-yujie | 御姐女声 | 专业播报 | | presenter_male | 主持人男声 | 新闻、正式场合 | | presenter_female | 主持人女声 | 新闻、正式场合 | ### 生成语音 MiniMax TTS 返回 JSON(包含音频 URL 或 hex 数据),`responseType` 使用 `"json"`。 ```bash PORT=$(cat ${DESIRECORE_ROOT}/agent-service.port) curl -sk -X POST "https://127.0.0.1:${PORT}/api/media-proxy" \ -H "Content-Type: application/json" \ -d '{ "providerId": "provider-minimax-media-001", "endpoint": "/t2a_v2", "body": { "model": "speech-02-hd", "text": "要转换为语音的文本内容", "voice_setting": { "voice_id": "male-qn-qingse", "speed": 1.0, "vol": 1.0, "pitch": 0 }, "audio_setting": { "format": "mp3", "sample_rate": 32000 } }, "responseType": "json" }' ``` ### 响应处理 MiniMax TTS 返回 JSON,根据请求参数可能返回 URL 或 hex 格式: **URL 格式响应**(推荐,需在 audio_setting 中设置 `"format": "url"`): ```json { "success": true, "data": { "data": { "audio": { "audio_url": "https://...", "status": 1 } }, "base_resp": { "status_code": 0, "status_msg": "success" } }, "statusCode": 200 } ``` **Hex 格式响应**(默认): ```json { "success": true, "data": { "data": { "audio": { "data": "hex编码的音频数据...", "status": 1 } }, "extra_info": { "audio_length": 12345, "audio_sample_rate": 32000, "audio_size": 67890 } }, "statusCode": 200 } ``` ### 下载并上传到 media-store 音频 URL 有时效限制,必须立即下载并保存到本地 media-store。 **URL 格式**: ```bash PORT=$(cat ${DESIRECORE_ROOT}/agent-service.port) AUDIO_URL="响应中的audio_url" curl -sL "$AUDIO_URL" -o /tmp/minimax-tts.mp3 && \ curl -sk -X POST "https://127.0.0.1:${PORT}/api/media/upload" \ -F "file=@/tmp/minimax-tts.mp3;type=audio/mpeg" ``` **Hex 格式**: ```bash PORT=$(cat ${DESIRECORE_ROOT}/agent-service.port) HEX_DATA="响应中的hex数据" echo -n "$HEX_DATA" | xxd -r -p > /tmp/minimax-tts.mp3 && \ curl -sk -X POST "https://127.0.0.1:${PORT}/api/media/upload" \ -F "file=@/tmp/minimax-tts.mp3;type=audio/mpeg" ``` 从 JSON 响应中提取 `mediaId` 字段。 ### 展示结果 在回复中使用 dc-media 协议引用(前端会自动识别音频扩展名并渲染播放器): ``` ![语音合成结果](dc-media://这里替换为mediaId) ``` ### 参数说明 | 参数 | 说明 | 默认值 | |------|------|--------| | model | 模型 | "speech-02-hd"(高清)或 "speech-02-turbo"(快速) | | text | 要转换的文本 | 最大 10000 字符 | | voice_setting.voice_id | 语音角色 | "male-qn-qingse" | | voice_setting.speed | 语速 | 1.0 | | voice_setting.vol | 音量 | 1.0 | | voice_setting.pitch | 音调 | 0 | | audio_setting.format | 音频格式 | "mp3" | | audio_setting.sample_rate | 采样率 | 32000 | ### 特殊语法 MiniMax TTS 支持在文本中插入停顿标记: - `<#0.5#>` — 停顿 0.5 秒 - `<#2#>` — 停顿 2 秒 - 有效范围:0.01 ~ 99.99 秒 示例:`"你好<#1#>欢迎来到 DesireCore"` ### 错误处理 - `success: false` + `statusCode: 400`:文本为空或参数格式错误 - `success: false` + `statusCode: 401`:API Key 无效 - `success: false` + `statusCode: 429`:频率限制 - `success: false` + `error: "未找到匹配的供应商"`:未配置 MiniMax Media Provider ### 注意事项 - 文本超过 3000 字符时建议使用流式输出(但代理模式暂不支持流式) - 返回的 audio_url 有 24 小时时效 - 如果用户未明确要求,默认使用 `speech-02-hd` + `male-qn-qingse` + 1.0 倍速 - 长文本建议分段调用,每段不超过 3000 字符