如何正确地对语音识别器进行参数化,以便更容易识别用户可能会说的字词?
据我所知,没有办法。
我认为此网站有误:http://www.4feets.com/2009/04/speech-recognition-in-android-sdk-15/
根据网站,这段代码:
的ArrayList<字符串> potentialResults = new ArrayList<字符串>();
potentialResults.add( “黄色”);
potentialResults.add( “绿色”);
potentialResults.add( “蓝”);
potentialResults.add( “红”);
// Create Intent
Intent intent = new Intent("android.speech.action.RECOGNIZE_SPEECH");
会向识别器提示您可能会说出这些话。然而,它似乎绝对没有。它也与google文档冲突说:
“执行ACTION_RECOGNIZE_SPEECH时可能产生的ArrayList。仅在返回RESULT_OK时出现。”这暗示数组是返回值而不是输入。
要测试这个,请尝试添加:
的ArrayList<字符串> potentialResults = new ArrayList<字符串>();
potentialResults.add( “小茴香”);
并尝试让语音识别器识别它。你会发现它很难。
是否有人深入了解如何正确控制语音识别器?
答案 0 :(得分:5)
如果“控制”是指“提供可能结果列表”,我怀疑你没有。
我相信你对链接博客文章的错误是正确的。但是,AFAIK是您对演讲的唯一控制,是表明它是LANGUAGE_MODEL_FREE_FORM
还是LANGUAGE_MODEL_WEB_SEARCH
。
EXTRA_RESULTS
是输出,正如您所指出的,可能与口头散文相匹配。您可以在API sample中看到结果。
答案 1 :(得分:1)
我想出来解决这个问题的方法是创建一个可能性数据库。然后我获取结果并将它们子串到2或3个字符并查询数据库中的术语。如果有人说红色,那么我会在数据库中搜索LIKE're%',这实际上非常准确。