免费文字转语音 - 浮云梦配音
智能问答

📖 开放接口 API 文档

本站对外开放接口当前支持:微软文字转语音(直接生成 / 批量生成)与字幕生成两类能力, 按账号积分计费、会员折扣自动生效。调用方需使用本站账号(个人中心 →「开放接口 API」分区)生成 API Key。
⚠️ 重要提示(请先阅读):
本接口可能在某个时间进行维护,维护频率与维护时间都不确定,目前通常在每天中午 12 点左右(当前维护窗口:12:00 - 13:00)。 维护期间生成类接口会返回 MAINTENANCE(HTTP 503),收到该返回请等待 1~2 分钟后再重试。 因此,本接口只适合个人开发者使用,或者和其他接口配合使用(例如:失败自动重试、任务队列错峰提交等),不适合对可用性要求极高的生产业务。

🔑 获取 API Key

API Key 绑定本站账号,按账号积分计费。请先 登录 / 注册, 然后到 个人中心 → 开放接口 API 一键生成。

📌 计费规则(当前价格如下)

服务计费方式非会员价格月会员 (9折)年会员 (8折)永久会员 (6折)
文字转语音 按字数 10 积分 / 1万字
1积分 = 1000字,不足一档按一档(向上取整)
10 × 0.9 10 × 0.8 10 × 0.6
字幕生成 按次 10 积分 / 次 9 积分 / 次 8 积分 / 次 6 积分 / 次
  • 100 积分 = 1 元;单次不足 1000 字也扣 1 积分(向上取整);会员价按「基础积分 × 折扣」后向上取整,最低 1 积分。
  • 退费承诺:生成失败自动退回本次积分(字幕/直接合成失败即时退费;批量任务最终失败或任务失效也会自动退费一次)。退费以「+积分」出现在个人中心充值记录,说明以「开放接口-…自动退回」开头。

🚀 接口总览

动作 action类型说明计费 / 限频
infoGETPOST查询账号余额、折扣、限额、维护状态免费 / 不限
voicesGETPOST获取微软音色列表(优先微软官方 voices/list 实时接口,含 StyleList/RolePlayList)免费 / 不限
ttsPOST文字转语音-直接生成(支持纯文本 / SSML;返回音频地址,或 output=binary 直接返回音频字节)按字数 / 计入语音限频
batch_createPOST文字转语音-批量生成(异步,返回 batch_id)按总字数 / 计入语音限频
batch_statusGETPOST批量任务状态轮询(任务失败会在此自动退费)免费 / 不限
batch_resultGETPOST批量任务完成结果(音频地址列表)免费 / 不限
srtPOST字幕生成:上传 mp3 / wav / mp4 → SRT 字幕按次 / 计入字幕限频

⚠ 频率限制:文字转语音每分钟 ≤ 60 次(tts / batch_create 均计入); 字幕生成每分钟 ≤ 60 次两种限制分开计数、互不共用。 info / voices / 状态轮询接口不限频。超出限制返回 RATE_LIMITED(HTTP 429)。

📝 通用说明

统一请求地址:https://fuym.cn/api/open_api.php(JSON 接口);字幕生成需用 multipart 表单上传文件。

鉴权(所有请求都必须携带其一)

api_key=fuym_xxxxxxxx                     # 请求参数
X-Api-Key: fuym_xxxxxxxx                  # 请求头
Authorization: Bearer fuym_xxxxxxxx       # 请求头

通用返回字段说明

字段类型说明
successboolean是否成功。失败时通常为 false,同时带 code 与 message
codestring业务码:成功为 OK,失败见「返回码表」(如 MAINTENANCE / RATE_LIMITED)
messagestring可读提示信息(失败时说明原因,供直接展示给终端用户)
request_idstring本次请求唯一ID,形如 oa_时间戳_随机串;排查问题/后台核对时可提供
data / 业务字段object各接口特有的业务数据,字段含义见各接口「返回字段说明」

