我想做一个简单的游戏,它具有PICK、LEFT、Right和停止的功能。
我的问题是我想使用android的语音到文本功能将游戏的这些功能变成语音识别。我使用 eclipse 作为我的 IDE,我想知道如何将它与应用程序集成。
希望你能给我一个样品,这将是一个很大的帮助。
我想做一个简单的游戏,它具有PICK、LEFT、Right和停止的功能。
我的问题是我想使用android的语音到文本功能将游戏的这些功能变成语音识别。我使用 eclipse 作为我的 IDE,我想知道如何将它与应用程序集成。
希望你能给我一个样品,这将是一个很大的帮助。
Intent i = new Intent(
RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
i.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
i.putExtra(RecognizerIntent.EXTRA_PROMPT, "Say the command!");
startActivityForResult(i, 10);
然后添加活动结果。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 10 && resultCode == RESULT_OK) {
ArrayList<String> s = data
.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
//Do whatever you want with the data here.
super.onActivityResult(requestCode, resultCode, data);
}
那么你需要两件事。
在后台运行语音识别器,这样就不会有干扰游戏的烦人对话
可靠地识别您的目标词
对于#1。您需要SpeechRecognizer和一个循环来运行它,例如使用this的循环,或者我想您可以使用对话版本。无论哪种方式开始使用这个抽象类给你一个良好的开端。
对于#2,您必须进行一些测试。下载Android Sensor Playground应用程序,看看识别器是否能够可靠地识别您的单词。如果这是真的,只需使用一个简单Sting<Set>
的来匹配任何识别结果。(或者你可以使用这个方便的类)如果识别器在某些单词上给你带来麻烦,那么你需要一些词干或语音匹配。看这堂课。