2 Stimmen

Android Spracherkennungskonfidenzniveaus

Wenn die Android-Text-in-Sprache-Funktionalität Audiowellen in Text übersetzt, ist es möglich, die "Vertrauensniveaus" des gesprochenen Textes festzustellen? Zum Beispiel, wenn jemand zu weit entfernt vom Mikrofon spricht und das Android-Gerät verzerrte Geräusche aufnimmt, würde es sowohl den übersetzten Text als auch ein niedriges Vertrauensintervall ausgeben, um anzugeben, dass es nicht sicher ist, wie genau diese bestimmte Übersetzung war.

1voto

Ohiovr Punkte 929

Wenn Sie den RecognitionListener implementieren, untersuchen Sie diesen Codeausschnitt aus meiner onResults-Methode.

@Override
public void onResults(Bundle results) {
    String LOG = "SpeechRecognizerActivity"
    Log.d(LOG, "onResults");
    ArrayList 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");
    }
}

Sie werden nichts sehen, es sei denn, Sie fügen dies zu Ihrem Erkennungs-Intent hinzu:

iSpeechIntent.putExtra(RecognizerIntent.EXTRA_CONFIDENCE_SCORES, true);

0voto

Geobits Punkte 21713

Ja. Im zurückgegebenen Bundle gibt es ein Float-Array namens CONFIDENCE_SCORES. Laut Dokumentation:

Schlüssel zur Abrufung eines Float-Arrays aus dem Bundle, das an die Methoden onResults(Bundle) und onPartialResults(Bundle) übergeben wird. Das Array sollte die gleiche Größe wie die in RESULTS_RECOGNITION bereitgestellte ArrayList haben und Werte im Bereich von 0,0 bis 1,0 oder -1 enthalten, um einen nicht verfügbaren Vertrauensscore darzustellen.

Vertrauenswerte nahe bei 1,0 deuten auf hohe Vertrauenswürdigkeit hin (der Spracherkenner ist überzeugt, dass das Erkennungsergebnis korrekt ist), während Werte nahe bei 0,0 geringes Vertrauen anzeigen.

Dieser Wert ist optional und muss möglicherweise nicht bereitgestellt werden.

Bitte beachten Sie, dass es nicht garantiert ist, dass dieser Wert vorhanden ist. Überprüfen Sie es und verwenden Sie es, wenn vorhanden. Wagen Sie es, wenn nicht.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X