365bet注册开户- 首页

logo
产品简介 产品简介
基本概念 基本概念
平台新手指引 平台新手指引
计价模式 计价模式
开发者文档下拉
开放平台计价
定制服务计价
获取访问令牌 获取访问令牌
语音合成 语音合成
开发者文档下拉
接口说明
发音人列表
在线合成 开发者文档下拉
Android SDK
iOS SDK
C++(Linux) SDK
RESTful API
Websocket API
长文本语音合成API
离线合成 开发者文档下拉
离线合成 Android SDK
离线合成 iOS SDK
XML标签
语音识别 语音识别
开发者文档下拉
音频格式说明
一句话识别 开发者文档下拉
RESTful API
Websocket API
Android SDK
iOS SDK
实时长语音识别 开发者文档下拉
Websocket API
Android SDK
iOS SDK
录音文件识别 开发者文档下拉
RESTful API
声音复刻 声音复刻
开发者文档下拉
定制模型 开发者文档下拉
RESTful API
Android SDK
iOS SDK
定制声音合成 开发者文档下拉
RESTful API
声音转换 声音转换
开发者文档下拉
发音人列表
Websocket API
Android SDK
iOS SDK
声纹识别 声纹识别
开发者文档下拉
RESTful API
协议规则 协议规则
开发者文档下拉
平台服务协议
平台通用规则
法律声明及隐私政策
服务等级协议SLA
常见问题 常见问题
开发者文档下拉
语音合成
语音识别

语音识别Android SDK

下载安装

SDK及示例demo下载地址: https://github.com/data-baker/BakerAndroidSdks

Android Studio集成SDK(参考demo)

  • 在工程下的build.gradle文件中添加以下代码。
    allprojects {
      repositories {
        ...
        maven { url 'https://jitpack.io' }
      }
    }
  • 在工程model下build.gradle文件中添加以下代码。建议使用此方式
  • dependencies {
      implementation 'com.github.data-baker.BakerAndroidSdks:bakerbasecomponent:2.0.11'
      implementation 'com.github.data-baker.BakerAndroidSdks:bakerasr:2.0.11'
      implementation 'com.github.data-baker.BakerAndroidSdks:bakerhttp:2.0.11'
      implementation 'com.squareup.okhttp3:okhttp:4.2.2'
      implementation 'com.google.code.gson:gson:2.8.6'
    }

    或者将.jar/.aar包添加至工程module下,lib文件夹里。

    2021年6月,标贝计划开源sdk源码,所以也可以直接集成源码model。

    注意:SDK内使用了okhttp、gson所以需要开发者添加以这两个库,若工程内已存在,无需重复添加。okhttp请使用4.x版本,以免出现版本兼容bug。

  • 在主Module的AndroidManifest.xml文件中添加权限。6.0以上需要动态申请READ_PHONE_STATE、RECORD_AUDIO等权限
  • 
    
    
    
  • 在主Module的AndroidManifest.xml文件中的application节点添加以下属性
  • android:usesCleartextTraffic="true"
  • 关于混淆

    SDK中用到了okhttp和gson,所以需要将这两个包的混淆代码添加上。具体混淆代码可以去官方文档上查阅。如果项目中已经有这两个包的混淆代码,不必重复添加。请加上我们SDK其他类的混淆代码,如下:

    -keep class com.baker.speech.asr.basic.**{*;}
    -keep class com.baker.speech.asr.bean.**{*;}
    -keep class com.baker.speech.asr.utils.**{*;}
    -keep public class com.baker.speech.asr.AsrConstants{*;}
    -keep public class com.baker.speech.asr.AsrErrorConstants{*;}
    -keep public class com.baker.speech.asr.BakerRecognizer{
        		public ;
    }
    -keep public class com.baker.speech.asr.vadJni{*;}
    -keep public class com.baker.speech.asr.event.EventManagerMultiNet$BakerWebSocketListener{*;}

SDK关键类

  • BakerRecognizer:语音识别关键业务处理类,全局只需一个实例即可。
  • BakerRecognizerCallback:实时识别结果源数据回调类。您可以在这些个回调方法中获取到当前识别的各类结果和状态,或者错误信息。您可以在回调方法中处理识别结果。设置参数时请将此callback提交给BakerRecognizer实例。

