科大讯飞
  1. 离线OCR
科大讯飞
  • iOS SDK接入文档
  • 平台文档
    • 开发者新手指南
      • 平台简介
      • 快速指引
    • 服务协议
      • 讯飞开放平台用户服务协议
      • 讯飞星火认知大模型接口服务协议
      • 开发者应用创建规则
      • 讯飞开放平台隐私政策
      • 开发者用户个人信息保护合规指引
      • 开放平台SDK合规使用说明
      • SDK隐私政策总览
      • SDK合规使用说明总览
      • 科大讯飞儿童隐私保护政策
      • 讯飞开放平台SLA协议
      • 讯飞开放平台订购协议
    • 用户认证须知
      • 用户认证简介
      • 企业实名认证
      • 个人实名认证
      • 初创团队认证
      • 学生认证
      • 公益项目认证
      • 个人升级企业认证
    • 财务
      • 退款规则及退款流程
      • 财务相关说明
    • 账号
      • 账号注销与删除流程
      • 账号与应用说明
    • 会员
      • 会员权益详情
      • 会员时效说明
      • 会员试用版
  • 星火认知大模型
    • SparkDesk
      • SparkDesk使用指南
      • SparkDesk隐私政策
      • SparkDesk用户协议
    • 星火认知大模型
      • 服务说明
      • 通用鉴权URL生成说明
      • Spark Android SDK接入文档
      • Linux SDK接入文档
      • Windows SDK接入文档
      • 讯飞星火认知大模型隐私政策
      • Web 文档
        • 星火认知大模型Web API文档
        • 星火大模型V1.5
        • 星火大模型V2
        • 星火大模型V3
    • 星火知识库
      • 星火知识库 API 文档
        • 星火知识库 API 文档
        • 文档问答
        • 文档上传
        • 文档总结
        • 获取文档总结/概要信息
      • 新版Embedding API文档
    • 图片生成
      • 图片生成 API
    • 图片理解
      • 图片理解 API
    • 大模型定制训练平台
      • 产品使用说明
      • 星火微调服务Web API文档文档
        • 星火微调服务Web API文档文档
        • V1.5版本
        • 微调模型
  • 语音识别
    • 语音唤醒(新版)
    • 语音听写
      • Android SDK 文档
      • iOS SDK 文档
      • Linux SDK 文档
      • Windows SDK 文档
      • Java SDK 文档
      • 音频文件格式说明
      • 语音听写服务说明
      • 语音听写(流式版)SDK隐私政策
      • 语音听写(流式版)SDK合规使用说明
      • HarmonyOS SDK 文档
      • 语音听写自训练平台
      • 语音听写(流式版)WebAPI
    • 语音转写
      • 语音转写服务说明
      • 语音转写 服务协议
      • WebAPI 文档
        • 语音转写 API 文档
        • 文件上传
        • 查询结果
    • 极速语音转写
      • 极速语音转写 API 文档
      • 小文件上传
      • 初始化分块信息
      • 分块上传
      • 分块上传完成
      • 创建任务
      • 查询任务
    • 实时语音转写
      • 实时语音转写服务说明
      • 实时语音转写 API
    • 离线语音听写
      • Android SDK 文档
      • 离线语音听写服务说明
      • 离线语音听写SDK隐私政策
      • 离线语音听写SDK合规使用说明
    • 离线语音听写(新版)
      • Android SDK 文档
      • 离线语音听写隐私政策
    • 语音唤醒
      • Android SDK 文档
      • iOS SDK 文档
      • Linux SDK 文档
      • Windows SDK 文档
      • 语音唤醒服务说明
      • 离线唤醒SDK隐私政策
    • 语音唤醒(新版)
      • Android SDK 文档
      • Linux SDK 文档
      • 语音唤醒隐私政策
    • 离线命令词识别
      • Android SDK 文档
      • iOS SDK 文档
      • Linux SDK 文档
      • Windows SDK 文档
      • 离线命令词识别服务说明
      • 离线命令词识别SDK隐私政策
      • 离线命令词SDK合规使用说明
  • 语音合成
    • 在线语音合成
      • Android SDK 文档
      • iOS SDK 文档
      • Linux SDK 文档
      • Windows SDK 文档
      • Java SDK 文档
      • 服务协议
      • 在线语音合成服务说明
      • 发音人自训练平台使用指南
      • WebAPI
    • 长文本语音合成
      • 长文本语音合成 API 文档
      • 创建任务
      • 查询任务
    • 离线语音合成
      • Android SDK 文档
      • iOS SDK 文档
      • Linux SDK 文档
      • Windows SDK 文档
      • 服务协议
      • 离线语音合成服务说明
    • AI虚拟人技术
      • Web SDK 2.0 接入指南
      • Android-SDK
      • iOS-SDK
      • Web API 文档
        • AI虚拟人技术 API 文档
        • 音频驱动
        • 启动
        • 文本驱动
        • 停止
        • 心跳
  • 语音扩展
    • 语音评测(流式版)
      • 接口说明
      • Android SDK 文档
      • iOS SDK 文档
      • Linux SDK 文档
      • Windows SDK 文档
      • 语音评测SDK隐私政策
      • 语音评测(流式版)API
    • 语音评测suntone
      • 语音评测suntone API
    • 离线变声
      • Android SDK 集成文档
    • 音色转换
      • 音色转换 API
    • 性别年龄识别
      • 性别能力识别 API
    • 声纹识别
      • Web API 文档
      • 声纹识别 API
    • 歌曲识别
      • 歌曲识别 API
    • 歌曲识别 ACRCloud
      • 接口说明
      • 哼唱识别
      • 音乐识别
    • AI 客服中间件
      • 接口说明
      • 获取token
      • 查询配置
      • 直接外呼
      • 创建外呼任务
      • 提交任务数据
      • 启动外呼任务
      • 暂停外呼任务
      • 删除外呼任务
      • 查询任务
      • 结果数据推送
      • 话单推送
      • 录音推送
      • 会话推送
      • 呼入话术上下文动态数据获取
  • 自然语言处理
    • 文本纠错
      • 文本纠错 API
      • 黑白名单上传
    • 公文校队
      • 公文校对 API
    • 文本合规
      • 文本合规 API
      • 新增黑名单词库
      • 根据lib_id添加黑名单词条
      • 根据lib_id查询词条明细
      • 根据lib_id删除词条
      • 根据appid查询账户下所有词库
      • 根据lib_id删除词库
      • 创建白名单库
      • 根据lib_id添加放行词条
      • 根据lib_id查询词条详情
      • 根据lib_id删除词条信息
      • 根据appid查询所有词库列表
      • 根据lib_id删除词库
    • 图片合规
      • 图片合规 API
    • 音频合规
      • 音频合规 API
    • 视频合规
      • 视频合规 API
    • 文本改写
      • 文本改写 API
    • 机器翻译
      • 机器翻译(新) API
    • 机器翻译niutrans
      • 机器翻译niutrans API
    • 同声传译
      • 同声传译 API 
    • 离线分词
      • Android SDK 文档
  • 人脸识别
    • 人脸验证与检索
      • Android SDK 文档
      • iOS SDK 文档
      • 人脸验证与检索SDK隐私政策
      • 人脸验证与检索SDK合规使用说明
    • 人脸对比
      • 人脸比对 API
    • 人脸比对sensetime
      • 人脸比对sensetime API
    • 人脸水印照比对
      • 人脸水印照比对 API
    • 静默活体检测
      • 静默活体检测 API
    • 配合式活体检测
      • 配合式活体检测 API
    • 静默活体检测sensetime
      • 静默活体检测sensetime API
    • 人脸检测和属性分析
      • 人脸检测和属性分析 API
    • 人脸特征分析tuputech
      • 年龄 API
      • 颜值 API
      • 性别 API
      • 表情 API
  • 文字识别
    • 通用文字识别
      • 通用文字识别 API
    • 通用文字识别
      • 通用文字识别 intsig API
    • 手写文字识别
      • 手写文字识别 API
    • 印刷文字识别
      • 印刷文字识别 API
    • 印刷文字识别(多语种)
      • 印刷文字识别(多语种)
    • 印刷文字识别(多语种)intsig
      • 印刷文字识别(多语种)intsig API
    • 图片文档还原
      • 图片文档还原 API 
    • 国内通用票据识别
      • 接口说明
      • 国内通用票据识别 API
    • 离线OCR
      • Android SDK 文档
    • 名片识别 intsig
      • 名片识别 API
    • 身份证识别 intsig
      • 身份证识别 intsig API
    • 银行卡识别 intsig
      • 银行卡识别 API
    • 营业执照识别 intsig
      • 营业执照识别 intsig API
    • 增值税发票识别 intsig
      • 增值税发票识别 intsig API
    • 拍照速算识别
      • 接口说明
      • 拍照速算识别 API
    • 公式识别
      • 接口说明
      • 公式识别 API
    • 指尖文字识别
      • 接口说明
      • 指尖文字识别 API
    • 身份证识别
      • 接口说明
      • 身份证识别 API
    • 增值税发票识别
      • 接口说明
      • 增值税发票识别 API
    • 营业执照识别
      • 接口说明
      • 营业执照识别 API
    • 火车票识别
      • 接口说明
      • 火车票识别 API
    • 出租车发票识别
      • 接口说明
      • 出租车发票识别 API
  • 图像识别
    • 场景识别
      • 场景识别 API
    • 物体识别
      • 物体识别 API
    • 场所识别
      • 场所识别 API 文档
  • 基础服务
    • 云服务器 CVM
      • 云服务器 CVM 产品简介
      • 快速入门
      • 服务协议
  • 解决方案
    • 签到解决方案
      • SaaS操作文档
    • 智能硬件通用方案
      • 智能硬件通用方案说明
      • 麦克风阵列Android SDK
      • 麦克风阵列Linux SDK
      • 双麦阵列设计参考
      • 麦克风阵列录音要求
      • 语音唤醒Android SDK
      • 语音唤醒Linux SDK
      • 离线声纹Android SDK
      • 离线声纹Linux SDK
  • MSC API 文档
    • Android
      • 文件列表
      • SDK初始化
      • 语音识别(Recognizer)
      • 语音合成(Synthesizer)
      • 语音评测(Evaluator)
      • 语音唤醒(Wakeuper)
      • 声纹人脸(Verifier)
      • Android 常量字段值
      • 基础类
    • IOS
      • 文件列表
      • SDK初始化
      • 语音识别(Recognizer)
      • 语音合成(Synthesizer)
      • 语音评测(Evaluator)
      • 语音唤醒(Wakeuper)
      • 声纹人脸(Verifier)
      • 基础类
    • Windows&Linux
      • 文件列表
      • API 文档
    • Java
      • 所有类列表
      • SDK初始化
      • 语音识别(Recognizer)
      • 语音合成(Synthesizer)
      • 常量字段值
      • 基础类
  1. 离线OCR

