Skip to content
跳到项目内容
全部项目
SDK 与交付/阶段交付

语音 SDK 与模型服务

原生离线语音、模型接口与多平台交付

C++KotlinArkTSONNX Runtime
Android 离线语音识别 Demo01 / 02

项目速览

业务背景

对联网受限或要求端侧处理的场景,语音能力需要随应用部署。SDK 为 Android 与 HarmonyOS 提供原生调用接口,负责模型初始化、音频输入、推理回调与资源释放,并配套 Demo 和设备授权产物。

负责范围
  • 跨平台原生桥接
  • 流式音频与会话状态
  • 模型与 Demo 打包
  • 离线许可证与设备适配
76.41 → 96.12%

热词精确命中

调用方热词权重调整后的公开数据集热词评测。

100 / 100 轮

候选包复测

HarmonyOS 候选 ZIP 连续复测,空终稿率 0,无原生流泄漏。

65 个设备

阶段授权覆盖

唯一设备去重,ASR / TTS 独立授权包验签与完整性检查。

286.18 MiB

ONNX 候选包体

Windows x64 Python 承载方案,较原基线缩小 36.26%。

414.48 MiB

PyTorch 精简包体

保留 PyTorch 兼容路径,较基线缩小 7.68%。

9 / 9

各候选真机验收

Windows 11:离线安装、授权正反例、推理、服务、升级切换和卸载。

01

核心业务

离线语音 SDK 面向 Android 与 HarmonyOS 原生应用,提供流式 ASR 和 TTS,并封装模型安装、许可证、会话创建和回调。底层复用 C++、sherpa-onnx 与 ONNX Runtime,平台层分别使用 Kotlin / JNI 和 ArkTS / N-API。

跨端接口相同不意味着线程和生命周期相同。模型属于进程级资源,会话持有自己的音频、解码和终态;业务回调又可能同步调用写入、结束或取消。SDK 需要在桥接、核心会话和业务适配层共同维护这一契约。

音频鉴伪作为独立模型服务纳入同一交付体系,提供文件输入、预处理、模型推理与检测结果接口。端侧语音 SDK、Windows 本地服务和私有 Docker 服务分别运行,复用模型资产校验、授权与制品验证方法。

01运行时与资源
Runtime 管理许可证、模型池和共享后处理,Engine 管理识别配置,Session 持有流与音频状态。
02音频与文本
PCM 输入经增益、切分、流式解码和最终文本处理;标点、ITN、声纹与领域处理各有入口。
03宿主集成
原生接口、回调重入、资源释放、设备授权与 SDK / Demo 制品一起交付。
04音频鉴伪
云端服务 2026-10-20 切换到新一代模型,旧模型保留热备;端侧 Windows 旧安装包因内置未保护权重停止交付,受保护版本仍是源码候选。
05模型服务交付
语音能力以原生 SDK 接入宿主应用,鉴伪能力以本地 HTTP 服务或私有镜像对接业务系统;接口和运行依赖分别管理。
02

技术栈

公共推理
C++sherpa-onnxONNX Runtime
Android
KotlinJNIGradleAAR / APK
HarmonyOS
ArkTSN-APIDevEcoHAR / HAP
授权与交付
离线许可证设备绑定模型清单与验签
03

系统架构与部署

Android 与 HarmonyOS 使用不同原生桥接,共享推理能力。进程级模型资源与会话级音频状态分离,final 和 complete 受会话终态约束。

Android

Kotlin / JNI / Gradle / AAR + APK

接口适配、HandlerThread 调度、原生依赖与模型资源随宿主集成。

HarmonyOS

ArkTS / N-API / HAR + HAP

Promise 串行队列、音频分发与回调门控制 native 重入和生命周期。

原生能力

C++ / sherpa-onnx / ONNX Runtime

Recognizer、Stream、VAD、标点、ITN、声纹和模型资产校验。

Windows 安装包

ZIP / Setup EXE / 便携 Python

安装器解出解释器、依赖、模型和服务,注册 Windows Service。

推理变体

PyTorch-slim / ONNX Runtime CPU

两种引擎独立构建、独立哈希与真机验证;ONNX 候选仍由 Python 承载。

私有服务器

Docker / Python 模型服务

模型资产与服务镜像组织为独立交付,不用 Windows 验收替代服务端验证。

04

核心业务链路

启动回调中立即结束会话

  1. 1Session 发布
  2. 2onStart
  3. 3writeAudio / finish / cancel
  4. 4回调门

onStart 表示会话已经可用,调用方可以在回调内同步结束或取消。适配层用 generation 与 gate 保护当前会话,防止旧 native 回调进入下一场会话,或在资源释放后继续返回结果。

一句话结束与整场识别结束

  1. 1partial
  2. 2isFinal
  3. 3继续输入;finish
  4. 4isLast
  5. 5onComplete

endpoint 可以产生多条 isFinal=true、isLast=false。只有显式结束或会话终止条件进入唯一的最后结果,再触发唯一 complete;cancel 路径不补 final 与 complete。长录音连续断句必须遵守这个区分。

