webkitSpeechRecognition bleibt beim Sammeln von Ergebnissen „zurück“

Hatte Lust das auszuprobierenWeb Speech API. Ich habe den Code genau aus dem Artikel kopiert und habe ein Problem, bei dem Sie sprechen, aber nichts passiert, bis Sie wieder sprechen.

[Geige:http://jsfiddle.net/w75v2tm5/]

JS:

if (!('webkitSpeechRecognition' in window)) {
    //handle error stuff here...
} else {
    var recognition = new webkitSpeechRecognition();
    recognition.continuous = true;
    recognition.interimResults = false;

    recognition.start();

    var final_transcript = '';

    recognition.onresult = function (event) {
        var interim_transcript = '';
        if (typeof (event.results) == 'undefined') {
            recognition.onend = null;
            recognition.stop();
            upgrade();
            return;
        }
        for (var i = event.resultIndex; i < event.results.length; ++i) {
            if (event.results[i].isFinal) {
                final_transcript += event.results[i][0].transcript;
            } else {
                interim_transcript += event.results[i][0].transcript;
            }
        }
        document.getElementsByTagName('div')[0].innerText = final_transcript;
    };

}

Wenn ich beispielsweise "Hallo Welt" sage, zeigt das <div>, das ich für die Anzeige der Ergebnisse eingerichtet habe, "Hallo Welt" erst dann an, wenn ich etwas anderes gesagt oder einen Ton abgegeben habe. Aber wenn ich etwas anderes sagte, würde DAS nicht angezeigt, bis ich wieder etwas anderes sagte.

Die Variable "final_transcript" enthält das PREVIOUS-Ergebnis und nicht das, was ich gerade gesagt habe. Es ist nur um 1 weg.

Um Ihnen eine bessere Idee zu geben ...

Ich: "Hallo Welt"

final_transcript = '';

[Warten...]

Ich: "Test"

final_transcript = 'Hallo Welt'

Und das geht einfach weiter. Der Code kann nicht transkribieren, was ich sage, WIE ich es sage. Sehr merkwürdig.

Irgendwelche Gedanken, warum das sein könnte?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage