2011-07-14 52 views
0

我想添加一些命令到Android默认voicedialer应用程序。它有打开,拨号,呼叫,重拨等命令,我想包括让'说'找到它。我已经从here下载了源代码并在Eclipse中进行了编译。应用程序会为这些命令的参数设置语法,如存储联系人列表中的人员的姓名和电话号码,以便在为CALL JOHN语音命令识别其姓名时生成意图。对于这个命令中的CALL,它只是将得到的识别字符串的第一个字与“CALL”进行比较。如何将语法添加到默认VoiceDialer应用程序?

我补充说:“FIND”作为额外否则,如果如下所示onRecognitionSuccess()函数条件:

public class CommandRecognizerEngine extends RecognizerEngine 
{ 
............ 
protected void onRecognitionSuccess(RecognizerClient recognizerClient) throws InterruptedException 
{ 
    ..................... 
    if ("DIAL".equalsIgnoreCase(commands[0])) 
     { 
      Uri uri = Uri.fromParts("tel", commands[1], null); 
      String num = formatNumber(commands[1]); 
      if (num != null) 
      { 
       addCallIntent(intents, uri, literal.split(" ")[0].trim() + " " + num, "", 0); 
      } 
     } 
    ................ 
    else if ("FIND".equalsIgnoreCase(commands[0])) 
     { 
      if (Config.LOGD) 
       Log.d(TAG, "FIND detected..."); 
     } 
    }//end onRecognitionSuccess 
}//end CommandRecognizerEngine 

,但我的应用程序不能识别它。有谁知道识别器如何检测诸如OPEN或CALL等命令或将我引用到适当的文档?

谢谢。

+0

任何人都可以帮忙吗? – shaffooo

回答

1

因为它已经过了一年了,我怀疑你需要这个答案了。但是,其他人可能会像我一样通过Google找到这些信息。

现在,将语法应用于Android语音识别的最佳方式是将结果数设置得更高,然后根据语法筛选结果。这并不完美,因为识别的单词可能没有通过列入清单的阈值,但它可以极大地提高所有语音识别应用程序的准确性,这些应用程序的类型可以说是有限的。

+0

谢谢SeniorA。虽然我现在没有使用它,但是你是对的,这是有道理的。 – shaffooo

相关问题