📡 1) info —— 查询账号与接口信息

快速校验 Key 是否有效,并查看当前价格、折扣、限额与维护状态(可据此实现「价格变化自动适配」)。

请求参数说明

参数类型必填默认字段说明
actionstring-固定为 info
api_keystring-API Key(也可用请求头)
curl "https://fuym.cn/api/open_api.php?action=info" -H "X-Api-Key: fuym_xxxxxxxx"

返回字段说明

字段类型说明
data.account.emailstring绑定账号的邮箱
data.account.balance_creditsint当前积分余额
data.account.membershipstring会员类型:none / monthly / yearly / permanent
data.account.membership_namestring会员中文名(如 年会员)
data.account.discount_descstring本账号当前折扣描述(如 年会员8折 / 无折扣)
data.pricing.credits_per_10000_charsint非会员 1 万字单价(积分)
data.pricing.chars_per_creditint1 积分 = 多少字
data.pricing.srt_cost_creditsint字幕生成每次单价(积分)
data.pricing.discountobject{monthly, yearly, permanent} 三档折扣百分数(90=9折)
data.limits.tts_direct_max_charsint直接合成单次上限(字)
data.limits.batch_max_charsint批量合成单次总字数上限
data.limits.rate_per_minuteobject{tts: 语音每分钟次数, srt: 字幕每分钟次数}(分开计数)
data.maintenance.active_nowboolean当前是否处于维护(维护期间生成接口返回 MAINTENANCE)
data.maintenance.windowstring每日定时维护窗口(如 12:00 - 13:00)
data.maintenance.noticestring维护提示文案(建议在您产品内展示)
data.endpoints.basestring接口统一入口地址

🎤 2) voices —— 音色列表

获取全部可用微软音色。默认优先调用微软官方 voices/list 接口(与您账号所在区域实际可用音色一致,最全、实时),失败时回退站内音色数据并在响应中标识 complete=false。列表服务端缓存 1 天,可用 refresh=1 强制刷新。

请求参数说明

参数类型必填默认字段说明
actionstring-固定为 voices
api_keystring-API Key(也可用请求头)
localestring全部按地区前缀过滤,如 zh-CN / en-US / zh(不区分大小写)
refreshint01 时强制重新从微软拉取并刷新缓存
# 获取全部音色
curl "https://fuym.cn/api/open_api.php?action=voices" -H "X-Api-Key: fuym_xxxxxxxx"

# 只看中文(普通话)音色
curl "https://fuym.cn/api/open_api.php?action=voices&locale=zh-CN" -H "X-Api-Key: fuym_xxxxxxxx"

返回字段说明

字段类型说明
totalint返回的音色数量(locale 过滤后)
filtered_by_localestring命中的 locale 过滤值(未过滤为空字符串)
completeboolean是否完整(true=微软官方全量;false=回退站内数据,可能不全)
sourcestring数据来源:azure(官方)/ file(站内)/ cache(旧缓存)
noticestring数据来源说明文案
voices[]array音色数组,每项字段见下表

voices[] 单个音色字段说明

字段类型说明
ShortNamestring音色唯一ID,用于 tts / batch_create 的 voice 参数,如 zh-CN-XiaoxiaoNeural
DisplayNamestring英文显示名
LocalNamestring本地语言显示名(如 晓晓)
Localestring语言地区码(如 zh-CN / en-US)
LocaleNamestring语言地区英文名
Genderstring性别:Female / Male
SampleRateHertzstring采样率(Hz),如 24000 / 48000
VoiceTypestring模型类型:Neural / NeuralHD 等
Statusstring状态:GA(正式可用)/ Preview(预览,可能不稳定,慎用)
WordsPerMinutestring参考语速(字/分钟)
StyleListarray<string>(可缺省)该音色支持的说话风格(用于 tts / batch_create 的 style 参数),无风格时缺省
RolePlayListarray<string>(可缺省)该音色支持的角色扮演类型(预留;当前接口暂未开放 role 参数)

