如何参数化Android语音识别? android.speech.action.RECOGNIZE_SPEECH什么都不做

时间:2009-08-02 15:57:44

标签: android speech-recognition

如何正确地对语音识别器进行参数化,以便更容易识别用户可能会说的字词?

据我所知,没有办法。

我认为此网站有误: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( “小茴香”); 并尝试让语音识别器识别它。你会发现它很难。

是否有人深入了解如何正确控制语音识别器?

2 个答案:

答案 0 :(得分:5)

如果“控制”是指“提供可能结果列表”,我怀疑你没有。

我相信你对链接博客文章的错误是正确的。但是,AFAIK是您对演讲的唯一控制,是表明它是LANGUAGE_MODEL_FREE_FORM还是LANGUAGE_MODEL_WEB_SEARCH

EXTRA_RESULTS是输出,正如您所指出的,可能与口头散文相匹配。您可以在API sample中看到结果。

答案 1 :(得分:1)

我想出来解决这个问题的方法是创建一个可能性数据库。然后我获取结果并将它们子串到2或3个字符并查询数据库中的术语。如果有人说红色,那么我会在数据库中搜索LIKE're%',这实际上非常准确。