2016-02-04 2 views
0

Я пытаюсь с помощью своей программы распознавать конкретное слово, когда я подменяю предложение, он использует API веб-речи.Web speech api распознавание слова в предложении

Когда я читаю одно слово, моя программа работает нормально, но когда я его подпишу в предложении, моя программа не запускается.

Спасибо, что расскажите, где проблема с моей программой.

<script> 
    (function($) 
    { 
     var $btn = $('#btn'); 
     var $result = $('#result'); 
     var words = null; 
     if ('webkitSpeechRecognition' in window) 
     { 
      var recognition = new webkitSpeechRecognition(); 
      recognition.lang = "fr-FR"; 
      recognition.continuous = false; 
      recognition.interimResults = true; 
      $btn.click(function(e) 
      { 
       e.preventDefault(); 
       $btn.removeClass('btn-primary'); 
       recognition.start(); 
      }); 
      recognition.onresult = function (event) 
      { 
       $result.text(''); 
       for (var i = event.resultIndex; i < event.results.length; i++) 
       { 
        var transcript = event.results[i][0].transcript; 
        if (event.results[i].isFinal) 
        { 
         $result.text(transcript); 
         recognition.stop(); 
         $btn.addClass('btn-primary'); 
         words = transcript.split(' '); 
         if(words[0] == 'test') 
         { 
          // do something     
         } 
         return true; 
        } 
        else 
        { 
         $result.text($('#result').text() + event.results[i][0].transcript); 
        } 
       } 
      }; 
     } 
     else{$btn.hide();} 
    })(jQuery); 
</script> 

ответ

0

Когда вы делаете words = transcript.split(' ') вы делаете слова массив из всех распознанных слов. Затем, когда вы делаете if(words[0] == 'test'), вы проверяете только первое слово, поэтому оно будет работать, только если слово, которое вы пытаетесь распознать, является первым (или единственным) словом.

Вместо этого:

if(words[0] == 'test') 
{ 
    // do something 
} 

Попробуйте это:

words.some(function (word) { 
    if (word === 'test') { 

     // do something 

     return true; 
    } 
}); 
Смежные вопросы