2

Я использую простое решение для распознавания текста с помощью webkitSpeechRecognition. Этот код отлично работает на Windows Desktop. Но - на Браузер Android Chrome - При запуске обнаружения микрофон в строке состояния Android отображается только на 1 или 2 секунды. Если нет активности голоса - выключается и распознавание голоса прекращается. Если я говорю очень быстро после нажатия «Пуск», он остается включенным. Любые идеи о том, как сделать Android-микрофон доступным в любое время?webkitSpeechRecognition на Android Chrome

 if ('webkitSpeechRecognition' in window) { 

      var recognition = new webkitSpeechRecognition(); 

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

      recognition.onstart = function() { 
       $("#status").html("Status: Recording..."); 
       recognizing = true; 
      }; 

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

      recognition.onend = function() { 
       recognizing = false; 
      }; 

      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; 
       } 
      } 
      final_transcript = capitalize(final_transcript); 
      $("#final_span").html(linebreak(final_transcript)); 
      $("#interim_span").html(linebreak(interim_transcript)); 

      }; 

     } 

enter image description here

ответ

2

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

https://codepen.io/bryik/pen/mErOOR?editors=0010 хотя бы один раз, но после небольшого тестирования я заметил, что «сигнал» для распознавания снова срабатывает при каждом нажатии/нажатии.

Старшего ресурс дал мне хорошую надежду, что annyang (https://github.com/TalAter/annyang) может работать:

https://github.com/cvan/webvr-holodeck/issues/22 Но здесь я предполагаю, что это также только называя

recognition.onend = function() { 
    console.info("voice recognition ended, restarting..."); 
    recognition.start(); 
} 

в recognition.onend обратного вызова. Итак, на андроидном хроме вы можете встретить сигналы оповещения каждую секунду ...

В конце концов, MDN не указывает, возможно ли непрерывное распознавание на андроидном хроме (https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition), но каждый пример, на который я смотрел, 't довольно предлагает непрерывный режим на андроиде (по крайней мере, на CyanogenMod Lollipop)

// отредактируйте, если у вас есть https://www.microsoft.com/cognitive-services/en-us/speech-api, им как-то удается добиться непрерывного распознавания, но я не могу найти что-либо в их исходном коде .. .

+0

Я знаю, что это старый, но вот источник для Microsoft API: https://github.com/Microsoft/Cognitive-Speech-STT-JavaScript –