WebSpeechAPIのSpeechRecognitionを利用して、音声認識を実現しているのですが、
start
してからend
が帰るまでの認識期間のうち、最後の方(end
の直前ぐらい)に発話すると、
onresult
が帰ってこない問題が発生しています。
回避策をご存知でしたら教えていただけないでしょうか。
コード
javascript
1const recog = new webkitSpeechRecognition(); 2recog.lang = 'ja-JP'; 3recog.onresult = res => console.log(res.results); 4recog.onaudiostart = () => console.log( 'audio start' ); 5recog.onaudioend = () => console.log( 'audio end' ); 6recog.onsoundstart = () => console.log( 'sound start' ); 7recog.onsoundend = () => console.log( 'sound end' ); 8recog.onspeechstart = () => console.log( 'speech start' ); 9recog.onspeechend = () => console.log( 'speech end' ); 10recog.onend = () => {console.log('end');recog.start();}; 11recog.onerror = e => console.log(e); 12recog.start();
結果
正常時(音声認識開始直後に発話した場合)のログ
audio start sound start speech start speech end sound end audio end SpeechRecognitionResultList {0: SpeechRecognitionResult, length: 1} // 結果取得成功 end
問題発生時(音声認識終了直前に発話した場合)のログ
audio start sound start speech start speech end sound end audio end end ※ onresultが呼ばれず、結果が取得出来ない
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/08/15 03:23