2013-07-28 64 views
2

當android文本轉語音功能將音頻波轉換爲文本時,是否可以確定語音文本的「置信度」?舉例來說,如果有人說話離麥克風太遠,而且Android設備拾取扭曲的聲音,它是否會輸出翻譯文本以及低置信度區間,以表明不確定特定翻譯的準確程度。Android語音識別信心等級

回答

0

是的。在返回的Bundle中,有一個稱爲CONFIDENCE_SCORES的浮點數組。從文檔:

用於從傳遞給onResults(Bundle)和onPartialResults(Bundle)方法的Bundle中檢索浮點數組的鍵。該數組的大小應與RESULTS_RECOGNITION中提供的ArrayList大小相同,並應包含範圍從0.0到1.0的值或-1以表示不可用的置信度分數。

置信度值接近1.0表示置信度高(語音識別器確信識別結果正確),而接近0.0的值表示低置信度。

該值是可選的,可能不會提供。

請注意,它不保證在那裏。檢查它並使用,如果存在。賭博,如果沒有。

1

如果您正在實現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);