1 常见问题
Q:本地SDK支持
A:Android平台语音+SDK已经支持本地合成和本地命令词识别功能了,语音唤醒和声纹功能也即将上线。
Q:次数限制的疑问
A:开发集成阶段的服务量为500次/日,开发者需要提交应用上线审核,通过后可以获得更多的每日服务量。
Q:应用上线审核的时间范围
A:应用上线审核流程需要4个工作日(工作日不包括周六周日以及国家法定节假日)。
Q:Appid的使用规范
A:申请的Appid和对应下载的SDK具有一致性,请确保在使用过程中规范传入。
一个Appid对应一个平台下的一个应用,如在多个平台开发同款应用,还需申请对应平台的Appid。
Q:上传音频的采样率与采样精度
A:采样率16KHZ或者8KHZ,单声道,采样精度16bit的PCM或者WAV格式的音频。
Q:中英文混合识别
A:目前还不支持。
Q:听写VS识别
A:听写:将语音直接转换成相应的文字。
识别:先上传命令词或者abnf语法文件。如果上传的是命令词,则只会识别命令词,并返回识别结果,若命令词中没有匹配,则会返回没有匹配结果的错误码;如果上传的是语法文件,会按照语法文件的格式返回相应的匹配信息,若无匹配的结果,则会返回没有匹配结果的错误码。
Q:使用语音听写,一次会话的最长时间
A:一次会话的最长时间为60秒。
Q:联系人、用户词表、命令词、abnf语法文件、bnf语法文件的区别
A:联系人与用户词表是听写的时候使用,命令词和abnf语法文件是在识别的时候使用。
使用联系人时,程序会读取用户的联系人信息,在听写时,优先识别联系人;使用用户词表,词表由开发者自定义,可以涉及各种偏门或专业术语,上传词表后,会优先识别词表中的词汇,提高个性化识别体验。
命令词识别时需要上传命令词,在识别时,识别结果只在命令词中匹配,并且会有识别结果的置信度;使用abnf语法文件时,需要进行语法文件的上传,语法文件可自行编写,识别时,只有结果与语法文件相匹配时,才返回结果,否则返回没有匹配结果的错误;使用语音+的离线命令词识别时,需要使用bnf语法在本地编写语法文件,之后就可以本地构建、本地语法文件识别了。
Q:日志文件的生成配置
A:在msc.cfg文件中配置“output=1”时,会输出运行日志到msc.log,lvl=-1,log=文件路径/msc.log(例如./home/../msc.log);“output=0”不生成日志,Level值越小日志越详细,Level=-1为最详细。
Q:数据是否要加wav头?是否可以直接mic数据至服务器?
A:wav文件由一个pcm文件头及pcm数据组成,pcm文件头是用于标识该wav文件的pcm数据采样率、量化比特数、文件长度等信息。
mic录音得到的就是pcm数据,可以直接上传语音云进行识别,不需要添加pcm文件头。
需要注意,mic录音的pcm数据采样率与量化比特数需要与SessionBegin中设置的参数一致。
2 参数相关
Q:英文识别
A:Android和ios平台,需要设置参数domain=iat,language=en_us;
其他平台需要设置ent=sms-en16k或者ent=sms-en;
Q:粤语识别
A:Android和ios平台,需要设置参数domain=iat,language=zh_cn,accent=cantonese;
其它平台进行开发时,需要在初始化时传入ent=cantonese16k;
3 错误码相关
Q:10109错误
A:客户端上传的命令词语法,存在单词长度超过128字节。
客户端上传abnf时,语法内容不是以#ABNF 1.0 UTF-8;和#ABNF 1.0 gb2312;开头,目前只支持这两种格式的abnf语法上传。
携带的语法内容为空。
Q:10114错误
A:查看网络环境是否正常,查看是否使用的是公司网络(很多公司网络会将一些网络地址和端口屏蔽掉),查看讯飞的服务器地址和端口是不是被屏蔽(服务器地址dev.voicecloud.cn 端口号是1028和80)。
Q:10214错误
A:DNS解析错误,即域名转换到IP失败,可以换个网络通畅的环境,或者先用固定IP测试。
Q:10407错误
A:请确认申请的Appid是否授权通过;
请确认申请的Appid和下载的SDK是否具有一致性。
Q:10702错误
A:10702为没有有效的语法文件,查看是否已经成功上传语法文件,上传的语法文件格式是否是正确的,查看文件中的字符、数字、空格、标点是否是相应的格式(如全角还是半角,英文还是中文,gb2312编码还是utf-8编码,实际编码与文件开头与代码参数设置是否一致)。
Q:10703错误
A:客户端没有携带任何语法文件,直接调用语法接口,造成引擎找不到可激活的语法文件。
4 技术精华
1、flash录音音频由16k变为11k的问题
开发者反馈:flash录音的音质有问题,导致识别不准确,具体分析结果如下:
开发者的测试环境:
1)使用chrome浏览器;
2)从adobe官网下载并安装最新的flash插件;
3)使用语音时,在flash的授权界面勾选“记住”;
4)刷新页面;
5)开始识别,并保存录制下来的音频;
6)播放音频,发现音频是11k的,而不是16k;
7)如果第三步不勾选“记住”或者勾选之后还没有刷新就开始使用,则录音是正常的16k。
从代码和日志中看,在录音开始之前的配置没有任何问题,但是录音器输出音频数据确实变成了11k的。而且该现象在IE和Firefox浏览器中不会出现该问题(已安装最新flash插件的条件下)。
经过分析,该问题的直接原因是flash插件的功能问题,不过在最新的16.0版本中已修复,但是为什么安装了最新版本的插件,chrome使用的却不是最新版本?原来chrome在安装时自带了flash插件,chrome默认使用自己的插件,而不是安装在系统中的插件,如果在chrome的插件列表中“停用”自带的flash插件即可正常使用。
该问题不光影响chrome浏览器,还包括使用chromium内核的大量国产“双核”浏览器,解决办法如下:
1)chrome浏览器更新到38.0以上,该版本自带的flash版本就是16.0,35.0的chrome自带14.0的flash插件,就不能正常使用,如果是其他使用chromium内核的浏览器,就要保证内核升级到38.0以上;
2)保证用户安装了16.0以上版本的flash插件,进入chrome://plugins,搜索flash,把版本低的插件停用掉,有些浏览器屏蔽了“chrome://plugins”(比如百度浏览器),那么该方法就无效了;
3)使用IE兼容模式,这样使用的就是IE的flash插件,只要IE的flash插件版本够高就可以正常使用。
该问题只能从用户端更换flash插件解决,从SDK和开发者方面只能在界面上提示用户,无法主动解决。
5 Android平台
Q:语音SDK和语音+SDK的区别
A:使用语音SDK需要导入msc.jar和libmsc.so,进行相关功能实现;使用语音+SDK时,需要安装讯飞语音+APK,导入SpeechApi.jar到自己工程中,并且可以使用部分离线功能。
Q:使用Android语音SDK,将工程导入eclipse,运行出现错误,couldnot load msc:findLibrary returned null
A:检查是否正确导入libmsc.so动态库。
Q:Android语音SDK的demo运行时出现 java.lang.NoClassDefFoundError:com.iflytek.Mscdemo.”xxx”
DemoActivity Could not found class ‘com.iflytek.cloud.ui.RecognizerDialog’
A:检查此activity是否存在;
将msc.jar删除,重新导入;
Java build path->libraries中加入msc.jar;
Java build path ->order and export 勾选msc.jar和相关依赖项(新版adt会有android private libraries和android dependencies两个,根据实际情况勾选,有时候需要将这两项全勾上,否则报错)。
Q:运行Android平台demo,进行识别出错,显示不能找到麦克风,没有录音文件
A:检查麦克风是否可用,是否完好;
检查是否使用的是模拟器,eclipse的模拟器很多时候不能识别麦克风设备;
检查是否加入了录音权限;
重启手机;
检查是否有其他进程正在占用麦克风。
Q:安装讯飞语音+,下载开发包,运行demo不能离线合成
A:代码中默认使用在线合成,要使用本地合成需要改一下参数,在TtsDemo.java中将mTts.setParameter(SpeechConstant.ENGINE_TYPE, "local");中的cloud改成local,重新build运行即可。
Q:使用Android平台开发包,运行报错java.lang.SecurityException.ConnectivityService:Neither user 10040
错误
A:需要添加权限,在AndroidManifest.xml文件中添加相应手机资源获取权限。
Q:如何使用讯飞语音+开发包进行命令词识别
A:讯飞语音+的命令词识别是使用SpeechRecognizer的buildGrammar方法,其中grammarType使用"keyword",grammarContent是关键字,关键字用英文逗号隔开,具体可参见讯飞语音+开发包中《开发指南.chm》中关于buildGrammar的介绍。
6 错误码列表
错误码 | 错误值 | 意义 |
---|---|---|
MSP_SUCCESS | 0 | 函数执行成功 |
MSP_ERROR_FAIL | -1 | 失败 |
MSP_ERROR_EXCEPTION | -2 | 异常 |
MSP_ERROR_GENERAL | 10100 | 基码 |
MSP_ERROR_OUT_OF_MEMORY | 10101 | 内存越界 |
MSP_ERROR_FILE_NOT_FOUND | 10102 | 文件没有发现 |
MSP_ERROR_NOT_SUPPORT | 10103 | 不支持 |
MSP_ERROR_NOT_IMPLEMENT | 10104 | 没有实现 |
MSP_ERROR_ACCESS | 10105 | 没有权限 |
MSP_ERROR_INVALID_PARA | 10106 | 无效的参数 |
MSP_ERROR_INVALID_PARA_VALUE | 10107 | 无效的参数值 |
MSP_ERROR_INVALID_HANDLE | 10108 | 无效的句柄 |
MSP_ERROR_INVALID_DATA | 10109 | 无效的数据 |
MSP_ERROR_NO_LICENSE | 10110 | 没有授权许可 |
MSP_ERROR_NOT_INIT | 10111 | 没有初始化 |
MSP_ERROR_NULL_HANDLE | 10112 | 空句柄 |
MSP_ERROR_OVERFLOW | 10113 | 溢出 |
MSP_ERROR_TIME_OUT | 10114 | 超时 |
MSP_ERROR_OPEN_FILE | 10115 | 打开文件出错 |
MSP_ERROR_NOT_FOUND | 10116 | 没有发现 |
MSP_ERROR_NO_ENOUGH_BUFFER | 10117 | 没有足够的内存 |
MSP_ERROR_NO_DATA | 10118 | 没有数据 |
MSP_ERROR_NO_MORE_DATA | 10119 | 没有更多的数据 |
MSP_ERROR_SKIPPED | 10120 | 跳过 |
MSP_ERROR_ALREADY_EXIST | 10121 | 已经存在 |
MSP_ERROR_LOAD_MODULE | 10122 | 加载模块失败 |
MSP_ERROR_BUSY | 10123 | 忙碌 |
MSP_ERROR_INVALID_CONFIG | 10124 | 无效的配置项 |
MSP_ERROR_VERSION_CHECK | 10125 | 版本错误 |
MSP_ERROR_CANCELED | 10126 | 取消 |
MSP_ERROR_INVALID_MEDIA_TYPE | 10127 | 无效的媒体类型 |
MSP_ERROR_CONFIG_INITIALIZE | 10128 | 初始化Config实例 |
MSP_ERROR_CREATE_HANDLE | 10129 | 建立句柄 |
MSP_ERROR_CODING_LIB_NOT_LOAD | 10130 | 编解码库未加载 |
MSP_ERROR_NET_GENERAL | 10200 | 网络一般错误 |
MSP_ERROR_NET_OPENSOCK | 10201 | 打开套接字 |
MSP_ERROR_NET_CONNECTSOCK | 10202 | 套接字连接 |
MSP_ERROR_NET_ACCEPTSOCK | 10203 | 套接字接收 |
MSP_ERROR_NET_SENDSOCK | 10204 | 发送 |
MSP_ERROR_NET_RECVSOCK | 10205 | 接收 |
MSP_ERROR_NET_INVALIDSOCK | 10206 | 无效的套接字 |
MSP_ERROR_NET_BADADDRESS | 10207 | 无效的地址 |
MSP_ERROR_NET_BINDSEQUENCE | 10208 | 绑定次序 |
MSP_ERROR_NET_NOTOPENSOCK | 10209 | 套接字没有打开 |
MSP_ERROR_NET_NOTBIND | 10210 | 没有绑定 |
MSP_ERROR_NET_NOTLISTEN | 10211 | 没有监听 |
MSP_ERROR_NET_CONNECTCLOSE | 10212 | 连接关闭 |
MSP_ERROR_NET_NOTDGRAMSOCK | 10213 | 非数据报套接字 |
MSP_ERROR_NET_DNS | 10214 | DNS解析错误 |
MSP_ERROR_MSG_GENERAL | 10300 | 消息一般错误 |
MSP_ERROR_MSG_PARSE_ERROR | 10301 | 解析 |
MSP_ERROR_MSG_BUILD_ERROR | 10302 | 构建 |
MSP_ERROR_MSG_PARAM_ERROR | 10303 | 参数出错 |
MSP_ERROR_MSG_CONTENT_EMPTY | 10304 | Content为空 |
MSP_ERROR_MSG_INVALID_CONTENT_TYPE | 10305 | Content类型无效 |
MSP_ERROR_MSG_INVALID_CONTENT_LENGTH | 10306 | Content长度无效 |
MSP_ERROR_MSG_INVALID_CONTENT_ENCODE | 10307 | Content编码无效 |
MSP_ERROR_MSG_INVALID_KEY | 10308 | Key无效 |
MSP_ERROR_MSG_KEY_EMPTY | 10309 | Key为空 |
MSP_ERROR_MSG_SESSION_ID_EMPTY | 10310 | 会话ID为空 |
MSP_ERROR_MSG_LOGIN_ID_EMPTY | 10311 | 登录ID为空 |
MSP_ERROR_MSG_SYNC_ID_EMPTY | 10312 | 同步ID为空 |
MSP_ERROR_MSG_APP_ID_EMPTY | 10313 | 应用ID为空 |
MSP_ERROR_MSG_EXTERN_ID_EMPTY | 10314 | 扩展ID为空 |
MSP_ERROR_MSG_INVALID_CMD | 10315 | 无效的命令 |
MSP_ERROR_MSG_INVALID_SUBJECT | 10316 | 无效的主题 |
MSP_ERROR_MSG_INVALID_VERSION | 10317 | 无效的版本 |
MSP_ERROR_MSG_NO_CMD | 10318 | 没有命令 |
MSP_ERROR_MSG_NO_SUBJECT | 10319 | 没有主题 |
MSP_ERROR_MSG_NO_VERSION | 10320 | 没有版本号 |
MSP_ERROR_MSG_MSSP_EMPTY | 10321 | 消息为空 |
MSP_ERROR_MSG_NEW_RESPONSE | 10322 | 新建响应消息失败 |
MSP_ERROR_MSG_NEW_CONTENT | 10323 | 新建Content失败 |
MSP_ERROR_MSG_INVALID_SESSION_ID | 10324 | 无效的会话ID |
MSP_ERROR_DB_GENERAL | 10400 | 数据库一般错误 |
MSP_ERROR_DB_EXCEPTION | 10401 | 异常 |
MSP_ERROR_DB_NO_RESULT | 10402 | 没有结果 |
MSP_ERROR_DB_INVALID_USER | 10403 | 无效的用户 |
MSP_ERROR_DB_INVALID_PWD | 10404 | 无效的密码 |
MSP_ERROR_DB_CONNECT | 10405 | 连接出错 |
MSP_ERROR_DB_INVALID_SQL | 10406 | 无效的SQL |
MSP_ERROR_RES_GENERAL | 10500 | 资源一般错误 |
MSP_ERROR_RES_LOAD | 10501 | 没有加载 |
MSP_ERROR_RES_FREE | 10502 | 空闲 |
MSP_ERROR_RES_MISSING | 10503 | 缺失 |
MSP_ERROR_RES_INVALID_NAME | 10504 | 无效的名称 |
MSP_ERROR_RES_INVALID_ID | 10505 | 无效的ID |
MSP_ERROR_RES_INVALID_IMG | 10506 | 无效的映像 |
MSP_ERROR_RES_WRITE | 10507 | 写操作 |
MSP_ERROR_RES_LEAK | 10508 | 泄露 |
MSP_ERROR_RES_HEAD | 10509 | 资源头部错误 |
MSP_ERROR_RES_DATA | 10510 | 数据出错 |
MSP_ERROR_RES_SKIP | 10511 | 跳过 |
MSP_ERROR_TTS_GENERAL | 10600 | 合成一般错误 |
MSP_ERROR_TTS_TEXTEND | 10601 | 文本结束 |
MSP_ERROR_TTS_TEXT_EMPTY | 10602 | 文本为空 |
MSP_ERROR_REC_GENERAL | 10700 | 一般错误 |
MSP_ERROR_REC_INACTIVE | 10701 | 处于不活跃状态 |
MSP_ERROR_REC_GRAMMAR_ERROR | 10702 | 语法错误 |
MSP_ERROR_REC_NO_ACTIVE_GRAMMARS | 10703 | 没有活跃的语法 |
MSP_ERROR_REC_DUPLICATE_GRAMMAR | 10704 | 语法重复 |
MSP_ERROR_REC_INVALID_MEDIA_TYPE | 10705 | 无效的媒体类型 |
MSP_ERROR_REC_INVALID_LANGUAGE | 10706 | 无效的语言 |
MSP_ERROR_REC_URI_NOT_FOUND | 10707 | 没有对应的URI |
MSP_ERROR_REC_URI_TIMEOUT | 10708 | 获取URI内容超时 |
MSP_ERROR_REC_URI_FETCH_ERROR | 10709 | 获取URI内容时出错 |
MSP_ERROR_EP_GENERAL | 10800 | (EP)一般错误 |
MSP_ERROR_EP_NO_SESSION_NAME | 10801 | (EP)链接没有名字 |
MSP_ERROR_EP_INACTIVE | 10802 | (EP)不活跃 |
MSP_ERROR_EP_INITIALIZED | 10803 | (EP)初始化出错 |
MSP_ERROR_LOGIN_SUCCESS | 11000 | 登录成功 |
MSP_ERROR_LOGIN_NO_LICENSE | 11001 | 无授权 |
MSP_ERROR_LOGIN_SESSIONID_INVALID | 11002 | 无效的SessionID |
MSP_ERROR_LOGIN_SESSIONID_ERROR | 11003 | 错误的SessionID |
MSP_ERROR_LOGIN_UNLOGIN | 11004 | 未登录 |
MSP_ERROR_LOGIN_INVALID_USER | 11005 | 无效的用户 |
MSP_ERROR_LOGIN_INVALID_PWD | 11006 | 无效的密码 |
MSP_ERROR_LOGIN_SYSTEM_ERROR | 11099 | 系统错误 |
MSP_ERROR_HTTP_BASE | 12000 | HTTP错误基码 |
7 其他平台
Q:语音云的API能够识别的音频格式
A:目前只支持pcm格式的音频文件。
Q:我用flex air调用合成的时候,出错Cannot import a SWF file when LoaderContext.allowCodeImport is
false
A:开放平台上下载的Flash SDK用于网页开发,支持在AIR上使用。
8 没找到你想要的?
请将登陆讯飞开发平台,将您遇到的问题详细描述,在支持中心提交问题。