1.1. 语法识别

在使用在线语法识别时,如果要使用已经通过官网上传(参考上文)的语法文件,则不需要再设置语法ID参数;而使用离线语法识别时,需要设置本地语法名字(在语法文件中定义)。

注:在线语法识别服务已下线,新用户无法使用。

  1. //设置引擎类型
  2. mAsr.setParameter( SpeechConstant.ENGINE_TYPE, engineType );
  3. if( SpeechConstant.TYPE_LOCAL.equals(engineType) ){
  4. // 设置本地识别资源
  5. mAsr.setParameter(ResourceUtil.ASR_RES_PATH, getResourcePath());
  6. // 设置语法构建路径
  7. mAsr.setParameter(ResourceUtil.GRM_BUILD_PATH, grmPath);
  8. // 设置返回结果格式
  9. mAsr.setParameter(SpeechConstant.RESULT_TYPE, mResultType);
  10. // 设置本地识别使用语法id
  11. mAsr.setParameter(SpeechConstant.LOCAL_GRAMMAR, grammarName );
  12. }else{
  13. //使用网站上传的语法文件时,只明确指定 SUBJECT,不用指定语法ID;使用在应用上传的则相反。
  14. if( usingWebsideGrammar ){
  15. mAsr.setParameter( SpeechConstant.CLOUD_GRAMMAR, null );
  16. mAsr.setParameter( SpeechConstant.SUBJECT, "asr" );
  17. }else{
  18. mAsr.setParameter( SpeechConstant.CLOUD_GRAMMAR, cloudGrammarID );
  19. }//end of if-else using grammar in webside or not
  20. }//end of if-else local or not
  21. ret = mAsr.startListening( mRecognizerListener );

此外,本地引擎在语法文件构建后,还可以通过更新词典,更新指定规则中的词语,如联系人等,见后面更新词典章节内容。此外,MSC SDK 还提供了录音交互的对话框控件,参考后面识别对话框的内容。