Android SDK 文档

1. 离线OCR能力简介(能力id:e28f2655a)#

本地离线印刷体文字识别。
支持多实例并发:否
协议类型:同步非流式

#2.授权说明#

授权方式支持【设备授权】和【应用授权】2种。
设备授权: 按照设备数和有效期授权,激活设备数达到授权量上限后,新设备将无法继续激活使用。SDK采集多个设备标识按照权重算法生成设备指纹精准标识设备,计量准确。支持所有平台。
应用授权: 对指定应用授权,仅可在授权的应用上使用,无数量限制,可限制有效期。需提供应用唯一标识,授权能力后,应用级授权支持Android、iOS平台应用。
能力激活支持【在线激活】和【离线激活】2种方式。在能力首次使用时,需要先激活后方可使用。激活时会获取授权license缓存到设备内部存储中。
在线激活: 在首次使用时,需要将设备联网,SDK初始化时获取授权license激活。设备激活后,即可在无网环境下使用。如果有恢复出厂设置或清空应用缓存等操作,将license清除后,能力将无法正常使用,将设备联网重启应用即可恢复。适用于设备可联网场景,激活过程简单。
离线激活:(装机量>10000台)将申请的批量激活license文件内置到设备中,在初始化时指定离线激活文件路径,SDK初始化时会自动读取解析本地离线激活文件激活设备,设备激活后,离线激活文件会自动删除。如果有恢复出厂设置或清空应用缓存等操作,将license清除后,能力将无法正常使用,需通过离线激活文件重新激活。适用于设备不可联网或无网场景。

