Download OpenAPI specification:
此文档是火星电波 OpenAPI 接口文档。
使用 APIKey 认证, 格式为 Authorization: Bearer < your api key >
获取 API Key:访问 API Keys 设置页面
{- "code": 0,
- "message": "",
- "data": {
- "subscriptionStartedAt": 1718230400000,
- "subscriptionExpiresAt": 1720918800000,
- "usageAvailableMonthlyCredits": 80,
- "usageTotalMonthlyCredits": 100,
- "usageAvailablePermanentCredits": 50,
- "usageTotalPermanentCredits": 50,
- "usageAvailableLimitedTimeCredits": 20,
- "totalAvailableCredits": 150,
- "resetAt": 1721005200000,
- "platform": "web",
- "renewStatus": true,
- "paidStatus": true,
- "subscriptionPlan": {
- "name": "pro",
- "duration": "monthly",
- "platform": "web"
}
}
}获取可用音色列表。若提供 API Key,则返回该用户可用的私有音色;未提供时仅返回公开音色。
| language | string Example: language=en/zh/ja 过滤语言类型 |
{- "code": 0,
- "message": "",
- "data": {
- "items": [
- {
- "name": "美国女",
- "speakerId": "speaker_001",
- "gender": "female",
- "language": "en"
}
]
}
}根据提供的文本和其他设置创建新的播客模式 Episode。
| query | string 要合成的文本 |
Array of objects 可选, 其他来源 | |
required | Array of objects [ 1 .. 2 ] items 必填, 语音类型 |
| language | string Enum: "en" "zh" "ja" 可选,en/zh/ja, 语言类型。默认值:en(英文) |
| mode | string Enum: "deep" "quick" "debate" 生成模式 deep: 深度模式, quick: 快速模式, debate: 辩论模式。默认值:quick(快速模式) |
{- "query": "string",
- "sources": [
- {
- "type": "text",
- "content": "string"
}
], - "speakers": [
- {
- "speakerId": "string"
}
], - "language": "en",
- "mode": "deep"
}{- "code": 0,
- "message": "",
- "data": {
- "episodeId": "688c9a27348f001e707ba331"
}
}查询指定 Podcast 单集的详细信息,包括博客文本、音频内容等。
| episodeId required | string Podcast 单集的唯一标识符 |
{- "code": 0,
- "message": "",
- "data": {
- "episodeId": "688c9a27348f001e707ba331",
- "createdAt": 1718230400,
- "message": "success",
- "failCode": 0,
- "processStatus": "success",
- "completedTime": 1718230400,
- "sourceProcessResult": {
- "content": "用户提供的来源文本内容",
- "references": [ ]
}, - "title": "我的播客标题",
- "outline": "这是一个播客的大纲。",
- "scripts": [
- {
- "speakerId": "speaker-1",
- "speakerName": "播主A",
- "content": "这是第一段内容"
}
]
}
}两阶段生成 - 第一阶段:仅生成播客内容(scripts、outline等),不生成音频。
生成完成后,可以:
/v1/podcast/episodes/{episodeId}/audio 接口生成音频| query | string 要合成的文本 |
Array of objects 可选, 其他来源 | |
required | Array of objects [ 1 .. 2 ] items 必填, 语音类型 |
| language required | string Enum: "en" "zh" "ja" 必填,en/zh/ja, 语言类型。speaker 的语言必须与此参数匹配 |
| mode | string Enum: "deep" "quick" "debate" 生成模式 deep: 深度模式, quick: 快速模式, debate: 辩论模式。默认值:quick(快速模式) |
{- "query": "string",
- "sources": [
- {
- "type": "text",
- "content": "string"
}
], - "speakers": [
- {
- "speakerId": "string"
}
], - "language": "en",
- "mode": "deep"
}{- "code": 0,
- "message": "",
- "data": {
- "episodeId": "688c9a27348f001e707ba331",
- "status": "pending",
- "message": "Text content generation started. Audio generation can be triggered later."
}
}两阶段生成 - 第二阶段:在已生成内容的基础上生成音频。
前置条件:
/v1/podcast/episodes/text-content 生成内容使用场景:
/v1/podcast/episodes/text-content 生成内容| episodeId required | string Podcast 单集的唯一标识符 |
Array of objects 可选, 自定义脚本数组(如果不提供则使用已有脚本)。播客脚本中必须包含 1-2 个不同的音色。 |
{- "scripts": [
- {
- "content": "欢迎收听本期播客",
- "speakerId": "speaker_001"
}, - {
- "content": "今天我们要讨论一个有趣的话题",
- "speakerId": "speaker_002"
}
]
}{- "code": 0,
- "message": "",
- "data": {
- "success": true,
- "message": "Audio generation started",
- "episodeId": "688c9a27348f001e707ba331",
- "status": "pending"
}
}根据提供的文本和其他设置创建新的流式语音模式 Episode。
required | Array of objects = 1 items 必填, 来源信息 |
required | Array of objects [ 1 .. 2 ] items 必填, 语音类型 |
| language | string Enum: "en" "zh" "ja" 可选,en/zh/ja, 语言类型 |
| mode | string Enum: "smart" "direct" 生成模式 smart: 智能模式(AI修复语句、错别字等), direct: 直接模式(不修改内容直接转语音) |
{- "sources": [
- {
- "type": "text",
- "content": "string",
- "uri": "string",
- "metadata": { }
}
], - "speakers": [
- {
- "speakerId": "string"
}
], - "language": "en",
- "mode": "smart"
}{- "code": 0,
- "message": "",
- "data": {
- "episodeId": "688c9a27348f001e707ba331"
}
}查询指定 Flowspeech 单集的详细信息,包括文本、音频内容等。
| episodeId required | string Flowspeech 单集的唯一标识符 |
{- "code": 0,
- "message": "",
- "data": {
- "episodeId": "flowspeech_episode_001",
- "createdAt": 0,
- "message": "success",
- "failCode": 0,
- "processStatus": "success",
- "completedTime": 0,
- "sourceProcessResult": {
- "content": "用户提供的来源文本内容",
- "references": [ ]
}, - "title": "我的 Flowspeech 标题",
- "outline": "这是一个 Flowspeech 的大纲。",
- "scripts": "这是脚本内容"
}
}获取指定 Flowspeech 单集的大纲或脚本文本流内容,以Server-Sent Events (SSE) 格式返回。
| episodeId required | string Flowspeech 单集的唯一标识符 |
| event required | string Enum: "script" "outline" 查询的事件类型 (script 或 outline) |
id: 689ef06042a332af99cd5781 event: script data: {"code":0, "message":"", "data": {"chunk":"突然变成了一副巨型水印框。"}} id: 689ef06042a332af99cd5781 event: script data: {"code":0, "message":"", "data": {"chunk":"这栋百年建筑的每一扇窗户"}} id: 689ef06042a332af99cd5781 event: script data: {"code":0, "message":"", "data": {"chunk":"[END]"}}
直接从脚本生成音频,无需创建 Episode,支持多人对话。
特点:
使用场景:
积分计算:
required | Array of objects non-empty 必填, 脚本数组 |
{- "scripts": [
- {
- "content": "大家好,欢迎收听今天的节目",
- "speakerId": "speaker_001"
}, - {
- "content": "今天我们要聊一个有趣的话题",
- "speakerId": "speaker_002"
}
]
}{- "code": 0,
- "message": "",
- "data": {
- "audioDuration": 1152,
- "taskId": "1eed39d387a046c0a1213e6b8f139d77",
- "credits": 12
}
}文本转语音接口,直接返回音频二进制流。
特点:
使用场景:
与 /v1/speech 的区别:
/v1/tts: 流式二进制输出,单音色,实时返回/v1/speech: JSON 响应,多音色支持,同步返回 URL积分计算:
| input required | string 要转换为语音的文本内容 |
| voice required | string 音色ID(speakerId) |
| model | string Default: "flowtts" 模型名称(可选,默认值:flowtts)。注:此参数暂不做任何处理,仅用于兼容性 |
{- "input": "今天天气真不错,适合出去散步。",
- "voice": "speaker_001",
- "model": "flowtts"
}| 错误码 | 说明 | 处理建议 |
|---|---|---|
| 21007 | API Key 无效 | 检查 API Key 是否正确配置 |
| 25002 | 资源不存在 | 检查请求的资源 ID 是否正确 |
| 25008 | 单集状态不正确 | 检查单集是否已完成文本内容生成,确认 contentStatus 为 text-success |
| 26004 | 积分不足 | 检查账户积分余额,升级套餐或联系客服 |
| 29003 | 参数错误 | 验证请求参数格式和必填项 |
| 29998 | 请求过于频繁 | 实现指数退避重试,建议间隔 20-30 秒 |
| 错误码 | 说明 | 适用接口 |
|---|---|---|
| 91001 | 内容过短 | Podcast, FlowSpeech |
| 91002 | 内容违规 无法显示 | Podcast, FlowSpeech |
| 91003 | 查询失败 | Podcast, FlowSpeech |
| 91004 | 无法获取内容 | Podcast, FlowSpeech |
| 91005 | 无法获取URL内容 | Podcast, FlowSpeech |
| 91006 | 处理失败 | Podcast, FlowSpeech |
| 91007 | 文件体积过大 | Podcast, FlowSpeech |
所有错误都在 HTTP 200 响应中返回,通过 code 字段区分:
{
"code": 21007,
"message": "Invalid user APIKey",
"data": {}
}