添加 MiniMax TTS API 使用说明及问题解决方案
This commit is contained in:
40
README.md
Normal file
40
README.md
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
# MiniMax Text-to-Speech API 踩坑记录
|
||||||
|
|
||||||
|
## 问题
|
||||||
|
|
||||||
|
调用 MiniMax TTS API 时,返回的音频数据无法正常播放。
|
||||||
|
|
||||||
|
## 原因
|
||||||
|
|
||||||
|
MiniMax TTS API 返回的音频数据采用 **hex(十六进制)编码**,而不是常见的 base64 编码。
|
||||||
|
|
||||||
|
API 响应结构:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"data": {
|
||||||
|
"audio": "4944330400000000086a54..."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
`49443304` 是 `ID3` 的十六进制表示,这是 MP3 文件头的标识。如果误用 base64 解码,会得到乱码,导致音频文件无法播放。
|
||||||
|
|
||||||
|
## 解决
|
||||||
|
|
||||||
|
将 hex 字符串转换为 Buffer:
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
const audioBuffer = Buffer.from(audioHex, "hex");
|
||||||
|
```
|
||||||
|
|
||||||
|
## 修复后的代码
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
const audioHex = result.data.audio || result.data.audio_file!;
|
||||||
|
const audioBuffer = Buffer.from(audioHex, "hex");
|
||||||
|
```
|
||||||
|
|
||||||
|
## 其他注意事项
|
||||||
|
|
||||||
|
1. **成功响应没有 `code` 字段**:API 请求成功时不返回 `code` 字段,只有失败时才返回。因此检查逻辑应为 `if (result.code && result.code !== 0)`
|
||||||
|
2. **环境变量**:需要设置 `MINIMAX_API_KEY`
|
||||||
Reference in New Issue
Block a user