android讯飞语音开发常遇到的问题

2023-07-29,,

场景:android项目中共使用了3个语音组件:在线语音听写、离线语音合成、离线语音识别

11208:遇到这个错误,授权应用失败,先检查装机量(3台测试权限),以及appid的申请时间(35天期限),我的没问题,所以就定位在资源文件的问题了。请注意:保证所有的资源文件都是最新的(在线语音听写、离线语音合成、离线语音识别),比如说你某个页面只需要离线语音识别,但是却没有更新“离线语音合成”的资源文件(common.jet).

23108:这个错误提示语法构建失败,其实我已经写语法了,但是由于编码乱码的原因,造成语法构建失败,所以编码问题也请大家注意。

待续。。。

讯飞官方提供的错误码及解决办法:

错误码 错误码说明 原因说明 解决方案
10106 MSP_ERROR_INVALID_PARA  无效的参数 传入的参数有误 查看参数是否传错了地方,参数值是否有问题
10107     可能是
jar 和 libmsc.so 不一致 。 魅族有预装我们的软件 可能会把libmsc.so push到 System  lib 下面,造成版本之间的混乱
10108 无效的句柄   一般是客户端网络问题,导致服务端释放了这路会话。所以客户端消息再来的时候,就报无效句柄了。
10109 MSP_ERROR_INVALID_DATA  无效的数据 (1)上传的命令词语法文件有问题(2)网络状况导致音频数据传输不了 客户端上传的命令词语法,单词长度限制为128字节。语法首部限制为#ABNF
1.0  UTF-8; 或者 #ABNF 1.0 gb2313;
10110 MSP_ERROR_NO_LICENSE    
10111 MSP_ERROR_NOT_INIT          没有初始化 没有调用初始化,或登录未完成  
10114 MSP_ERROR_TIME_OUT         连接超时 网络环境出问题了  
10117 MSP_ERROR_NO_ENOUGH_BUFFER                  没有足够的内存 每次合成字数太多 每次合成字数限制4096字节,时长60s
10118 MSP_ERROR_NO_DATA         
没有数据
前段点VAD_BOS没有检测到数据即停止监听 检查代码中VAD_BOS的设置
    合成是没有文本  
10119   网络连接异常 可能是你说话离开麦克风比较远时,录音的音频声音太小作为噪音处理的,所以识别不到
10121 MSP_ERROR_ALREADY_EXIST 人脸模型已经存在  
10129      
10132 无效的用户操作 上次服务未正常结束又启动下次的服务 在本次合成或者识别之前确认,上次合成或者识别已经结束
10137 语法构建频繁 上次构建还没有出结果又构建了  
10138 词典更新失败 离线命令词出现 上一次更新词典未结束 又来一次
10214 DNS解析错误 域名转换到IP失败 换个网络通畅的环境,或者先用固定IP测试
10301 解析错误 协议被不法分子篡改了,导致http协议解析失败  
10402 没有结果   在使用通用语义时:在跳转sdk下载界面时,没有勾选具体的语义场景;在使用私有语义时:后台语义测试正常,但没有点击发布
10407   appid和资源没有来自同一应用下  
10701 处于不活跃的状态 grammarid可能有误  
10702 语法错误   检查语法文件格式、内容、编码设置(实际编码与文件开头、代码参数设置是否一致
10703 没有活跃的语法 客户端没有携带任何语法文件,直接调用语法接口,造成引擎找不到可激活的语法文件 查看是否有合法的grammarid,语法文件是否有误,语法文件的真实编码、文件头填写的编码、函数中传入的编码参数,三者是否一致
11201 未经授权的语音应用 没有审核的话每天的使用次数为500次,调用startlistening,调用一次算一次 如果应用语音功能已经完成,可以提交上线审核。审核通过后就没有限制
11207 禁止使用未经授权的语言服务 测试版本超过限制 测试版本的只有3台装机量,35天的使用限制
11208
11700 MSP_ERROR_IFR_NOT_FACE_IMAGE 没有检测到人脸  
12413    图片传的太大,http最大限制了  jpg 格式,人脸最低在80*80像素,大小建议不超过150k  
14002 服务端脚本错误,没有结果 appid
跟语义的服务没有关联好
1、在使用通用语义时:在跳转sdk下载界面时,没有勾选具体的语义场景;
2、在使用私有语义时:后台语义测试正常,但没有点击发布,会出现14002;
16006 请求超时    
20004 无效的结果 没有说话就停止识别监听  
20005 Android无匹配结果   使用命令词识别或者语法文件识别出现,查看所说的话是否在语法文件或者命令词识别中
20006 Android录音失败   A、重启手机,B、查看是否使用的虚拟机,建议真机调试,虚拟机很多时候不能识别到麦克风设备,C、查看工程是否添加了录音权限,D、查看是否有其他进程正在占用麦克风;
20009 iOS录音失败
20010 iOS无匹配结果   使用命令词识别或者语法文件识别出现,查看所说的话是否在语法文件或者命令词识别中
20012 参数错误    
20017 本地引擎错误 被异常打断 做语音识别出现20017错误,可能会是同时在一个Activity做识别和合成造成,但主要可能是如果上一次未结束,又开启了下一次。可以检查一下上一次是否结束,结束标志:识别判断上一次是否结束:
OnResult isLast=true 或者 onError    
 合成判断上一次是否结束:onCompleted
21001 没有安装语音组件   1、有没有使用SpeechUtility.createUtility()设置appid
2、有没有将libmsc.so放到工程中
3、如果使用的是讯飞语音+的本地功能,有没有安装讯飞语音+
4、如果设备是android
5.0及其以上,需要将工程中的armeabi和armeabi-v7a文件夹中都放上libmsc.so,如果你下载的SDK中没有armeabi-v7a对应的库,可以将armeabi中的libmsc.so复制一份到armeabi-v7a文件夹中

5、SpeechUtility.createUtility()如在Application中调用,需要在Mainifest中注册该Applicaiton。此方法不是必须在Appcation中调用,可在需要使用语音能力之前,例如进入语音搜索页面调用。
6、使用Android Studio的开发者注意将so放在jniLib目录下,或者在配置文件中指定so加载的路径。

21002 引擎不支持    
21003 初始化失败 调用过程中刚开始初始化就开始设置参数、开始识别或开始合成 初始化是相对异步进行的,初始化的时候在InitListener里面的onInit()回调初始化成功之后在开始设置参数、调用合成、调用识别。需要先设置appid。使用speechapi.jar的话需要先安装讯飞语音+。添加各项权限
23001   在离线语音合成没有放入资源 使用demo测试时,需将res中资源拷贝到demo中assets相应的路径下;使用带UI接口时,需要将assets下的文件拷贝到项目中
23003 ERROR_ASR_OUT_OF_MEMORY 内存耗尽  
23007 引擎未初始化   可能是未按照Demo进行集成,没有将资源拷贝进项目中
23108 打开文件失败 一般在打开文件时候没有权限导致打开失败或者是代码里相关文件的路径写错,参数设置不正确。 1.检查是否增加本地读写权限:

<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"
/>
2.检查语法路径是不是正确,设置的参数是不是正常。

23109 识别语法错误 读取资源、词典、场景等文件失败  
23300 识别语法有问题    
24110 本地引擎错误    

android讯飞语音开发常遇到的问题的相关教程结束。

《android讯飞语音开发常遇到的问题.doc》

下载本文的Word格式文档,以方便收藏与打印。