#3. 兼容机型#

类别兼容范围
系统支持Android 5.0 ~ Android 13 版本,鸿蒙系统未做系统兼容性验证
机型上市的Android手机和平板、及符合具体能力性能要求的Android系统扫描笔、手表等设备
网络对网络无要求,设备具备联网条件,可使用在线激活方式,首次使用需要连接网络。若设备不能联网,需要使用离线激活方式
开发环境建议使用 Android Studio 进行开发

#4. SDK包组成#

DEMO 中已经集成了SDK, 您可以参考DEMO,集成SDK。集成前,请先测通DEMO,了解调用原理。如果您自己代码过于复杂,可以使用一个helloworld项目了解集成过程。
将SDK zip包解压缩,得到如下文件:
Demo //能力SDK Demo、SDK使用说明readme.txt,示例能力调用
SDK //能力SDK,导入SDK库时使用
resource //能力对应模型资源,多能力组合时,resource文件夹中包含多个子文件夹
测试报告 //SDK 测试报告
ReleaseNotes.txt //SDK版本日志

#5. 接口调用流程#

接口调用流程图

#6. 快速集成指南#

#6.1 导入SDK库#

复制 AIKit.aar 到项目的 libs 目录下,然后在项目的 build.gradle 文件中,增加如下配置:
dependencies {
  // 已忽略无关代码
  implementation fileTree(include: ['*.jar'], dir: 'libs')
  implementation files('libs/AIKit.aar')
}

#6.2 配置权限#

AIKit SDK中使用了如下权限:
权限使用说明
INTERNETSDK需要访问网络获取、更新授权
READ_PHONE_STATE获取设备IMEI用于精准授权,IMEI加密存储,不会存储明文
WRITE_EXTERNAL_STORAGESDK写本地日志需要用到该权限
READ_EXTERNAL_STORAGESDK加载本地模型资源文件需要该权限
MOUNT_UNMOUNT_FILESYSTEMSAndroid 11以上需要该权限
READ_PRIVILEGED_PHONE_STATEAndroid 10 以后新增权限,同 READ_PHONE_STATE
MANAGE_EXTERNAL_STORAGE获取所有文件的访问权限(Android 11以上需要该权限)
READ_PHONE_NUMBERS获取设备IMEI用于精准授权,IMEI加密存储,不会存储明文(Android 11及以上获取)
SDK中已配置如下权限,如部分权限不需要,可通过如下配置去除
<!-- 移除SDK非必须权限示例 -->     
<uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove" />
<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" tools:node="remove" />
Android 11(API 30)及以上版本需要增加以下权限
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.READ_PHONE_NUMBERS" />
Android 10.0(API 29)及以上版本需要在application中做如下配置
<application android:requestLegacyExternalStorage="true"/>

