已知限制
在决定接入 Beta 之前请先读这一章。这些是约束,不是 bug,其中若干条是刻意为之的。
平台
- 仅支持 Expo SDK 57 与 React Native 0.86,且必须是新架构。 不支持旧架构。
- 仅 iOS 16.4+ 与 Android API 24+。 不支持更低版本。
- 只能用 Development Build。 Expo Go 无法加载 ONNX Runtime,且没有绕过的办法。
运行时行为
- 每个 client 同时只能跑一次合成。 并发第二次调用会抛
BUSY。没有流式 —— 你要么拿到完整的 WAV,要么什么都没有。 - 没有运行时模型下载。 模型必须在构建期通过
@optimalai/model-tools就位, App 无法在首次启动时拉取。 - WAV 播放是宿主 App 的责任。 SDK 从不播放、缓存、上传或删除它写出的文件。
文本
- 词典外的英文单词会以
INVALID_TEXT失败。 未内置 eSpeak,未知单词没有音素 回退。中文字符若不在词典中,同样失败。 - 单次合成上限 2000 个 code point,单段 300 个,单个模型窗口 510 个 token。
- 中文韵律与标点停顿因音色而异。 只有 Recommended 音色通过了 Beta 语料。
分发
- 仅限私有 Beta。 包以 restricted 形式发布在 npm 的
@optimalaiscope 下, dist-tag 为beta,没有latest。 - 生产模型 CDN 尚未上线。 在 OptimalAI 注入生产 HTTPS URL 之前,staging 场景 必须传
--base-url或设置OPTIMALAI_MODELS_BASE_URL。 - Beta 受上游修复阻塞。 私有 Beta 的发布被卡住,直到官方
onnxruntime-react-native发布包含 Gradle 兼容修复、且无需 pnpm patch 就能构建 的版本。
许可
SDK 自身代码为 Apache-2.0。每个模型包都刻意排除了 eSpeak 与 Piper 数据,以避免 GPL 静态依赖。
这不构成法律意见
排除 GPL 组件反映的是工程意图,而非已完成的商业许可审查。正式商业分发之前,请让 你自己的法务团队审阅。
目前还没有的东西
播放、运行时下载、流式、Flutter、ExecuTorch 都不在本 Beta 的范围内。如果你需要 其中某一项,请告诉我们 —— 路线图由 Beta 反馈驱动。