android讯飞语音开发常遇到的问题
场景: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中调用,可在需要使用语音能力之前,例如进入语音搜索页面调用。 |
|
| 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" |
| 23109 | 识别语法错误 | 读取资源、词典、场景等文件失败 | |
| 23300 | 识别语法有问题 | ||
| 24110 | 本地引擎错误 |
android讯飞语音开发常遇到的问题的更多相关文章
- Android讯飞语音云语音听写学习
讯飞语音云语音听写学习 这几天两个舍友都买了iPhone 6S,玩起了"Hey, Siri",我依旧对我的Nexus 5喊着"OK,Google" ...
- Android 讯飞语音听写SDK快速接入(附空指针解决和修改对话框文字方法)
1.账号准备工作 首先要有一个讯飞的账号啦,为后面申请APPID.APPKey等东西做准备.顺带一提:讯飞对不同认证类型用户开 放的SDK的使用次数是有不同的,详情如下图. 账号申请完成后,需要去你自 ...
- Android 讯飞语音之语音合成(在线有声朗读)
原文:http://www.cnblogs.com/scetopcsa/p/3845427.html 在线语音合成的使用方法: 首先下载相关的sdk,这个网址里有多种版本,我选择的Android. h ...
- iOS: 讯飞语音的使用
一.介绍: 讯飞语音做的相当不错,容错率达到90%多,如果需要做语音方面的功能,它绝对是一个不错的选择.讯飞语音的功能很多:语音听写.语音识别.语音合成等,但我们最常用的还是语音听写.讯飞语音中包含界 ...
- 基于讯飞语音API应用开发之——离线词典构建
最近实习在做一个跟语音相关的项目,就在度娘上搜索了很多关于语音的API,顺藤摸瓜找到了科大讯飞,虽然度娘自家也有语音识别.语义理解这块,但感觉应该不是很好用,毕竟之前用过百度地图的API,有问题也找不 ...
- cocos2dx实现android的对讯飞语音的合成(语言朗读的实现)
事实上非常easy,只是有些细节须要注意. 关于讯飞语音在android上的应用,大家须要自己去下载SDK,然后依照讯飞语音提供的api在自己的android的Demo上执行成功,那东西也相当的简单. ...
- Android自带语音播报+讯飞语音播报封装(直接用)
一.Android自带的语音播报 1.查看是否支持中文,在测试的设备中打开‘设置’ -->找到 '语言和输入法'-->查看语音选项,是否支持中文,默认仅支持英文. 使用如下: public ...
- 继《关于讯飞语音SDK开发学习》之打包过程中遇到小问题
关于讯飞语音SDK开发学习 使用vs自带打包,具体怎么操作就不说了,网上关于这方面的资料挺多的.例如:winform 打包部署,VS2010程序打包操作(超详细的),关键是桌面上创建快捷方式中的&qu ...
- iOS开发讯飞语音的集成
1.进入官网注册账号,登陆,注册,应用. 2,下载sdk 导入系统库. 3,关闭bitcode 4,初始化讯飞语音. NSString * initString = [[NSString alloc ...
随机推荐
- CentOS学习笔记--Tomcat安装
Tomcat安装 通常情况下我们要配置Tomcat是很容易的一件事情,但是如果您要架设多用户多服务的Java虚拟主机就不那么容易了.其中最大的一个问题就是Tomcat执行权限.普通方式配置的Tomca ...
- 小米、MIUI、sqlite3: not found--miui安装sqlite3
以下为miui安装sqlite3的教程: 1.从AVD中将sqlite3导入到PC的D:\android目录下(AVD的版本需要和手机操作系统的版本相同). #adb pull system/xbin ...
- 05-Tom猫(UIImageView的简单运用)
ViewController.h文件中: @interface ViewController : UIViewController @property (weak, nonatomic) IBOutl ...
- JS焦点图 上下翻动 支持IE6
<div class="slider"> <ul class="num" id="homePushName"> &l ...
- 使用JavaScript获取Request中参数的值
本人很少写博客,有不正确的地方还希望大家多多指导. 假设现在有一个URL,如下. http://www.jacky.com/?id=1101&name=jacky 如何通过JS访问到id和na ...
- 未能加载文件或程序集“Oracle.Web, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342”或它的某一个依赖项
当前系统环境描述: Win7x64+VS2012+IIS7 当前情况描述: 发布Web服务,在浏览的时候出现以下问题:未能加载文件或程序集“Oracle.Web, Version=2.112.1.0, ...
- form表单无刷新提交文件(iframe)
先看一段代码(PHP例子) 1.表单代码(form.html): <iframe name="testIframeName" style="display:none ...
- LotusPhp中配置文件组件LtConfig详解
LotusPhp中配置文件组件LtConfig是约定的一个重要组成部分,适用于多个场景,多数的LotusPhp组件如数据库,缓存,RBAC,表单验证等都需要用到配置组件,LtConfig配置组件也是L ...
- wampserver php多版本5.2--5.6和apche2.2/2.4
一.准备 wampserver2.5 php5各版本 php5.2到php5.6 apache2.2和apache2.4 二.安装 先成功安装wampserver2.5,如果安装不成功,多是vc11没 ...
- Java字符判断
从键盘上输入一个字符串,遍历该字符串中的每个字符,若该字符为小写字母,则输出“此字符是小写字母”:若为大写字母,则输出“此字符为大写字母”:否则输出“此字符不是字母”. 代码入下: import ja ...