2011-11-19 55 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类概述具有关于如何实际捕获图像的详细信息。