🎧 3) tts —— 文字转语音(直接生成)

将文本/SSML 直接合成语音并同步返回。返回支持两种方式:默认返回音频地址(JSON),也可用 output=binary 直接返回音频字节。单次有效文本最多 1000 字,超过请用批量生成。

请求参数说明

参数类型必填默认字段说明
actionstring-固定为 tts
api_keystring-API Key(也可用请求头)
textstring-待合成内容。纯文本:换行/句读自然断句;SSML:需以 <speak 开头(text_type 默认 auto 会自动识别),按合法微软 SSML 原样发送(可写 prosody/break/express-as 等,语速停顿由标签控制)。上限:有效文本 ≤ 1000 字,SSML 含标签原始内容 ≤ 50000 字符
text_typestringauto内容类型:auto(默认,text 以 <speak 开头自动按 SSML)/ plain(强制按纯文本,遇 <> 会转义)/ ssml(强制按 SSML 解析,必须含 <speak></speak>
voicestring纯文本必填-音色 ShortName(voices 接口获取),如 zh-CN-XiaoxiaoNeural。SSML 模式下可留空(音色由 SSML 内 <voice> 控制,不传也生效)
outputstringurl返回方式:url(默认,JSON 返回音频地址)/ binary(成功时直接返回音频二进制,Content-Type 为 audio/mpeg 或 audio/wav;失败仍返回 JSON 错误)
stylestring说话风格:取该音色 StyleList 中的值。仅纯文本模式生效(SSML 请自行用 mstts:express-as 控制)
ratestring正常语速(仅纯文本):百分比(+10% / -20%)或倍率(0.5~2 小数,如 1.2)或 x-slow 等常量
pitchstring0%音调(仅纯文本):范围 -50 ~ +50 的整数或带 %(如 +5% / -5%)
volumestring75音量(仅纯文本):0 ~ 200 的整数或带 %
formatstringaudio-16khz-32kbitrate-mono-mp3输出格式。不填默认最低质量(16kHz / 32kbps 单声道 MP3),列表见下

支持的 format(默认最低质量)

audio-16khz-32kbitrate-mono-mp3 ⭐默认audio-16khz-64kbitrate-mono-mp3audio-16khz-128kbitrate-mono-mp3
audio-24khz-48kbitrate-mono-mp3audio-24khz-96kbitrate-mono-mp3audio-24khz-160kbitrate-mono-mp3
audio-48khz-96kbitrate-mono-mp3audio-48khz-192kbitrate-mono-mp3
WAV(format 以 riff 开头时返回 .wav):riff-8khz-16bit-mono-pcm / riff-22050hz-16bit-mono-pcm / riff-24khz-16bit-mono-pcm / riff-44100hz-16bit-mono-pcm / riff-48khz-16bit-mono-pcm
# 纯文本(默认返回音频 URL)
curl -X POST "https://fuym.cn/api/open_api.php" \
  -H "Content-Type: application/json" \
  -d '{"action":"tts","api_key":"fuym_xxxxxxxx","text":"你好,欢迎使用浮云梦配音开放接口。","voice":"zh-CN-XiaoxiaoNeural"}'

# SSML(

SSML 说明:① 以 <speak 开头的 text 会自动按 SSML 处理,也可用 text_type 显式指定;② SSML 模式仅支持微软 TTS 支持的 SSML 标签,语法错误会返回 INVALID_SSML 或合成失败(失败自动退费);③ SSML 模式不参与本站的自动分段,直接单次提交(建议有效文本不超过 1000 字);④ 计费按去除标签后的有效文本字数计算,与纯文本同价。

返回字段说明(output=url 时)

字段类型说明
charsint计费字数:纯文本=原文长度;SSML=去除标签后的有效文本字数
credits_usedint本次实际扣费积分(已含会员折扣,向上取整)
credits_balanceint扣费后剩余积分
discountstring本次使用的折扣说明(如 年会员8折;非会员为空字符串)
text_typestring本次实际使用的类型:plain / ssml
audio_urlstring音频完整下载地址(有效期约 10 分钟,请及时转存;.mp3 或 .wav,由 format 决定)
formatstring本次实际使用的输出格式
noticestring提示文案(有效期等)

output=binary 说明:成功时响应不是 JSON,而是原始音频字节流(Content-Type:mp3 为 audio/mpeg,wav 为 audio/wav;带 Content-Length 与 Content-Disposition 文件名),可直接落盘/播放。任何失败(如参数错误、积分不足、维护、限流)仍返回 JSON + code。如需同时拿积分/余额信息,请改用默认 url 模式。

💾 4) 批量生成(batch_create / batch_status / batch_result,10 万字以内异步)

