2011-07-14 82 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

相關問題