05

关键机制与取舍

01模型池复用与会话状态隔离

约束
模型加载耗时且占用内存,如果每场会话重建就会增加启动成本;共享可变 VAD、Stream 或音频缓存又会产生串扰。
做法
Runtime 管理按语言与配置组织的 Recognizer 池及共享后处理,会话持有独立流和音频状态。并发审查逐项核对模型对象可共享性与 VAD reset 的作用范围,不将所有 native 句柄视为无状态资源。
效果
模型生命周期与录音生命周期可以分别处理,跨端修复围绕对象所有权进行。

02解码、后处理与业务回调分开串行

约束
decode、文本增强和宿主回调处在不同线程或语言边界,finish 与回调同步重入容易打乱最后结果顺序。
做法
Android 会话使用解码、后处理和回调调度;Harmony 使用串行尾队列、音频分发与回调门。Core 与适配层共同保证 last / complete 的终止合同,并清理取消后的回调。
效果
生命周期设计落到可检查的线程与状态对象,而不是只提供 start / stop 方法名。

03授权与交付按设备和能力分别校验

约束
ASR 与 TTS 能力、宿主设备指纹和模型资产需要与具体制品匹配,单独编译 SDK 不能证明客户可以运行。
做法
为能力和设备生成独立授权产物,检查设备去重、签名、包内许可证和模型清单。SDK、Demo、原生依赖与集成文档分层组织,两端制品分别验收。
效果
阶段授权覆盖 65 个唯一设备,ASR / TTS 两套授权包分别验签;这项结果对应授权产物完整性。

04长会议端侧发热:默认降载与 NPU 候选

约束
手机上长时间开角色识别,CPU 持续满载导致机身发热、内存上涨,长会议体验随时间变差。
做法
HarmonyOS 候选版本默认开启三项降载设置,角色聚类限制为 512 个训练向量、32 个候选;说话人编码器可选放到 NPU 执行,默认仍走 CPU。
效果
同机 30 分钟:机身峰值 43.20 → 37.49 °C,峰值内存约 1071 → 789 MB;NPU 编码器每窗 307.7 → 27.7 ms,识别文本逐字一致。代价是单段样例的重叠语音召回 38.53% → 34.4%;均为候选版本,NPU 身份准确率尚未验收。

05运行依赖决定主要包体

约束
模型文件更换后,如果仍保留完整 PyTorch 与重复依赖,交付体积不会随引擎名称自然下降。
做法
先建立 PyTorch 精简依赖变体,再为 ONNX Runtime 单独组织解释器、CPU Runtime 和 NumPy 预处理。候选保留独立版本和构建清单,安装与推理接口保持一致。
效果
Windows 候选 PyTorch-slim 为 414.48 MiB,较基线减少 7.68%;ONNX 为 286.18 MiB,减少 36.26%。

06卸载处理原生 DLL 的释放窗口

约束
Windows 服务已经退出时,模型运行时 DLL 句柄仍可能延迟释放,直接删除目录会使卸载失败。
做法
在卸载流程中处理服务停止与句柄释放时序,并在 Windows 真机检查安装目录、服务项和防火墙规则残留。
效果
两种候选分别通过 9 项安装、运行和卸载验证;同一音频两引擎分数差约 2.384e-7,这一对照只对应当次样本。
06

AI 协作开发

端点检测修复、替代 PR 和真机回归由 Agent 推进;安装弹窗等真机交互先读取界面结构再操作,不盲点。

  • 仓库规则

    运行时改动必须真机验证

    SDK 运行时行为的改动要在受影响平台的真机上验证;同一提交、设备和二进制的有效证据可复用,额外重放必须带来新的诊断信息。

  • 合并门禁

    CI、平台构建与真机三道

    PR 合并需要 CI、对应平台构建和真机验证全部通过,候选包在验收前一律标为候选。

  • 纠错

    配置值不是实测值

    端点检测配置 800 ms 是输入参数,真机实测约 1.6 s;“某 PR 已合并”被更正为“已关闭,由替代 PR 合并”。

正式发布版本与候选版本分开记录,候选包不写成已交付。

07

阶段成果

  • 技术覆盖原生推理、音频处理、跨语言桥接、线程调度、设备授权与客户集成。
  • 接口行为通过对象所有权与终态合同解释,便于处理长录音、回调重入和资源释放问题。
  • 正式发布与候选版本分开记录:HarmonyOS 0.3.20–0.3.24 为候选,端侧发热与热词优化随候选验证。
  • 模型工程延伸到离线运行时、系统服务、安装生命周期与产物验证。
  • 两条 Windows 工程候选具备绑定精确哈希的真机结果,平台矩阵仍区分各部署形态。

继续浏览

语音 SDK 与模型服务 · Android 离线语音识别 Demo
100%
语音 SDK 与模型服务放大预览

Android 离线语音识别 Demo

别急,先让缓存热一下。