适合长文本(小说/文稿/长视频配音)。提交时按总字数一次性扣费(≤ 100,000 字),随后用 batch_id 轮询状态、完成后取音频。

自动退费规则:提交失败即时退费;任务最终状态为 Failed / Error / DispatchedFailed / PartialSucceeded,或任务失效(查询返回 404 且此前未成功)时,系统自动退回提交时实扣积分一次(幂等,不会重复退)。退费记录见个人中心充值记录(说明以「开放接口-批量语音任务失败自动退回」开头);对应轮询响应带 refunded=truerefund_credits 字段。

4.1 提交 batch_create —— 请求参数说明

参数类型必填默认字段说明
actionstring-固定为 batch_create
api_keystring-API Key(也可用请求头)
textsarray<string>是*-字符串数组,每段一段音频(顺序对应结果);段数 ≤ 200。也可用单条 text(string)提交一段
voicestringzh-CN-XiaoxiaoNeural默认音色(texts 每段也可用对象 {text, voice, style} 单独指定)
stylestring默认说话风格(同 tts)
ratestring正常语速(同 tts)
pitchstring0%音调(同 tts)
volumestring75音量(同 tts)
formatstringaudio-16khz-32kbitrate-mono-mp3输出格式;不填默认最低质量(非法值自动回落默认)
curl -X POST "https://fuym.cn/api/open_api.php" \
  -H "Content-Type: application/json" \
  -d '{
        "action":"batch_create","api_key":"fuym_xxxxxxxx","voice":"zh-CN-YunxiNeural",
        "texts":["第一段文字……","第二段文字……"]
      }'

batch_create 返回字段说明

字段类型说明
batch_idstring任务ID,后续 batch_status / batch_result 用它查询
overall_statusstring创建后初始状态(如 NotStarted / Running)
charsint本次总字数(计费字数)
segmentsint提交文本段数
credits_usedint本次扣费积分(含折扣)
credits_balanceint扣费后余额
discountstring折扣说明(非会员为空)
noticestring后续流程与自动退费说明

4.2 轮询 batch_status —— 请求参数说明

参数类型必填字段说明
actionstring固定为 batch_status
api_keystringAPI Key
batch_idstringbatch_create 返回的任务ID

建议每 3~5 秒轮询一次。overall_status 常见值:NotStarted / Running / Dispatched / Succeeded / Failed(Failed / Error / DispatchedFailed / PartialSucceeded 视为失败,会触发自动退费)。

curl -X POST "https://fuym.cn/api/open_api.php" \
  -H "Content-Type: application/json" \
  -d '{"action":"batch_status","api_key":"fuym_xxxxxxxx","batch_id":"fuymoa_xxx_1"}'

batch_status 返回字段说明(运行中/成功)

字段类型说明
batch_idstring任务ID(回显)
overall_statusstring任务状态:Running / Succeeded / Failed 等
created_date_time / last_action_date_timestring创建 / 最后更新时间(Azure 返回的时间串)
propertiesobject|null任务扩展属性(Azure 原样返回)
outputsobject|null任务输出信息(Succeeded 后含 result 结果地址)
hintstring下一步操作提示

