CMUSphinx最近在Android平台上实现了连续监听。您可以在wiki page
上找到演示您可以配置一个或多个关键字进行收听,默认关键字是“oh mighty computer”。您也可以配置检测阈值。目前支持的语言是美国英语和少数其他语言(法语,西班牙语,俄语等)。你可以训练你自己的语言模型。
听力很简单,你创建一个识别器和只添加关键词识别搜索:
recognizer = defaultSetup()
.setAcousticModel(new File(modelsDir, "hmm/en-us-semi"))
.setDictionary(new File(modelsDir, "lm/cmu07a.dic"))
.setKeywordThreshold(1e-5f)
.getRecognizer();
recognizer.addListener(this);
recognizer.addKeywordSearch(KWS_SEARCH_NAME, KEYPHRASE);
switchSearch(KWS_SEARCH_NAME);
,并定义一个监听器:
@Override
public void onPartialResult(Hypothesis hypothesis) {
String text = hypothesis.getHypstr();
if (text.equals(KEYPHRASE))
// do something
}
,而不是一关键短语,你可以指定一个命令文件路径在文件系统上:
recognizer.addKeywordSearch(KWS_SEARCH, new File(assetsDir,
"commands.lst").toString());
哪个命令文件commands.lst
个包含命令每行一个:
oh might computer
ok google
hello dude
要放在文件系统这个文件,你可以把它的资产和运行在应用程序启动syncAssets。
4a。语音命令无法识别时会发生什么? – 2010-06-30 14:55:48
如果该命令无法识别,程序应继续等待可理解的语音或触摸输入 – Joe 2010-07-01 11:36:21
嘿乔,我有类似的需求。你能得到你想要的东西吗? – wullxz 2011-05-17 07:00:07