Ich habe festgestellt, dass Spracherkennungs-API dupliziert Ergebnissätze auf meinem Android (und dupliziert es nicht auf dem Desktop).
Für jede Phrase gibt es zwei Ergebnisse zurück. Der erste ist
und der zweite ist
Wie Sie sehen, wird die Phrase bei der zweiten Rückgabe dupliziert, jede Kopie wird als final
und die zweite als resultIndex
markiert. In der ersten Rückkehr gibt es nur eine Kopie, es ist final
und es ist darüber hinaus resultIndex
.
Ich würde nur eine zweite Rückkehr nehmen, aber das Problem ist, dass es auf mobilen Chrome passiert, aber nicht auf dem Desktop Chrome
passiert. Desktop Chrome
gibt nur die erste Rückgabe zurück.
Die Frage ist also: ist das Designverhalten? Wie unterscheidet man dann einzelne Endsätze für alle Computer?
Oder vielleicht ist das ein Fehler wie Sound-Echo, dann ist die Frage, wie Echo zu vermeiden / überprüfen?
AKTUALISIEREN
HTML ist wie folgt:
%Vor%Der Code ist wie folgt:
%Vor%JsFiddle: Ссылка
Die Ergebnisse, die auf Chrome Mobile für die Eigenschaft result.isFinal
angegeben wurden, scheinen einen Fehler zu enthalten oder auf jeden Fall von denen auf dem Chrome-Desktop zu unterscheiden. Eine mögliche Problemumgehung besteht darin, das Konfidenzattribut der (ersten) Alternative zu überprüfen:
Es sieht auch so aus, dass manchmal das Endergebnis zweimal ausgegeben wird (mit dem gleichen confidence
-Wert), in diesem Fall möchten Sie es vielleicht entprellen oder das erste Ereignis einfach so verarbeiten:
Dabei ist lastDebounceTranscript
eine Variable, die Sie außerhalb des Bereichs des Ereignishandlers initialisieren
Tags und Links javascript android google-chrome speech-recognition webkitspeechrecognition