调用说明

  • 初始化BakerRecognizer类,得到BakerRecognizer的实例。
  • 如果是调用我们公有云公共识别接口,请采用以下示例代码初始化BakerRecognizer类,传入由我们授权邮件里面给到的账户相关的clientId和clientSecret。

    BakerRecognizer bakerRecognizer = new BakerRecognizer();
    bakerRecognizer.initSdk(Context, clientId, clientSecret, BakerRecognizerCallback);

    如果是私有化部署请采用以下示例代码初始化BakerRecognizer类。并注意需要在参数中设置私有化部署的识别服务器地址,仅私有化部署时需要设置该参数。

    BakerRecognizer bakerRecognizer = = new BakerRecognizer();
    bakerRecognizer.initSdk(Context, BakerRecognizerCallback);
    bakerRecognizer.setUrl("ws://xxxx"); //设置私有化部署的识别服务器地址
  • 设置BakerRecognizer识别所需参数,包括必填参数和非必填参数。请参考demo和注释信息。
  • 调用BakerRecognizer. startAsr()方法开启语音识别。识别结果反馈在callback类的各个回调方法中,各回调方法的介绍请参考以下BakerRecognizerCallback回调类方法说明。调用BakerRecognizer. stopAsr()方法结束识别,SDK中无VAD及相关功能。
  • 如果需要发起新的识别请求,可以重复第1.2-1.3步。
  • 此一句话识别版本暂时只支持sdk启动设备自带录音功能完成识别。文件识别和字节流识别功能近期即将开放。

参数说明

参数 参数名称 是否必填 说明
initSdk 初始化 设置授权相关信息及回调信息
setUrl 识别服务器地址 仅私有化部署,需要设置服务器URL。
setDomain 设置识别场景 默认是common。
startAsr 开启识别 开启识别时调用
stopAsr 结束识别 结束识别时调用

BakerRecognizerCallback回调类方法说明

参数 参数名称 说明
onReadyOfSpeech 准备就绪 网络准备就绪后回调
onResult (List nbest, List uncertain, boolean isLast, String traceId) 流式识别持续返回数据的接口回调 此回调方法会被多次唤起。持续返回实时的识别数据信息。List nbest参数是一个识别结果集合,最优识别结果理论上是nbest(0),List uncertain参数是一个预测的可能出现的语音识别内容的结果集,供选择使用。boolean isLast 当前结果是否是最终识别数据,false:否,true:是。
onEndOfSpeech 识别正常结束 正常识别结束时,会唤起此回调方法。
onVolumeChanged (int volume) 识别音量信息 volume是取值0-100之间的整数,代表声音的分贝值。
onError 识别出现错误 int code是错误码,错误码具体请参考以下错误码对照表。String message是具体的错误信息日志。识别过程中出现各种错误情况都会回调此方法。

错误码说明

错误码 含义
13180001 缺少ClientId
13180002 缺少Secret
13180003 token获取失败
13180004 没有录音权限
13180005 本地网络不可用
13180006 网络未准备好,没有调用start方法
13180007 录音尚未初始化
13180008 正在录音
13180009 发送的数据为空
13180010 response is null
13180011 gson to object error
13180012 websocket发送消息出错
13180013 websocket onFailure error
13180014 录音意外中断
90000 文本数据
30001 HTTP请求参数错误
30002 服务内部错误
30003 识别结果解析出错
30004 应用包名未知
30005 语音质量问题
30006 输入语音过长
30007 连接识别引擎失败
30008 会话id不存在
30009 Rpc调用非法
30010 redis rpop操作返回空
30011 redis rpop值不合法
30012 rpc调用识别引擎失败
30013 Redis rpop操作失败
30014 redis lpush操作失败
30015 单个语音分片过长
30016 回调url失败
40001 json解析失败
40002 json字段不全
40003 版本错误
40004 json字段值类型错误
40005 参数错误
40006 idx超时
40007 idx顺序错误
40008 token校验失败
40009 token处于未激活状态
40010 token已过期
40011 使用量已超过购买量
40012 qps错误
50001 处理超时
50002 内部 rpc 调用失败
50003 服务端繁忙
50004 其他内部错误