javascript — Annyang, преобразующий речь в текст

Я пытаюсь использовать annyang для преобразования речи в текст, но я столкнулся с некоторыми проблемами. Это работает, но есть несколько вещей, которые еще не. Во-первых, я хотел бы знать, как я мог бы передать то, что сказал пользователь, в функцию оповещения. Далее я хотел бы знать, как завершить функцию annyang, когда пользователь закончил говорить. И, наконец, я хотел бы знать, как предотвратить появление запроса на включение и отключение микрофона снова и снова после его появления один раз.

<script>
if (annyang) {

var commands = {
'Hello': function() {
alert("Success");
}
};

annyang.addCommands(commands);

}
</script>

<input type = 'submit' value = 'listen' onclick = "annyang.start();">

4

Решение

За счет использования 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();

Язык должен быть представлен в инициализировать метод.

4

Другие решения

var anything = function(anything) {
alert(anything);
};
var commands = {
'*anything': anything
};

это работает,
также не будет вызывать аллергию на определенные команды

2

Я хотел бы знать, как я мог бы передать то, что сказал пользователь, в функцию оповещения.

Вы можете сделать что-то вроде

<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 Нет другого способа достичь этого. Также это улучшит скорость распознавания.

0