Files
infiplot-web/docs/xiaomi-tts-key.md
T
yuanzonghao b0b2e922d3 feat(web): optional bring-your-own Xiaomi MiMo TTS key (browser-side synthesis)
Public users share one server TTS key, so Xiaomi's per-key RPM/TPM limits
cause silent playback under concurrency. This adds an OPTIONAL path: a user
can store their own Xiaomi MiMo key in the browser and synthesize voice
client-side against Xiaomi's CORS-open endpoints. The key lives only in
localStorage and is never sent to or logged by our server; the shared server
key still serves everyone who does not opt in.

- components/TtsKeyModal.tsx: shared key modal (key-family + region picker),
  reused by both the home and play pages
- app/play/page.tsx: silence nudge moved beside the mute toggle; modal opens
  in place instead of redirecting to the home page
- app/page.tsx: home page consumes the shared modal + readStoredTtsConfig
- lib/clientTtsConfig.ts, lib/ttsPresets.ts: browser config + region presets
- app/api/{start,scene,insert-beat}: thread per-request voice; lib/types update
- docs/xiaomi-tts-key.md + README note

Verified with tsc --noEmit (exit 0).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-04 16:58:55 +08:00

101 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 自带配音 Key 教程(小米 MiMo TTS
InfiPlot 的角色配音由小米 **MiMo-V2.5-TTS** 模型实时合成。本页教你免费申请一个属于自己的 API Key,
填进 InfiPlot 后即可获得**稳定的配音、更低的延迟**——而且这个 Key **只存在你的浏览器里,绝不会经过我们的服务器**
> 本教程随仓库维护,链接长期有效。
---
## 为什么需要自带 Key
InfiPlot 默认用一把**公共的服务器 Key** 给所有人配音。小米对语音模型按 **RPM(每分钟请求数)/ TPM(每分钟 Token 数)** 做了限额,而且这个额度并不高。当很多人**同时**游玩时,公共 Key 很容易撞到限额,结果就是——
- 剧情、画面都正常,**唯独没有声音**(静音);
- 或者配音偶尔断断续续、要等很久。
填入你**自己的**免费 Key 后,你用的是自己独立的额度,不再和其他人抢,于是:
-**配音稳定**,不再随机静音;
-**延迟更低**(可就近选区域,少一跳);
-**完全免费**——MiMo-V2.5-TTS 目前限时 **0x 计费**,不消耗套餐额度。
这是一个**可选增强**。不填也能正常玩,只是高峰期更容易遇到静音。
---
## 一、免费申请 API Key
1. 打开小米 MiMo 开放平台并注册 / 登录:<https://platform.xiaomimimo.com>
- 注册即可领取免费额度(Token Plan)。
2. 进入**控制台 → 套餐管理**<https://platform.xiaomimimo.com/console/plan-manage>
3. 在该页面找到并**复制你的专属 API Key**。
- 套餐 Key 形如 `tp-xxxxxxxx`;按量 Key 形如 `sk-xxxxxxxx`。两者相互独立、不能混用,**任选一个有效的即可**。
- 妥善保管,**不要公开分享**这把 Key。
> MiMo-V2.5-TTS 系列当前为限时 **0x 计费**(不消耗套餐 Credits),所以配音这件事基本是免费的。具体以平台公告为准。
---
## 二、选择 Key 类型(套餐再选区域)
小米有**两类 Key**,对应不同的端点。在 InfiPlot 里**先选类型**——看 Key 前缀就能判断:`tp-` 是套餐、`sk-` 是按量,两者不能混用。
**① 套餐 Token Plan`tp-` 开头)** —— 再选一个**区域节点**,对应小米不同地区的 Token Plan:
| 区域 | 说明 | 端点 |
| --- | --- | --- |
| 新加坡 · Singapore | 亚太地区推荐 | `https://token-plan-sgp.xiaomimimo.com/v1` |
| 中国大陆 · China | 中国大陆推荐 | `https://token-plan-cn.xiaomimimo.com/v1` |
| 欧洲 · Amsterdam | 欧洲推荐 | `https://token-plan-ams.xiaomimimo.com/v1` |
选**离你最近**、且**与你套餐订阅区域一致**的那个——延迟最低、最不容易出错。一般跟着你注册时的区域走即可。
**② 按量付费 Pay-as-you-go`sk-` 开头)** —— 使用统一端点 `https://api.xiaomimimo.com/v1`**无需选择区域**。
---
## 三、在 InfiPlot 里填写
1. 回到 InfiPlot **首页**,在选项区下方点击 **「经常没声音?自带配音 Key(可选)」**。
2. 在弹窗里:
- **选择 Key 类型**(套餐 / 按量);选「套餐」时再**选区域**,选「按量」则无需选区域;
- **粘贴你的 API Key**
3. 点击 **「保存并启用」**。按钮会变成 **「自带配音 Key · 已启用」**,「语音配音」也会自动切到「开启」。
4. 开始游玩——配音将由你的浏览器**直连小米**完成。
想停用时,再次打开弹窗点击 **「停用并清除」** 即可,本地保存的 Key 会被一并删除。
---
## 四、隐私说明
- 你的 API Key **只保存在你当前浏览器的 `localStorage`**(键名 `infiplot:tts`)里。
- 启用后,配音请求由**你的浏览器直接发给小米**对应的端点,携带你的 Key。
- 我们的服务器**完全不参与**这条链路,**既看不到也不会记录**你的 Key。
- 换设备 / 换浏览器 / 清缓存后需要重新填写,这是预期行为。
---
## 五、常见问题
**Q:填了 Key 还是没声音?**
- 确认「语音配音」是「开启」状态;
- 确认 **Key 类型选对了**`tp-` 选「套餐」、`sk-` 选「按量付费」,选错端点会一直失败;
- 确认 Key 没填错、没多余空格,且仍有额度;
- 套餐 Key 可换一个**区域**试试(区域与订阅地不匹配也可能失败);
- 打开浏览器开发者工具的 Network 面板,看对 `*.xiaomimimo.com` 的请求返回了什么错误。
**Q:会产生费用吗?**
- MiMo-V2.5-TTS 当前限时 0x 计费,正常游玩配音不消耗套餐额度。最终以小米平台的计费公告为准。
**Q`tp-` 和 `sk-` 用哪个?**
- 看你手里是哪种 Key 就选哪种类型——`tp-` 选「套餐 Token Plan」、`sk-` 选「按量付费」。两者不能混用,选错端点会鉴权失败。
**Q:我的 Key 安全吗?**
- 安全。它只存在你本地浏览器、只发给小米官方端点,不经过 InfiPlot 服务器。但请勿把 Key 贴到公开场合或分享给他人。
---
有问题欢迎在 [GitHub Issues](https://github.com/zonghaoyuan/infiplot/issues) 反馈。