#6.3 资源导入#

复制resource文件夹中文资源到应用的工作目录,即为SDK初始化中的workDir。

#6.4 SDK初始化#

在使用能力前,需要首先初始化SDK,使用SDK提供的单能力或组合能力时,SDK均只需要初始化一次。
// 初始化参数构建
AiHelper.Params params = AiHelper.Params.builder()
        .appId(appID)
        .apiKey(apiKey)
        .apiSecret(apiSecret)
		.ability("e28f2655a")
        .workDir("/sdcard/iflytek/aikit")//SDK工作路径,这里为绝对路径,此处仅为示例
        .build();
// 初始化
AiHelper.getInst().init(this, params);
如上代码所示,SDK初始化参数中appId、apiKey、apiSecret 和workDir为必填项。 以下是这些初始化参数:
参数类型必填说明
appIDString是应用ID
apiKeyString是离线引擎托管平台创建应用后,生成的唯一应用标识
apiSecretString是离线引擎托管平台创建应用后,生成的唯一应用秘钥
workDirString是SDK工作目录。默认读取能力资源、写SDK日志在此路径下
licenseFileString否离线授权license文件绝对路径,SDK离线激活方式,需要从离线引擎托管平台申请的离线授权license文件,放入设备指定路径中(可放入至SDK工作路径下),即licenseFile参数即为离线激活文件的绝对工作路径。
customDeviceIdString否用户自定义设备指纹块,默认为空,设置后会成为设备指纹的一部分,建议设置长度低于256
authTypeint否离线授权类型(0或1),0-->(默认)设备级授权(DEVICE)和 1-->应用级授权(APP)
authIntervalint否在线授权校验间隔时长,默认为300s,可自定义设置,最短为60s,单位秒
resDirString否指定资源读取路径,不设置默认从workDir读取
abilityString是SDK v2.2.13+版本新增接口,传入需要用到的一个或多个能力ID,格式为"xxxx1;xxxx2",多个能力ID中间用 英文分号 隔开,如果注册的能力非空,SDK将对传入的能力ID授权;

#6.5 注册监听代理#

SDK 初始化状态及能力结果可通过registerListener注册监听,在回调方法中获取,SDK的状态和结果回调只支持一个监听器,多次设置会覆盖。 可为每个能力指定一个结果回调监听。注册方法及回调接口说明如下:
AiHelper.getInst().registerListener(coreListener);// 注册SDK 初始化状态监听
AiHelper.getInst().registerListener("e28f2655a", aiRespListener);// 注册能力结果监听
6.5.1 授权状态回调
授权状态回调 AuthListener 实现示例如下:
private AuthListener coreListener = new AuthListener() {
    @Override
    public void onAuthStateChange(final ErrType type, final int code) {
        Log.i(TAG, "core listener code:" + code);
                switch (type) {
                    case AUTH:
                        Log.i(TAG,"SDK状态:授权结果码" + code);
                        break;
                    case HTTP:
                        Log.i(TAG,"SDK状态:HTTP认证结果" + code);
                        break;
                    default:
                        Log.i(TAG,"SDK状态:其他错误");
                }
    }
};
SDK仅需要初始化一次,首次初始化成功后,再次初始化不会调用该方法。若初始化失败,再次调用初始化,会再次回调。
onAuthStateChange:
参数类型说明
typeErrTypeSDK错误类型,0 表示授权错误,1 表示 http 请求错误
codeint错误码,0 表示正常
6.5.2 能力计算进度、结果回调 能力结果及计算进度状态回调示例代码如下:
/**
 * 能力监听回调
 */
private AiListener aiRespListener = new AiListener() {
    @Override
    public void onResult(int handleID, List<AiResponse> outputData, Object usrContext) {
        if (null != outputData && outputData.size() > 0) {
            for (int i = 0; i < outputData.size(); i++) {
                byte[] bytes = outputData.get(i).getValue();
                if (bytes == null) {
                    continue;
                }
                String key = outputData.get(i).getKey();
				//获取到结果的key及value,可根据业务保存存储结果或其他处理
              
            }
        }
    }
    @Override
    public void onEvent(int handleID, int event, List<AiResponse> eventData, Object usrContext);

    }
    @Override
    public void onError(int handleID, int err, String msg, Object usrContext);

    }
};
onResult:能力执行结果返回
参数类型说明
handleIDint会话ID
outputDataList能力执行结果
usrContextObject用户自定义标识
onEvent:事件回调
参数类型说明
handleIDint会话ID
eventint事件状态,0:未知错误;1:开始;2:结束;3:超时;4:进行中
eventDataList事件消息数据
usrContextObject用户自定义标识
onError:错误通知,能力执行终止
参数类型说明
handleIDint会话ID
errint错误码
msgString错误相关标识
usrContextObject用户自定义标识
能力输出结果 AiResponse 说明:
参数类型说明
keyString输出数据名称
typeenum输出数据类型,1=文本
valuebyte[]字节数组类型输出数据
varTypeenum输出数据参数类型,0=字节数组
lenint输出数据长度

