1

Я использую распознавание голоса Javascript SDK Google (webkitSpeechRecognition) для Chrome, где я автоматически включаю процесс recognition, а затем отправляет все, что пользователь сказал в форму отправки моего приложения, на следующем событие:Google voice/html5 распознавание голоса JavaScript SDK Chrome webkitSpeechRecognition

  recognition.onend = function(){} 

проблема заключается в том, что она занимает довольно много времени для onend, чтобы прибыть.

Я пробовал использовать onspeechend или onsoundend, но он срабатывал бы в тот же момент, что и onend.

Мне нужно что-то, что срабатывает прямо, когда человек закончил говорить или не так долго после этого.

Может кто-нибудь порекомендовать установку, которую мне не хватает в этом SDK SD или решении?

Спасибо!

ответ

3

Если вы не хотите ждать, пока браузер не обнаружит пользователь перестал говорить, это может занять несколько секунд из-за фоновый шум, вы можете попробовать использовать частичные (промежуточные) результаты:

var recognition = new webkitSpeechRecognition(); 
recognition.continuous = true; 
recognition.interimResults = true; 

recognition.onresult = function(event) { 
    var interim_transcript = ''; 
    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.querySelector('input').value = interim_transcript; 
    }; 

document.querySelector('button').addEventListener('click', function(){ 
    recognition.start(); 
}); 

http://jsfiddle.net/2o1xjtud/

это выдержка из https://github.com/GoogleChrome/webplatform-samples/blob/master/webspeechdemo/webspeechdemo.html