启动回调中立即结束会话
Session 发布 → onStart → writeAudio / finish / cancel → 回调门
onStart 表示会话已经可用,调用方可以在回调内同步结束或取消。适配层用 generation 与 gate 保护当前会话,防止旧 native 回调进入下一场会话,或在资源释放后继续返回结果。
原生离线语音、模型接口与多平台交付
离线语音 SDK 面向 Android 与 HarmonyOS 原生应用,提供流式 ASR 和 TTS,并封装模型安装、许可证、会话创建和回调。底层复用 C++、sherpa-onnx 与 ONNX Runtime,平台层分别使用 Kotlin / JNI 和 ArkTS / N-API。
跨端接口相同不意味着线程和生命周期相同。模型属于进程级资源,会话持有自己的音频、解码和终态;业务回调又可能同步调用写入、结束或取消。SDK 需要在桥接、核心会话和业务适配层共同维护这一契约。
音频鉴伪作为独立模型服务纳入同一交付体系,提供文件输入、预处理、模型推理与检测结果接口。端侧语音 SDK、Windows 本地服务和私有 Docker 服务分别运行,复用模型资产校验、授权与制品验证方法。
接口适配、HandlerThread 调度、原生依赖与模型资源随宿主集成。
Promise 串行队列、音频分发与回调门控制 native 重入和生命周期。
Recognizer、Stream、VAD、标点、ITN、声纹和模型资产校验。
安装器解出解释器、依赖、模型和服务,注册 Windows Service。
两种引擎独立构建、独立哈希与真机验证;ONNX 候选仍由 Python 承载。
模型资产与服务镜像组织为独立交付,不用 Windows 验收替代服务端验证。
Session 发布 → onStart → writeAudio / finish / cancel → 回调门
onStart 表示会话已经可用,调用方可以在回调内同步结束或取消。适配层用 generation 与 gate 保护当前会话,防止旧 native 回调进入下一场会话,或在资源释放后继续返回结果。
partial → isFinal → 继续输入;finish → isLast → onComplete
endpoint 可以产生多条 isFinal=true、isLast=false。只有显式结束或会话终止条件进入唯一的最后结果,再触发唯一 complete;cancel 路径不补 final 与 complete。长录音连续断句必须遵守这个区分。
模型加载耗时且占用内存,如果每场会话重建就会增加启动成本;共享可变 VAD、Stream 或音频缓存又会产生串扰。
Runtime 管理按语言与配置组织的 Recognizer 池及共享后处理,会话持有独立流和音频状态。并发审查逐项核对模型对象可共享性与 VAD reset 的作用范围,不将所有 native 句柄视为无状态资源。
模型生命周期与录音生命周期可以分别处理,跨端修复围绕对象所有权进行。
decode、文本增强和宿主回调处在不同线程或语言边界,finish 与回调同步重入容易打乱最后结果顺序。
Android 会话使用解码、后处理和回调调度;Harmony 使用串行尾队列、音频分发与回调门。Core 与适配层共同保证 last / complete 的终止合同,并清理取消后的回调。
生命周期设计落到可检查的线程与状态对象,而不是只提供 start / stop 方法名。
ASR 与 TTS 能力、宿主设备指纹和模型资产需要与具体制品匹配,单独编译 SDK 不能证明客户可以运行。
为能力和设备生成独立授权产物,检查设备去重、签名、包内许可证和模型清单。SDK、Demo、原生依赖与集成文档分层组织,两端制品分别验收。
阶段授权覆盖 65 个唯一设备,ASR / TTS 两套授权包分别验签;这项结果对应授权产物完整性。
模型文件更换后,如果仍保留完整 PyTorch 与重复依赖,交付体积不会随引擎名称自然下降。
先建立 PyTorch 精简依赖变体,再为 ONNX Runtime 单独组织解释器、CPU Runtime 和 NumPy 预处理。候选保留独立版本和构建清单,安装与推理接口保持一致。
Windows 候选 PyTorch-slim 为 414.48 MiB,较基线减少 7.68%;ONNX 为 286.18 MiB,减少 36.26%。
Windows 服务已经退出时,模型运行时 DLL 句柄仍可能延迟释放,直接删除目录会使卸载失败。
在卸载流程中处理服务停止与句柄释放时序,并在 Windows 真机检查安装目录、服务项和防火墙规则残留。
两种候选分别通过 9 项安装、运行和卸载验证;同一音频两引擎分数差约 2.384e-7,这一对照只对应当次样本。
Kotlin / JNI 与 ArkTS / N-API 分别处理平台线程和采集生命周期。
模型池复用与音频会话状态分开,终态约束贯穿 Core 和适配层。
唯一设备去重,ASR / TTS 独立授权包验签与完整性检查。
Windows x64 Python 承载方案,较原基线缩小 36.26%。
保留 PyTorch 兼容路径,较基线缩小 7.68%。
Windows 11:离线安装、授权正反例、推理、服务、升级切换和卸载。