minSDK 14 で SpeechRecognizer を使用しており、最も正確な結果を得るためにフィルターを追加しました。このコードは、アクティビティの 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++ でのみ利用可能であり、私の知る限り、SpeechRecognition はサポート パッケージでは利用できません。
低い API レベルで結果の信頼性を得る方法はありますか? または、他の値に基づいてフィルタリングを行うための回避策はありますか?