我正在尝试将语音识别功能集成到我的相机应用程序中,更具体地说,我希望我的相机打开,然后单击“收听”按钮,它会侦听单词“snap”,然后拍摄照片。我已经在应用程序上有一个按钮,它只是添加了语音部分。如何检查特定词语?
答案 0 :(得分:0)
参考http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/VoiceRecognition.html 它显示了如何为您的应用添加语音识别。 http://developer.android.com/reference/android/speech/package-summary.html 这个包对参考也很有用。
答案 1 :(得分:0)
这显示了TTS和语音识别的完整用法
https://github.com/gmilette/Say-the-Magic-Word-
您还需要以下内容:
匹配的简单方法是使用此循环:
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");
}
}
}
和这堂课:
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);
}
答案 2 :(得分:0)
要在获得用户说“Snap”的信号后实际拍摄照片,您必须实施相机应用的替代品。您可以查看相机预览示例应用程序(在API演示/图形中)以查看如何显示预览图像。 Camera类概述提供了有关如何实际捕获图像的详细信息。