Я пытаюсь создать приложение nw. js, которое может преобразовывать речь в текст. Когда я нажимаю кнопку «Пуск» и затем начинаю говорить, она должна отображать все, что я говорила, в текстовой области. Но преобразования речи не происходит. Однако в браузере chrome распознавание речи работает нормально. При отладке я обнаружил, что onresult
метод webKitSpeechRecognition
не запускается, и поэтому распознавание не работает. Подскажите, пожалуйста, как заставить распознавание речи работать в моем приложении.
index.html
<!DOCTYPE html>
<html lang="en">
<body>
<textarea id="textBoxResult"></textarea>
<button id="startbutton">Start</button>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="script.js"></script>
</body>
</html>
script.js
var SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;
navigator.mediaDevices.getUserMedia({ audio: true })
.then(function(stream) {
console.log('You let me use your mic!')
})
.catch(function(err) {
console.log('No mic for you!')
});
var recognition = new SpeechRecognition();
recognition.lang = 'en-US';
var Textbox = $('#textBoxResult');
var Content = '';
recognition.continuous = true;
recognition.onresult = function(event) {
console.log("inside result");
var current = event.resultIndex;
var transcript = event.results[current][0].transcript;
Content += transcript;
Textbox.val(Content);
};
recognition.onstart = function() {
console.log('Voice recognition is ON.');
}
recognition.onspeechend = function() {
console.log('No activity.');
}
recognition.onerror = function(event) {
if(event.error == 'no-speech') {
console.log('Try again.');
}
}
$('#startbutton').on('click', function(e) {
if (Content.length) {
Content += ' ';
}
recognition.start();
});
package.json
{
"name": "nw-demo",
"version": "1.0.0",
"description": "endo execute",
"main": "index.html"
}