Задать вопрос
antony_sudo
@antony_sudo

Распознавание речи в javascript с помощью Annyang. Не получаеться задать несколько функций, что не так?

Я пока еще чайник поэтому жестко не судите :)
В общем существует интересная javascript- библиотека распознавания голоса annyang!, собираюсь использовать ее в своем проекте ... но на простом примере столкнулся с проблемой: скрипт понимает все голосовые сообщения, но считывает только одно ("привет"). Когда пытаюсь дописать больше функций в коде - запрос игнорируется или инспектор хрома выдает ошибку) дает о себе знать скромное знание JS, поэтому прошу помощи.

Код имеет следующий вид:

<!DOCTYPE html>
<meta charset="utf-8">
<script src="http://cdnjs.cloudflare.com/ajax/libs/annyang/1.0.0/annyang.min.js"></script>
<script>
if (annyang) {

annyang.setLanguage('ru');
var commands = {
'привет': function() {
    //alert("");
    document.write('<h3>Приветствую, я голосовой ассистент!</h3>');
}    };
    
annyang.init(commands);
annyang.debug();    
annyang.start();
}
</script>
<body>
    <h3> </h3>
</body>


Когда пытаюсь добавить новую команду и соответственно document.write с другим текстом для вывода на страницу, консоль Chrome выдает Uncaught SyntaxError: Unexpected string (не понимаю в чем именно ошибка)
Как помимо 'привет' заставить скрипт отвечать на, например, "до свидания"?
  • Вопрос задан
  • 2352 просмотра
Подписаться 3 Оценить Комментировать
Решения вопроса 1
dasha_programmist
@dasha_programmist
ex Software Engineer at Reddit TS/React/GraphQL/Go
<!DOCTYPE html>
<html>
    <head>
        <title>
        </title>
        <meta charset="utf-8">
        <script src="http://cdnjs.cloudflare.com/ajax/libs/annyang/2.4.0/annyang.min.js"></script>
    </head>
    <body>
        <div id='main'></div>
        <script>
            if (annyang) {
                var cont = document.getElementById('main');
                function addText(text){
                    var el = document.createElement('h2');
                    el.innerHTML = text;
                    cont.appendChild(el);
                }
				annyang.setLanguage('ru');
				var commands = {
					'привет': function() {
                        addText('добрый день')
					},
                    'до свидания':function(){
                        addText('всего доброго');
                    }
				};
				annyang.addCommands(commands);
				annyang.start();
			}
        </script>
    </body>
</html>
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега JavaScript
{PHP, MySql, HTML, JS, CSS} developer
annyang.setLanguage('ru');
var commands = {
'привет': function() {
    document.write('<h3>Приветствую, я голосовой ассистент!</h3>');
},
'пока': function() {
    document.write('<h3>Мы смогли, пока!</h3>');
}
};


хотя ниже на страничке проекта все подробно расписано, правильней вынести команды в отдельные функции, а списке команд перечислить только алиасы.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы