O webkitSpeechRecognition está "atrasado" ao reunir resultados

Teve uma coceira para experimentar oAPI de fala na Web. Copiei o código exatamente do artigo e estou tendo um problema em que você fala, mas nada acontece até que você fale novamente.

[Fiddle: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;
    };

}

Por exemplo, se eu dissesse "Olá mundo", o <div> que configurei para exibir os resultados não exibirá "Olá mundo" até que eu dissesse outra coisa ou emitisse um som. Mas se eu dissesse outra coisa, isso não seria exibido até que eu dissesse outra coisa novamente.

A variável "final_transcript" está segurando o resultado anterior, e não o que eu acabei de dizer. É desligado por apenas 1.

Para lhe dar uma idéia melhor ...

Eu: "Olá mundo"

final_transcript = '';

[Esperar...]

Eu: "Teste"

final_transcript = 'Olá mundo'

E isso apenas continua. O código não está conseguindo transcrever o que estou dizendo, como estou dizendo. Muito estranho.

Alguma idéia de por que isso poderia ser?

questionAnswers(1)

yourAnswerToTheQuestion