#6.6 能力调用接口#

6.6.1 创建会话start
通过 start 方法开启会话,传入当前能力所需要指定的参数。示例代码如下:
AiRequest.Builder builder = AiRequest.builder();
AiImage aiImage =AiImage.get("image").data(readStream("/sdcard/iflytek/ocr/test.bmp")).valid();
builder.payload(aiImage);
ret = AiHelper.getInst().oneShot("e28f2655a", builder.build(), null);
if (ret != 0) {
    Log.e(TAG, "OCR oneshot failed!" + ret);
    return;
}
AiRequest.Builder |参数 |类型 |说明| |--|--|--| |key |String |是 |功能参数名称| |value |String/int/double/bool |是 |功能参数取值|
oneShot(启动会话) |参数 |类型 |说明| |--|--|--| |ability |String |是 |能力标识ID| |request |AiRequest |是 |能力参数,可使用AiRequest.Builder快捷构建| |usrContext |Object |否 |用户自定义标识|
返回:AiHandle AiHandle对象内部提供isSucess方法,用于判断会话是否启动成功 0=成功,其他=错误
6.6.2 输入数据类型
能力输入数据 数据段名称:image 数据类型:图片 以下是图片输入参数含义说明:
字段含义数据类型取值范围默认值说明必填
encoding图像编码stringjpg:jpg格式, jpeg:jpeg格式, png:png格式, bmp:bmp格式jpg图像编码否
data图像数据string图像数据,base64否
6.6.3 获取能力结果 结果将通过 AIListener 回调返回,AIListener 接口实现可参考 6.5.2 节;能力结果数据格式及含义如下: 数据段名称:output 数据类型:文本 以下是文本输出参数含义说明:
字段含义数据类型取值范围默认值说明
encoding文本编码stringutf8, gb2312utf8取值范围可枚举
compress文本压缩格式stringraw, gzipraw取值范围可枚举
format文本格式stringplain, json, xmlplain取值范围可枚举
data文本数据string文本大小:0-1M
输出结果示例:
{
   "engine_ver" : "3.19.1.1",
   "message" : "",
   "page" : [
      {
         "id" : 0,
         "image" : null,
         "image_count" : 0,
         "table" : null,
         "table_count" : 0,
         "textblock" : [
            {
               "id" : 0,
               "location" : {
                  "bl" : {
                     "x" : 0,
                     "y" : 129
                  },
                  "br" : {
                     "x" : 1563,
                     "y" : 129
                  },
                  "tl" : {
                     "x" : 0,
                     "y" : 0
                  },
                  "tr" : {
                     "x" : 1563,
                     "y" : 0
                  }
               },
               "order" : 0,
               "textline" : [
                  {
                     "direction" : 0.0,
                     "id" : 0,
                     "location" : {
                        "bl" : {
                           "x" : 2,
                           "y" : 112
                        },
                        "br" : {
                           "x" : 1558,
                           "y" : 112
                        },
                        "tl" : {
                           "x" : 2,
                           "y" : 2
                        },
                        "tr" : {
                           "x" : 1558,
                           "y" : 2
                        }
                     },
                     "multi_point" : [
                        {
                           "x" : 2,
                           "y" : 2
                        },
                        {
                           "x" : 2,
                           "y" : 105
                        },
                        {
                           "x" : 7,
                           "y" : 105
                        },
                        {
                           "x" : 9,
                           "y" : 107
                        }
                     ],
                     "order" : 0,
                     "sent" : [
                        {
                           "char_count" : 18,
                           "id" : 0,
                           "lang" : "",
                           "score" : 1.0,
                           "type" : "machine_print",
                           "value" : "伍着一双湿了的草鞋嗯嗒嗯嗒地走回来"
                        }
                     ],
                     "topn" : 1
                  }
               ],
               "textline_count" : 1
            }
         ],
         "textblock_count" : 1
      }
   ],
   "page_count" : 1,
   "protocal_ver" : "1.0",
   "resource_ver" : "",
   "result_level" : 1,
   "status" : 0
}
结果json参数字段含义
page页面
textblock文本区域
textline文本行
location坐标位置(四点表示)
direction文本行角度
multi_point轮廓点
sent文本
value文本内容
pl: 上面没有的json参数,意味着该参数不重要,无需关注。

#6.7 SDK逆初始化#

当不再使用能力时,需调用逆初始化方法释放资源,示例代码如下:
AiHelper.getInst().unInit();

#6.8 导入资源验证#

