Я пытаюсь использовать annyang для преобразования речи в текст, но я столкнулся с некоторыми проблемами. Это работает, но есть несколько вещей, которые еще не. Во-первых, я хотел бы знать, как я мог бы передать то, что сказал пользователь, в функцию оповещения. Далее я хотел бы знать, как завершить функцию annyang, когда пользователь закончил говорить. И, наконец, я хотел бы знать, как предотвратить появление запроса на включение и отключение микрофона снова и снова после его появления один раз.
<script>
if (annyang) {
var commands = {
'Hello': function() {
alert("Success");
}
};
annyang.addCommands(commands);
}
</script>
<input type = 'submit' value = 'listen' onclick = "annyang.start();">
За счет использования annyang для преобразования в текст, вы можете проверить себя с оригинальной демонстрацией распознавания речи Google
Посмотрите исходный код выше, и вы легко сделаете то, что вы хотите с SpeechRecognition
Я рекомендую это, потому что annyang — это больше плагин для голосового управления. На другой стороне вы можете использовать Artyom.js в случае, если вы хотите использовать библиотеку для этого.
Артём предлагает простой объект «диктовки» для быстрого преобразования речи в текст:
var settings = {
continuous:true, // Don't stop never because i have https connection
onResult:function(text){
console.log(text);
},
onStart:function(){
console.log("Dictation started by the user");
},
onEnd:function(){
alert("Dictation stopped by the user");
}
};
var UserDictation = artyom.newDictation(settings);
// Start listening
UserDictation.start();
// To stop
//UserDictation.stop();
Язык должен быть представлен в инициализировать метод.
var anything = function(anything) {
alert(anything);
};
var commands = {
'*anything': anything
};
это работает,
также не будет вызывать аллергию на определенные команды
Я хотел бы знать, как я мог бы передать то, что сказал пользователь, в функцию оповещения.
Вы можете сделать что-то вроде
<script>
if (annyang) {
var commands = {
'Hello :variable': function(variable) {
alert(variable);
}
};
annyang.addCommands(commands);
}
</script>
variable
это строка, которую распознал API-интерфейс.
Далее я хотел бы знать, как завершить функцию annyang, когда пользователь закончил говорить.
Задавать continuous
ложно. Annyang автоматически остановит распознавание, когда пользователь закончит разговор.
annyang.start({ autoRestart: false, continuous: false });
Вы также можете добавить функцию обратного вызова, которую annyang будет вызывать, когда распознавание речи закончится:
annyang.addCallback('end', function () { // your code here});
И, наконец, я хотел бы знать, как предотвратить появление запроса на включение и отключение микрофона снова и снова после его появления один раз.
Единственный способ предотвратить это, это доставить сайт через https
не http
Нет другого способа достичь этого. Также это улучшит скорость распознавания.