2016-07-05 3 views
1

私はWeb Speech APIを使用して自分のウェブページで音声コマンドをキャプチャしていますが、一定時間後に認識機能は終了します(リスニングを停止し、onendイベントを発生させます)。ChromeのwebkitSpeechRecognitionがランダムに終了します

どうしてですか?それを防ぐことはできますか?

音声認識ページ(40行)を使用してエラーを再現するために必要なコードはすべてここにあります。認識装置がリッスンを停止すると、「終了」を警告します。

<h1>Voice Recognizer</h1> 

<script> 

if (!('webkitSpeechRecognition' in window)) { 
    alert('Your browser does not support speech recognition.'); 
} else { 
    var recognition = new webkitSpeechRecognition(); 

    recognition.continuous = true; 
    recognition.interimResults = true; 

    recognition.onstart = function() { 
     console.log('started'); 
    } 

    recognition.onresult = function() { 
     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; 
      } 
     } 

     console.log('interim result:', interim_transcript); 
     console.log('final reuslt:', final_transcript); 
    } 

    recognition.onerror = function() { alert('error'); } 

    recognition.onend = function() { alert('end'); } 

    function startListening(e){ 
     final_transcript = ''; 
     recognition.start(); 
    } 

    startListening(); 
} 

</script> 

答えて

1

Googleが処理するデータの量を制限しようとするのは、サーバーを読み込むためです。音声認識を再開するか、オフライン処理を使用します。Pocketsphinx.JS

0

まず、録音時間は60秒で、聞き取りに非常に効率的です。速度。スピーチに60秒以上かかる場合、Webkitはonspeechend()関数をトリガーし、コードを停止させます。どちらの方法でも、onspeechend()の独自のトリガーを作成してから再び関数を呼び出すことができれば、それは新しいインスタンスを開始し、クリアしない限り、テキストを続けます。

関連する問題