当android的text to speech功能将音波转换为文本时,是否有可能确定语音文本的“置信度”?例如,如果有人在离麦克风太远的地方讲话,而android设备接收到失真的声音,它是否会同时输出翻译文本和低置信区间,以说明不确定特定翻译的准确性。
发布于 2015-05-13 13:19:43
如果您正在实现RecognitionListener,请检查我的onResults方法中的代码片段。
@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");
}
}
除非您将以下内容添加到您的识别器意图中,否则您将看不到任何内容:
iSpeechIntent.putExtra(RecognizerIntent.EXTRA_CONFIDENCE_SCORES, true);
发布于 2013-07-31 03:15:25
是。在返回的Bundle
中,有一个名为CONFIDENCE_SCORES
的浮点数组。从文档中:
用于从传递给onResults(捆绑包)和onPartialResults(捆绑包)方法的捆绑包中检索浮点数组的
键。该数组应与RESULTS_RECOGNITION中提供的ArrayList大小相同,并且应包含介于0.0到1.0或-1之间的值,以表示不可用的置信度分数。
接近1.0的置信度表示高置信度(语音识别器确信识别结果是正确的),而接近0.0的值表示低置信度。
此值是可选的,可能不提供。
请注意,它不能保证会出现在那里。检查它,如果存在,请使用它。如果不是,那就赌一把。
https://stackoverflow.com/questions/17911787
复制相似问题