使用文档
环境变量 · 前端 API · 导演语法 · 音色与 style/role · OpenAI curl
环境变量
| 变量 | 必填 | 说明 |
|---|---|---|
WEB_PASSWORD | 是(前端) | 未配置则拒绝所有前端页与受保护 API |
API_KEY | 是(curl/OpenAI) | Authorization: Bearer … |
LOG_INTERNAL_SECRET | 否 | Cloud→Edge 写日志;默认回退 WEB_PASSWORD |
HISTORY_SECRET | 否 | KV 加密密钥;默认回退 WEB_PASSWORD |
KV:绑定命名空间到本项目,变量名必须为 TTS_HISTORY。历史由浏览器在合成成功后调用 POST /api/log 写入(加密)。
history_index 是历史索引列表(id / 时间 / 来源 / 摘要),每条详情另存为 hist_* 密文。索引最多保留约 500 条(再多会丢弃最旧),不会无限涨;单 value 上限约 25MB,当前体量远低于上限。
环境变量 MIMO_API_KEY 或 MIMO_API_KEYS(多个用逗号/换行分隔)用于 小米 Mimo 页服务端轮询。
前端内部 API
| 路径 | 鉴权 | 说明 |
|---|---|---|
| POST /api/auth | — | 校验 WEB_PASSWORD,写 Cookie |
| POST /api/tts | WEB_PASSWORD | 原生 Edge-TTS 合成 |
| POST /api/director | WEB_PASSWORD | 导演拼接(段数≤25,总字≤8000) |
| POST /api/proxy-tts | WEB_PASSWORD | 外部 TTS 可选代理 |
| GET /api/voices | WEB_PASSWORD | 语言/音色/能力清单 |
| GET|POST /api/history | WEB_PASSWORD | 历史列表/删除(Edge+KV) |
| GET|POST /api/log | WEB_PASSWORD 或内部 Token | 写历史 / KV 探测 |
| GET /api/health | — | Cloud 健康与 Microsoft endpoint |
导演模式语法
- 用单独一行的
---分段 - 每段第一行可选配置:
key=value,逗号分隔 - 支持:
voiceratepitchstylerolestyleDegree - 未写的项继承上一段;第一段默认
zh-CN-XiaoxiaoNeural、0% - 上限:段数 ≤ 25,总字数 ≤ 8000
voice=zh-CN-XiaoxiaoNeural, rate=+0%, pitch=0%, style=cheerful 大家好,欢迎收听。 --- voice=zh-CN-YunxiNeural, rate=-5%, style=narration-relaxed 第二段换人声。 --- pitch=+5% 第三段只改音调。
JSON:POST /api/director,body {"segments":[{"text":"…","voice":"…","rate":"0%","pitch":"0%","style":"general"}]}。
style / role / styleDegree 生效关系
- 语速 rate、音调 pitch:几乎所有 Neural 音色可用。
- style:通过 SSML
mstts:express-as style;晓晓/云希/云扬等中英主流音色支持较多;方言音色(辽宁/陕西等)通常仅 general。 - styleDegree:仅在音色支持 style 时可选(0.5~2.0);不支持时界面禁用。
- role:角色扮演;主要对部分中文多情感音色有效;不支持时界面禁用。
- 试听页会按当前音色自动灰显不支持的选项。完整内置音色见下方表格;能力表由
/api/voices的capabilities下发。
常见 style 取值:general assistant chat cheerful sad angry gentle lyrical newscast customerservice whispering 等(见试听页下拉)。
常见 role:Girl Boy YoungAdultFemale YoungAdultMale OlderAdultFemale OlderAdultMale SeniorFemale SeniorMale。
WebUI 内置音色(完整表)
加载中…
OpenAI 兼容 API(curl 后台服务)
基址:你的站点源。鉴权:环境变量 API_KEY。
标准
curl -X POST 'https://YOUR_DOMAIN/v1/audio/speech' \
-H 'Authorization: Bearer $API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"model": "tts-1",
"input": "你好,世界",
"voice": "alloy",
"speed": 1.0,
"pitch": 1.0
}' \
--output speech.mp3
流式 stream(仅 API/curl;WebUI 无流式按钮)
curl -X POST 'https://YOUR_DOMAIN/v1/audio/speech' \
-H 'Authorization: Bearer $API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"model": "tts-1",
"input": "流式示例",
"voice": "nova",
"stream": true
}' \
--output streaming.mp3
模拟音色 ↔ Edge-TTS 实际音色
| OpenAI 名 | Edge 音色 | 描述 |
|---|---|---|
| shimmer | zh-CN-XiaoxiaoNeural | 晓晓 · 温柔女声 · 通用新闻/对话 |
| alloy | zh-CN-YunyangNeural | 云扬 · 专业男声 · 播音/解说 |
| fable | zh-CN-YunjianNeural | 云健 · 沉稳男声 · 体育/激情 |
| onyx | zh-CN-XiaoyiNeural | 晓伊 · 活力女声 · 卡通/年轻 |
| nova | zh-CN-YunxiNeural | 云希 · 清朗男声 · 小说/旁白 |
| echo | zh-CN-liaoning-XiaobeiNeural | 晓北 · 方言女声 · 东北口音 |
也可在 voice 中直接填 Edge 原名。
外部 TTS Playground
- Base URL 填到
/v1,再选audio/speech或chat/completions。 chat/completions会自动设置messages(解决 Mimo 等 “messages is not set”)。- 推荐勾选服务端代理(与 LobeChat / Open WebUI 同源后端代发类似,规避 CORS)。
- 本页不写历史。
说明
- TTS 合成在 Cloud Functions;历史在 Edge + KV。
- 历史只存加密后的请求元数据,不存音频;无分享功能。