帮助文档能力产品语音识别处理

语音识别处理常见问题

APPID的使用规范

申请的语音服务APPID和对应下载的SDK具有一致性,请确保在使用过程中规范传入。一个APPID对应一个平台下的一个应用,如在多个平台开发同款应用,还需申请对应平台的APPID。

 

上传音频的采样率与采样精度

采样率16KHZ或者8KHZ,单声道,采样精度16bit的PCM或者WAV格式的音频。

 

听写VS识别

听写:将语音直接转换成相应的文字。 识别:先上传命令词或者abnf语法文件。如果上传的是命令词,则只会识别命令词,并返回识别结果,若命令词中没有匹配,则会返回没有匹配结果的错误码;如果上传的是语法文件,会按照语法文件的格式返回相应的匹配信息,若无匹配的结果,则会返回没有匹配结果的错误码。

 

使用语音听写,一次会话的最长时间

一次会话的最长时间为60秒。

 

联系人、用户词表、命令词、abnf语法文件的区别

联系人与用户词表是在听写的时候使用,命令词和abnf语法文件是在识别的时候使用。使用联系人时,程序会读取用户的联系人信息,在听写时,优先识别联系人;使用用户词表,词表由开发者自定义,可以涉及各种偏门或专业术语,上传词表后,会优先识别词表中的词汇,提高个性化识别体验。 命令词识别时需要上传命令词,在识别时,识别结果只在命令词中匹配,并且会有识别结果的置信度;使用abnf语法文件时,需要进行语法文件的上传,语法文件可自行编写,识别时,只有结果与语法文件相匹配时 ,才返回结果,否则返回没有匹配结果的错误。

 

日志文件的生成配置

在msc.cfg文件中配置“output=1”时,会输出运行日志到msc.log,lvl=-1,log=文件路径/msc.log(举一个例子./home/../msc.log);“output=0”不生成日志,Level值越小日志越详细,Level=-1为最详细。

 

数据是否要加wav头?是否可以直接mic数据至服务器?

wav文件由一个pcm文件头及pcm数据组成,pcm文件头是用于标识该wav文件的pcm数据采样率、量化比特数、文件长度等信息。mic录音得到的就是pcm数据,可以直接上传语音云进行识别,不需要添加pcm文件头。需要注意,mic录音的pcm数据采样率与量化比特数需要与SessionBegin中设置的参数一致。

 

合成时如何记住播放位置

返回的音频中,包括合成的进度信息(一段音频对应字符开始和结束位置),可以通过播放进度保存当前记录,下次继续播放当前位置。

 

合成速度时快时慢

检查下auf=audio/L16;rate=16000参数中“;”前面是否有空格,如果有,需要删除。

 

英文识别

Android和ios平台,需要设置参数domain=iat,language=en_us;其他平台需要设置ent=sms-en16k或者ent=sms-en。

 

粤语识别

Android和ios平台,需要设置参数domain=iat,language=zh_cn,accent=cantonese;其它平台进行开发时,需要在初始化时传入ent=cantonese16k。

 

使用Android语音SDK,将工程导入eclipse,运行出现错误,couldnot load msc:findLibraryreturned null

检查是否正确导入libmsc.so动态库。

 

Android语音SDK的demo运行时出现 java.lang.NoClassDefFoundError:com.iflytek.Mscdemo.“xxx”DemoActivity Could not found class ‘com.iflytek.cloud.ui.RecognizerDialog’

检查此activity是否存在;将msc.jar删除,重新导入;Java build path ->order and export 勾选msc.jar和相关依赖项(新版adt会有android private libraries和android dependencies两个,根据实际情况勾选,有时候需要将这两项全勾上,否则报错)。

 

运行Android平台demo,进行识别出错,显示不能找到麦克风,没有录音文件

检查麦克风是否可用,是否完好;检查是否使用的是模拟器,eclipse的模拟器很多时候不能识别麦克风设备;检查是否加入了录音权限;重启手机;检查是否有其他进程正在占用麦克风。

 

使用Android平台开发包,运行报错java.lang.SecurityException.ConnectivityService:Neither user10040错误

需要添加权限,在AndroidManifest.xml文件中添加相应手机资源获取权限。

 

集成语音识别功能时,程序启动后没反应?

请检查是否忘记使用SpeechUtility初始化。也可以在转写监听器的onError函数中打印错误信息,根据信息提示,查找错误源。