复制resource文件夹下文资源到SDK的工作目录(示例代码工作路径为:”/sdcard/iflytek/aikit“)下,即为SDK初始化中的workDir。资源导入完成后,至此已完成合成能力接入,可运行测试合成效果。
1.
高级功能 7.1 日志配置
AiHelper.getInst().setLogInfo(LogLvl.DEBUG, 1, "/sdcard/iflytek/aikit");
日志配置参数说明
参数类型说明
LogLvlenum日志级别枚举值如下: DEBUG, INFO, WARN, ERROR, FATAL, OFF
LogModeint日志模式(stadout:0 logcat:1 file:2)
LogPathString日志路径(路径可根据实际需求进行修改)

#7.2 参数配置#

可通过 setConfig 方法实现license缓存路径、日志文件上限等配置,使用举例如下:
AiHelper.getInst().setConfig("licenseStoragePath","/sdcard/iflytek/aikit");
可配置参数
参数类型说明
licenseStoragePathString授权文件存储路径,Android平台默认保存在 SharePreference下,可通过该配置设置保存在其他路径下。
logMaxSizeString日志文件上限

#7.3 资源从asset读取#

对于模型资源比较小的能力,如果想将模型资源打包到APK或aar 中,可在项目主module 下asset 目录下创建 aikit_resources 目录,将模型资源放置在 aikit_resources文件夹下即可。

#Android平台常见问题#

#1. SDK 错误码返回18700,错误日志出现 “online license activate ret:18700 ;auth request failed:2007,未发现SDK” 如何解决?#

appid 未授权该SDK 能力,请申请授权后使用该能力。

#2. SDK 错误码返回18714,错误日志出现 “[{"message":"HMAC signature cannot be verified: fail to retrieve credential"}]” 如何解决?#

appid、apiKey、apiSecret 配置有误,请检查配置。

#3. SDK 初始化返回 18007,错误日志出现"httpPost failed! 401{"message":"HMAC signature does not match"};online license activate ret:18714;AIKit_Init ret 18007",如何解决?#

apiKey 或 apiSecret 有误,请检查apiKey、apiSecret 的值是否正确,并替换为正确的值。

#4. SDK 初始化时返回18704,错误日志出现“auth request failed:2003,未发现应用”;“AIKit_Init ret 18704,”,如何解决?#

appid 不存在或appid 未授权,请使用正确的 appid。

#5. SDK 初始化时返回18400,错误日志出现 “workDir does not have write permission sdcard/xxxx/xxx”,“AIKit_Init ret 18400”#

SDK 初始化时设置的SDK工作路径即“workDir” 无读写权限,请确保SDK 初始化时,SDK工作路径具有读写权限。

#6. SDK 在初始化引擎时,返回 18601,错误日志出现 “AIKit_EngineInit:e09712bcb11 ret 18601”;“ability: xxxxxxx not exist”,如何解决?#

能力(能力id为 xxxxxx)不存在,初始化引擎时传入的能力id有误,请检查能力id是否正确;或改能力未授权,请确认该能力是否已申请授权。

#7. 调用SDK 的start 或 AIKit_Start 方法时,返回错误码 18105,错误日志出现“AIKit_Start:e09712bcb ret 18105”; "cannot find dependent resource: xxxxxx",如何解决?#

该错误为资源未找到,请检查是否将资源导入到了SDK的工作路径下。

#8. 日志中出现“AIKit_Start: xxxxxxx ret 18310; AIKit_Start failed:18310”错误日志如何解决?#

流式接口能力,调用 AIKit_Start 或 start 方法开始的会话,未调用AIKit_End 或 end 方法打断或正常结束,再次调用AIKit_Srart则SDK会返回18310错误,同一个能力SDK不支持并发调用,需要结束本次会话之后,才能开始下一次会话。

#9. 日志中出现“[ERROR]:[ getAbility]-[0474]:ability:64b9b706 not exist AIKit_EngineInit: xxxxxxx ret 18601” ,错误码返回18601 错误,如何解决?#

请检查确认引擎初始化及调用能力时所传能力id参数是否正确;如果能力ID无误,SDK日志中打印的 xxxxxx 能力未授权。

#10. 日志中出现“auth request failed:2015,无效的指纹”、“online license activate ret:18713”,SDK返回18713错误,如何解决?#

应用安全等级与设备指纹不符,须申请调整appid 安全等级;

#11. Android 平台运行SDK Demo 时,出现如下崩溃,如何解决?#

Caused by: java.security.InvalidParameterException at com.iflytek.edgeAI.core.JLibraryParamsBuilder.build(Unknown Source:41) at com.iflytek.AIKitsdkdemo.sdk.SDKHelper.initSdk(SDKHelper.java:55)at com.iflytek.AIKitsdkdemo.xtts.XTTSActivity.initSDK(XXXXActivity.java:144) at com.iflytek.AIKitsdkdemo.xtts.XTTSActivity.onCreate(XXXXActivity.java:81) at android.app.Activity.performCreate(Activity.java:8214``)
崩溃原因为 appid、apiKey、apiSecret 存在为空的值,请正确配置 appid、apiKey、apiSecret。

