当android文本到语音功能将音频波转换为文本时,是否可以确定语音文本的“置信度”?因此,例如,如果有人说话离麦克风太远而且Android设备拾取失真的声音,它是否会输出翻译文本以及低置信区间,以表明它不确定特定翻译的准确程度。
答案 0 :(得分:1)
如果您正在实现RecognitionListener,请从我的onResults方法中检查此代码片段。
String yourInputString = "string";
String output = "template string \"" + yourInputString + "\"";
除非将其添加到识别器意图中,否则您将看不到任何内容:
@Override
public void onResults(Bundle results) {
String LOG = "SpeechRecognizerActivity"
Log.d(LOG, "onResults");
ArrayList<String> strlist = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
float [] confidence = results.getFloatArray(SpeechRecognizer.CONFIDENCE_SCORES);
for (int i = 0; i < strlist.size(); i++) {
Log.d(LOG, "result=" + strlist.get(i));
}
Log.d(LOG + " result", strlist.get(0));
if (confidence != null){
if (confidence.length > 0){
Log.d(LOG + " confidence", String.valueOf(confidence[0]));
} else {
Log.d(LOG + " confidence score not available", "unknown confidence");
}
} else {
Log.d(LOG, "confidence not found");
}
}
答案 1 :(得分:0)
是。在返回的Bundle
中,有一个名为CONFIDENCE_SCORES
的浮点数组。来自文档:
用于从Bundle中检索float数组的键传递给onResults(Bundle)和onPartialResults(Bundle)方法。该数组应与RESULTS_RECOGNITION中提供的ArrayList大小相同,并且应包含0.0到1.0之间的值,或-1表示不可用的置信度分数。
接近1.0的置信度值表示高置信度(语音识别器确信识别结果是正确的),而接近0.0的值表示低置信度。
此值是可选的,可能未提供。
请注意,不保证在那里。检查它并使用(如果有的话)。赌博,如果没有。