Использование грамматики с Google Web Speech API

Я использую GOOGLE Speech API для распознавания речи. Я применяю грамматику для распознавания некоторых конкретных имен, но в результате получается, что она не использует мою грамматику. Любое предложение для реализации Grammer, чтобы оно дало мне результат из моих данных. Когда я говорю на ритвике, это дает мне "ритвик", а не "ритвик". Я даже не уверен, что мы можем использовать грамматику с Web Speech API.

Вот мой код:

<!DOCTYPE html>
<html>
  <head>
    <title>Speech to text converter in JS</title>
    <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.1/css/font-awesome.min.css" />
    <style type="text/css">
      body{
        font-family: verdana;
      }
      #result{
        height: 200px;
        border: 1px solid #ccc;
        padding: 10px;
        box-shadow: 0 0 10px 0 #bbb;
        margin-bottom: 30px;
        font-size: 14px;
        line-height: 25px;
      }
      button{
        font-size: 20px;
        position: absolute;
        top: 240px;
        left: 50%;
      }
    </style>
  </head>
  <body>
    <h4 align="center">Speech to text converter in JS</h4>
    <div id="result"></div>
    <button onclick="startConverting();"><i class="fa fa-microphone"></i></button>
    <script type="text/javascript">

      var r = document.getElementById('result');

    function startConverting () {
      if('webkitSpeechRecognition' in window){
         //Initialise the Object for Chrome
        var SpeechRecognition = SpeechRecognition || webkitSpeechRecognition
        var SpeechGrammarList = SpeechGrammarList || webkitSpeechGrammarList
        var SpeechRecognitionEvent = SpeechRecognitionEvent || webkitSpeechRecognitionEvent

         //Creating a names array and putting it to the grammer
        var names = [ 'ritwik','anurag','rizwan'];
        var grammar = '#JSGF V1.0; grammar names; public <name> = ' + names.join(' | ') + ' ;'


         //Creating recognition and speechRecognition Object            
        var recognition = new SpeechRecognition();
        var speechRecognitionList = new SpeechGrammarList();

        speechRecognitionList.addFromString(grammar, 1);


        recognition.grammars = speechRecognitionList;
        recognition.lang = 'en-IN';
        recognition.interimResults = false;
        recognition.maxAlternatives = 1;


        recognition.start();
        console.log('Ready to receive a color command.');

        var finalTranscripts = '';

        recognition.onresult = function(event){
            var interimTranscripts = ''; 
            var last = event.results.length - 1;
            var color = event.results[last][0].transcript;
            console.log('Result From Recognition: '+ color);
            console.log('Confidence: ' + event.results[0][0].confidence);
            interimTranscripts = color;

            //Putting the result to the Input Field
            r.innerHTML = finalTranscripts + '<span style="color:#999">' + interimTranscripts + '</span>';
          };

        recognition.onerror = function (event) {
          };

        }else{
          r.innerHTML = 'Your browser is not supported. If google chrome, please upgrade!';
        }
      }



    </script>
  </body>
</html>

0 ответов

Другие вопросы по тегам