2011-11-19 24 views
2

我正在嘗試將語音識別功能集成到我的相機應用程序中,更具體地說,我希望我的相機可以打開,然後單擊按鈕「收聽」,然後它會偵聽單詞「快照」,然後拍攝一張照片。我已經在應用程序上有一個按鈕,它只是將語音部分添加到它。你如何得到它來檢查特定的單詞?如何將語音識別與我的相機應用程序集成?

回答

0

這表明TTS和語音識別的完整使用

​​

而且你需要以下條件:

一個簡單的方法來匹配就是用這個循環:

protected void receiveWhatWasHeard(List<String> heard, 
     ) 
{ 
    WordDictionary command = new WordDictionary("Add"); 
    for (String said : heard) 
    { 
     if (command.isIn(said.split("\\s"))) 
     { 
      Log.d(TAG, "heard add"); 
     } 
    } 
} 

and this class:

public class WordDictionary 
{ 
    private Set<String> words; 

    public WordDictionary(String... wordsIn) 
    { 
     this(Arrays.asList(wordsIn)); 
    } 

    public WordDictionary(List<String> wordsIn) 
    { 
     words = new LinkedHashSet<String>(wordsIn); 
    } 

    public Set<String> getWords() 
    { 
     return words; 
    } 

    public boolean isIn(String word) 
    { 
     return words.contains(word); 
    } 

    public boolean isIn(String [] wordsIn) 
    { 
     boolean wordIn = false; 
     for (String word : wordsIn) 
     { 
      if (isIn(word)) 
      { 
       wordIn = true; 
       break; 
      } 
     } 
     return wordIn; 
    } 

} 

而且你的活動需要這樣的:

@Override 
    protected void 
      onActivityResult(int requestCode, int resultCode, Intent data) 
    { 
     if (requestCode == VOICE_RECOGNITION_REQUEST_CODE) 
     { 
      if (resultCode == RESULT_OK) 
      { 
       List<String> heard = 
         data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); 
       for (int i = 0; i < heard.size(); i++) 
       { 
        Log.d(TAG, i + ": " + heard.get(i)); 
       } 
       receiveWhatWasHeard(heard); 
      } else 
      { 
//fail 
      } 
     } 
     super.onActivityResult(requestCode, resultCode, data); 
    } 
+0

我試圖導入你在裏面的應用程序,我有錯誤思想給我幫助? – tjr2010

+0

哪個應用程序和哪些錯誤? – gregm

0

要真正拍照,一旦你得到了用戶所說的「快」,你必須實現對相機應用的替代信號。您可以查看相機預覽示例應用程序(在API演示/圖形中)以查看如何顯示預覽圖像。 Camera類概述具有關於如何實際捕獲圖像的詳細信息。