语音识别器在API 14下获得信心

时间:2013-09-09 08:43:11

标签: android speech-recognition

我使用带有minSDK 14的SpeechRecognizer并添加了一个过滤器以获得最准确的结果。这个代码我在我的Activity的onActivityResult()中。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (requestCode == VOICE_RECOGNITION && resultCode == RESULT_OK) {

        ArrayList<String> results = data
            .getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);

        // this is only available in API 14
        String confidenceExtra = RecognizerIntent.EXTRA_CONFIDENCE_SCORES; 
        float[] confidence = data.getFloatArrayExtra(confidenceExtra);

        // My filtering...
    }
}

因为过滤是基于每个结果的置信度所以我需要此常量RecognizerIntent.EXTRA_CONFIDENCE_SCORES才能请求置信度。但遗憾的是,这仅适用于API 14 ++和AFAIK,支持包中不提供SpeechRecognition。

有没有办法在较低的API级别中获得结果的信心?或者是否有工作要根据其他值进行一些过滤?

1 个答案:

答案 0 :(得分:2)

与大多数Android语音识别API一样,&#34;此附加信息是可选的,可能不会提供。&#34; (引自规范)。

我认为即使在较低的API级别(仅向后移动EXTRA_CONFIDENCE_SCORES常量),检查此float数组也是个好主意。如果不存在与此额外对应的float数组,那么只需假设EXTRA_RESULTS是置信的(如API文档所示)。