#错误码#

错误码含义自查指南
18000本地 license 文件不存在离线激活方式,请检查离线授权文件路径下,license 文件是否存在;如果不存在,请将申请的离线授权文件放置在对应路径下; 在线激活方式下,请检查 workDir 目录下 license 文件是否存在,如果不存在,请将设备联网,重启应用。
18001/18002 /18003/18004授权问题Linux 平台删除授权文件,将设备联网,重启应用,重新从云端获取授权文件; Android 端清除应用缓存,将设备联网,重启应用,重新从云端获取授权文件; 如仍有问题,请联系项目经理协助解决。
18005授权已过期能力授权已过期。
18006授权时间错误,设备时间比标准时间慢 30 分钟以上设备时间不准确导致,请校正设备时间为标准时间,重启应用。
18007授权应用不匹配(apiKey、apiSecret)apiKey、apiSecret配置有误,请核对项目中配置的 apiKey、apiSecret 。
18008授权文件激活过期非永久授权激活文件的有效期为 3天,Linux 平台删除授权文件、Android平台清除应用缓存后重启应用重新激活; 若设备无法联网,请重新申请离线激活文件,在 3 天内激活。
18010离线授权激活文件指定平台与设备平台不匹配批量授权激活文件不支持当前设备平台,离线批量授权文件仅只支持申请时指定的的特定平台,不可多平台混用。
18011离线授权激活文件指定架构与设备 CPU 架构不匹配批量授权激活文件不支持当前设备架构,离线批量授权文件仅只支持申请时制定的特定架构,不支持多架构混用。
18012离线授权激活文件中包含 license 个数异常离线批量激活文件异常,请检查设备中使用的离线激活文件与所申请的是否一致
18013离线授权激活文件中未找到当前设备批量离线授权激活文件中不包含改设备,请联网激活或申请离线授权激活文件。
18014离线授权激活文件中设备指纹安全等级非法离线授权文件中安全等级错误,请联系平台重新提供
18015硬件授权验证失败-
18016离线授权激活文件内容非法批量离线授权文件不合法,请替换正确的批量离线激活文件测试,如仍有问题,请联系项目经理协助解决。
18017离线授权激活文件中协议头非法批量离线授权文件不合法,请替换正确的批量离线激活文件测试,如仍有问题,请联系项目经理协助解决。
18018离线授权激活文件中指纹组成项个数为0未获取到有效的设备标识,例如 Android平台 Androidid 未获取到;Linux平台 MAC等未获取到。
18100/18101/18102资源错误请仔细检查所用资源与平台提供的资源是否一致,可通过MD5对比,请使用提供SDK时附带的成套资源。
18103资源参数不存在请根据文档检查能力参数Key、Value 是否合法。
18104资源路径打开失败资源路径无读写权限,请确保在 SDK 初始化时以获取到读写权限,或将资源路径设置为有读写权限的路径下。
18105资源加载失败,workDir 内未找到对应资源请根据日志提示将所需资源导入到指定路径下
18106资源卸载失败请检查代码是否存在未初始化时调用 SDK uninit 方法,或多次调用 uninit 方法
18200引擎鉴权失败应用授权信息与SDK不对应。 1. 请尝试将设备联网后重启应用; 2. 请检查您项目中使用的SDK和平台提供的是否一致;
18201引擎动态加载失败请检查日志中打印的引擎库是否已导入到项目中
18202引擎未初始化请检查调用能力前是否已初始化引擎及初始化是否成功。
18203引擎不支持该接口调用请参照 Demo 仔细检查方法调用是否正确
18205引擎重复初始化请根据文档检查引擎初始化方法是否存在重复调用,引擎初始化全局仅需初始化一次。
18206引擎参数非法请根据文档检查引擎初始化参数是否合法;
18207引擎上下文未注册-
18301SDK未初始化在使用能力前请先初始化 SDK,如果有调用 uninit 方法,再次使用能力时需要重新初始化。
18302SDK初始化失败请根据CoreListener回调中返回的错误码参考此文档做对应检查
18303SDK 已经初始化重复初始化导致,使用能力时,SDK 只需要初始化一次,请检查 SDK 初始化逻辑是否存在多次初始化。
18304不合法参数请参考demo及协议文件仔细检查所传参数是否正确;若确认无误,请联网后重启应用后重试
18305/18306会话不存在或已销毁1. 请检查 start 方法调用是否返回成功; 2. 请排查代码是否在调用 end 方法结束会话后又调用了 write 或read 方法。 3. 请确保 end 方法在能力执行完毕后调用,能力执行结果会在 onEvent 中回调。
18307会话重复终止该错误一般为重复调用 end 方法导致, 请仔细检查代码是否有重复调用 end 方法
18310会话重复开启start 、end方法需成对调用,请仔细检查代码逻辑是否存在调用start 后未调用end结束会话,又再次调用start 情况出现
18400工作目录无写权限在设置 workDir 时,请确保该工作路径有读写权限。若无法设置读写权限,请修改为有读写权限的工作路径。
18401未获取到设备标识没有获取到组成设备指纹所必须的组成项,请确认 mac、AndroidID、SN 等是否能获取到,请根据授权安全等级确保能获取对应数量的设备标识。
18402文件打开失败请检查 日志中所打印的文件是否存在,以及对应路径下是否有读权限。
18404设备指纹比较失败设备指纹组成项发生变化导致,获取到的设备指纹与缓存的设备指纹不一致,请将设备联网后重启应用重试。
18500未找到该参数 key请参照demo或协议文档仔细检查参数名拼写
18501参数范围溢出,不满足约束条件请根据协议检查调用 SDK 方法时所传参数范围,需要确保所传参数符合协议约束要求
18502SDK 初始化参数为空请根据 SDK 集成文件检查 SDK 初始化代码,确保必填参数有值且合法
18503SDK 初始化参数中 appId 为空appId 为空值,请在 SDK 初始化时传入正确的 appId 值
18504SDK 初始化参数中 apiKey为空apiKey为空值,请在 SDK 初始化时传入正确的 apiKey值
18505SDK 初始化参数中 apiSecret 为空apiSecret 为空值,请在 SDK 初始化时传入正确的 apapiSecret 值
18506abilityId 参数为空abilityId 为空值,请检查 引擎初始化方法及调用能力方法时所传的 abilityId 是否正确
18507input 参数为空请检查调用能力方法时 input 参数是否为空
18508输入数据参数 Key 不存在请根据协议文档检查输入参数的 key
18509必填参数缺失请根据文档或demo检查参数漏传项
18510输出参数缺失能力输出参数缺失
18520不支持的编解码类型输入的编解码格式不支持
18600协议中时间戳字段缺失请将设备联网后重启应用
18601协议中未找到该能力 ID请确认 SDK 初始化时所传 appId、 apiKey、apiSecret 是否正确; 若无误请删除授权文件或清空应用缓存后重启应用; 请确认所传能力 ID 是否正确; 请联系平台协助排查授权是否已过期或授权量已用完。
18602协议中未找到该资源请确认 SDK 初始化时所传 appId、 apiKey、apiSecret 是否正确; 请将设备联网后重新应用重试; 请确认是否已申请授权过该资源。
18603协议中未找到该引擎请确认 SDK 初始化时所传 appId、 apiKey、apiSecret 是否正确; 请将设备联网后重新应用重试; 请确认项目中使用SDK版本是否正确。
18606协议能力接口类型不匹配请根据协议检查能力接口类型是否一致,流式与非流式接口不可混用
18700能力未授权该SDK未授权,请联系项目经理申请授权
18701网络不通请检查网络连接是否正常
18702网关检查不过检查设备时间是否正确; 请检查 SDK 初始化时所传 apiKey、apiScrect 是否正确;
18703云端响应格式不对请检查网络是否可以正常访问外网
18704应用未注册请检查appid 是否正确
18705应用 ApiKey & ApiSecret 校验失败请检查 apiKey、apiSecret 是否正确
18706引擎不支持的平台架构您所使用的能力不支持该设备平台架构,请确认申请的SDK支持的平台架构。
18707授权已过期如需继续使用请申请授权延期
18708无可用授权1. 该能力不支持当前平台架构的设备; 2. 授权量已满
18709未找到该 appid 绑定的能力请检查 appId 是否正确;请确认是否已购买该能力
18710未找到该 appid 绑定的资源请检查 appId 是否正确;请检查是否已申请受限资源
18713设备指纹安全等级不匹配设备指纹安全等级不匹配,请申请申请安全等级变更
18714应用信息错误一般为apiKey、apiSecret值有误,请检查 appid、apiKey、apiSecret 的值是否正确。
18715未找到该SDKID该组合能力SDK未授权,请申请授权
18716未找到该组合能力集合该组合能力未创建,请申请授权
18717SDK组合能力授权不足组合能力授权量已用完,需申请追加授权
18718无效授权应用签名应用级授权,应用签名与授权签名不一致
18719应用签名不唯一应用级授权,提供的应用签名有误
18720能力schema不可用请联系平台技术人员解决
18721未找到能力集模板请联系平台技术人员解决
18722能力不在模板能力集模板中该能力未授权,请申请授权
18801建立链接错误-
18802结果等待超时-

#引擎错误码#

错误码含义
32768unimplemented function
32769unsupported on this platform
32770invalid handle
32771invalid parameter(s)
32772insufficient heap size
32773refuse to do in current state
32774invalid parameter ID
32775invalid parameter value
32776Resource is error
32777read resource error
32778the Endian of SDK is error
32779the HeadFile is different of the SDK
32780get data size exceed the data buffer
32781the encryption and decryption fail
32782the encryption and decryption fail
32783invalid check mode
32784mode error
32785PIN check fail
32786check fail
32787fun use fail
32788ZSTD PARAM fail
上一页
国内通用票据识别 API
下一页
名片识别 API
Built with