失败响应:code=BATCH_FAILED;若本次触发自动退费,额外带 refunded=truerefund_credits(退回积分)、chars,message 会注明「已自动退回 N 积分」。任务 404 时 code=BATCH_NOT_FOUND(此前未成功则同样已自动退费并带 refunded 字段)。

4.3 取结果 batch_result —— 请求参数说明

参数类型必填字段说明
actionstring固定为 batch_result
api_keystringAPI Key
batch_idstring任务ID(Succeeded 后再调用)

batch_result 返回字段说明(Succeeded 时)

字段类型说明
batch_idstring任务ID(回显)
overall_statusstringSucceeded
filesint结果音频数量
audio_urlsarray<string>音频地址列表,顺序与提交 texts 一致;链接有效期约 10 分钟,请及时保存
noticestring提示文案

任务尚未完成时返回 code=BATCH_PENDING(success=false,继续轮询即可);失败 / 失效遵循与 batch_status 相同的自动退费规则。

🗄️ 5) srt —— 字幕生成(上传 mp3 / wav / mp4,每次 10 积分)

上传音频(mp3 / wav)或视频(mp4),自动识别语音并生成 SRT 字幕(含时间轴)。按计费(非会员 10 积分/次,会员按折扣优惠)。文件大小受服务器限制(一般在 200MB 以内,以服务器配置为准)。

请求参数说明(multipart/form-data)

参数类型必填默认字段说明
actionstring-固定为 srt
api_keystring-API Key(multipart 表单字段)
filefile-音频/视频文件,仅支持 mp3 / wav / mp4;mp4 服务端自动提取音轨
translatestring不翻译翻译目标语言:填写下方「翻译目标语言表」代码(如 en / en-US);传了则字幕文本为翻译结果
typestringsrtsrt(默认)返回字幕文件下载地址;stt 只返回识别文本(同样按次计费)
contentint01 时把 SRT 全文放入返回的 content 字段(便于直接使用/入库)

翻译目标语言表(未列出的代码会透传给微软,是否支持以微软返回为准)

翻译到可填代码(示例)翻译到可填代码(示例)
中文(简体/通用)zh / zh-CN / zh-Hans中文(繁体)zh-Hant / zh-TW / zh-HK
英语en / en-US / en-GB / en-AU / en-IN / en-CA日语ja / ja-JP
韩语ko / ko-KR法语fr / fr-FR / fr-CA
德语de / de-DE西班牙语es / es-ES / es-MX
葡萄牙语pt / pt-BR / pt-PT意大利语it / it-IT
俄语ru / ru-RU阿拉伯语ar / ar-SA / ar-EG / ar-AE
印地语hi / hi-IN泰语th / th-TH
越南语vi / vi-VN印尼语id / id-ID
马来语ms / ms-MY荷兰语nl / nl-NL
波兰语pl / pl-PL土耳其语tr / tr-TR
乌克兰语uk / uk-UA瑞典语sv / sv-SE
挪威语nb / nb-NO / no-NO丹麦语da / da-DK
芬兰语fi / fi-FI捷克语cs / cs-CZ
匈牙利语hu / hu-HU罗马尼亚语ro / ro-RO
保加利亚语bg / bg-BG希伯来语he / he-IL
希腊语el / el-GR克罗地亚语hr / hr-HR
斯洛伐克语sk / sk-SK斯洛文尼亚语sl / sl-SI
爱沙尼亚语et / et-EE立陶宛语lt / lt-LT
拉脱维亚语lv / lv-LV冰岛语is / is-IS
加泰罗尼亚语ca / ca-ES波斯语fa / fa-IR

调用示例

# 基础:上传音频生成中文字幕(并返回字幕全文)
curl -X POST "https://fuym.cn/api/open_api.php" \
  -F "action=srt" -F "api_key=fuym_xxxxxxxx" \
  -F "file=@audio.mp3" -F "content=1"

