You need to enable JavaScript to run this app.
导航

模型下发

最近更新时间2023.11.03 21:08:28

首次发布时间2023.11.03 21:08:28

使用须知
  • 模型下发组件仅提供了下载和更新模型文件的能力,如果业务方的 APP 已经具备了这样的功能,可以不使用模型下发组件的。我们可以把模型文件提供出来,由业务方自行托管。

  • 模型下发组件部分接口需要在有网络的情况下进行,无网络或网络环境较差则可能失败。

整体流程

SDK模型下发主要包含以下部分:

  • 初始化环境依赖

  • 初始化模型下发

  • 检测模型是否存在

  • 检测模型是否需要更新

  • 下载/更新至最新模型

  • 获取模型文件路径

Android平台

1. 初始化环境依赖

完成网络环境等相关依赖配置。
此方法与 调用流程 中的 环境依赖 完全相同,进程生命周期执行一次即可。

SpeechEngineGenerator.PrepareEnvironment(getApplicationContext(), getApplication());

2. 初始化模型下发

初始化模型下发模块。

SpeechResourceManager resourceManager = SpeechResourceManagerGenerator.getInstance();
// 设置模型下发服务地址
resourceManager.setAddress("https://sdk.bytespeech.com");
// 设置设备ID,用于线上问题定位,如不确定可以配置为"0"
resourceManager.setDeviceId("0");
// 设置从火山申请得到的appid
resourceManager.setAppId("APP ID");
// 设置APP版本号,建议设置为真实可用的版本号,方便我们定位模型下载的问题
resourceManager.setAppVersion("APP VERSION");
// 是否使用线上模型,无特殊需求设置为true
resourceManager.setUseOnlineModel(true);
// 初始化,传入context和模型下载根路径
resourceManager.initResourceManager(getApplicationContext(), "MODEL ROOT PATH");

3. 检查模型是否存在

检查模型文件是否存在,不论模型版本如何,只要模型文件存在且可用则返回成功。
ASR_MODEL_NAME 模型名称请从 发布信息 中获取。

SpeechResourceManager resourceManager = SpeechResourceManagerGenerator.getInstance();
if (resourceManager.checkResourceDownload(ASR_MODEL_NAME)) {
    Log.i("speechsdk", "模型文件存在");
}

4. 检测模型是否需要更新

检查模型文件是否有更新的版本,此方法需要使用网络。
ASR_MODEL_NAME 模型名称请从 发布信息 中获取。

SpeechResourceManager resourceManager = SpeechResourceManagerGenerator.getInstance();
resourceManager.checkResourceUpdate(ASR_MODEL_NAME, needUpdate -> {
    if (needUpdate) {
        Log.i("speechsdk", "模型文件需要更新");
    } else {
        Log.i("speechsdk", "模型文件已为最新版本");
    }
});

5. 下载/更新至最新模型

下载/更新模型文件,此方法需要使用网络。
ASR_MODEL_NAME 模型名称请从 发布信息 中获取。

SpeechResourceManager resourceManager = SpeechResourceManagerGenerator.getInstance();
resourceManager.fetchResourceByName(ASR_MODEL_NAME, new SpeechResourceManager.FetchResourceListener() {
    @Override
    public void onSuccess() {
        Log.i("speechsdk", "模型文件下载完成");
    }

    @Override
    public void onFailed(String errorMsg) {
        Log.i("speechsdk", "模型文件下载失败:" + errorMsg);
    }
});

6. 获取模型文件路径

获取下载的模型文件路径。
此方法仅执行字符串拼接操作,不代表模型文件一定存在。
ASR_MODEL_NAME 模型名称请从 发布信息 中获取。

SpeechResourceManager resourceManager = SpeechResourceManagerGenerator.getInstance();
Log.i("speechsdk", "模型文件路径:" + resourceManager.getResourcePath(ASR_MODEL_NAME));