# 翻译为英文
curl -X POST "https://fuym.cn/api/open_api.php" \
  -F "action=srt" -F "api_key=fuym_xxxxxxxx" \
  -F "file=@audio.mp3" -F "translate=en-US" -F "content=1"

# 只取识别文本(不生成字幕文件)
curl -X POST "https://fuym.cn/api/open_api.php" \
  -F "action=srt" -F "api_key=fuym_xxxxxxxx" -F "file=@audio.wav" -F "type=stt"

返回字段说明(type=srt 时)

字段类型说明
typestring固定 srt
downloadstringSRT 文件下载地址(UTF-8 编码;有效期约 10 分钟,请及时保存)
contentstring(可缺省)仅当请求传 content=1 时返回:SRT 全文(序号 + 时间轴 + 文本)
credits_usedint本次扣费积分(含折扣)
credits_balanceint扣费后余额
discountstring折扣说明(非会员为空)
noticestring提示文案

type=stt 时:返回 type=stttext(识别/翻译后的纯文本)。识别失败(如音频无有效语音)返回 NO_SPEECH 并自动退费。

🚫 返回码 / 错误说明

HTTPcode含义 / 处理建议
200OK成功(含 BATCH_PENDING 轮询中间态)
200BATCH_FAILED批量任务失败;若带 refunded=true 表示已自动退费(见 refund_credits)
400UNKNOWN_ACTION / MISSING_ACTIONaction 缺失或错误
400EMPTY_TEXT / TEXT_TOO_LONG / INVALID_VOICE / INVALID_SSML / INVALID_BATCH_ID文本 / SSML / 音色 / 参数错误,按 message 调整后重试(INVALID_SSML:SSML 缺少 <speak> 或 </speak>)
400NO_FILE / UPLOAD_ERROR / INVALID_FILE字幕接口文件问题:仅支持 mp3 / wav / mp4,或上传失败
401INVALID_API_KEYKey 无效 / 不存在:核对 Key 或在个人中心重新生成
402INSUFFICIENT_CREDITS积分不足:到个人中心充值后重试
403API_KEY_DISABLEDKey 已被停用:重新生成
404BATCH_NOT_FOUND批量任务不存在 / 已过期:此前未成功会自动退费一次(带 refunded 字段),否则请重新提交
422NO_SPEECH字幕识别无有效语音:积分已自动退回
429RATE_LIMITED超过每分钟频率限制:按 retry_after_seconds 等待后重试
502SYNTH_FAILED / SRT_FAILED / BATCH_CREATE_FAILED / CONVERT_FAILED / UPSTREAM_ERROR生成失败(多为上游语音服务异常):直接 / 字幕 / 批量提交失败均已自动退回积分,请稍后重试或更换参数
503MAINTENANCE接口维护中:等待 1~2 分钟后重试(返回含 retry_after_seconds

成功响应中的 credits_used 为实际扣费(已含折扣),credits_balance 为扣费后余额;扣费 / 退费明细同步写入个人中心,可随时核对。

💡 其他说明

  • 调用接口须遵守本站相关规定,禁止用于违法违规用途;本站对滥用行为保留追责权利。
  • 音频 / 字幕下载链接有效期约 10 分钟,请生成后立即下载 / 转存到自己的存储。
  • 直接合成(tts)支持纯文本或 SSML(text_type 参数 / <speak 开头自动识别;SSML 由调用方自行保证合法);批量生成(batch_create)的文本为纯文本,不支持 SSML。纯文本如需停顿可自行加入句读 / 换行,SSML 可用 break 等标签控制。
  • 音色风格:tts / batch_create 的 style 参数请填该音色 StyleList 中存在的值(用 voices 接口查询)。
  • 批量任务结果服务器会缓存(按 batch_id 目录),重复调用 batch_result 直接返回已缓存地址。
  • 接口适合个人开发者自助使用;高峰或维护时段请配合重试机制。
  • 价格 / 折扣 / 限额 / 维护状态请以 info 接口实时返回为准(建议每次调用前或定期查询一次)。