помогите пожалуйста)))
Делаю голосового помощника на джаваскрипте на основе апи MDN.
Создала свой парсер комманд и ключевых слов в распознанном тексте.
Из-за того, что для поиска команд приходится несколько раз сравнивать массив слов, которые пришли от юзера, с массивом слов, которые подходят под ту или иную команду, работает это дело немного медленно.
То есть по команде "открой карту" карта откроется быстро, но не настолько быстро, как просто по кнопке. И задержку видно конечному юзеру.
Какие есть варианты ускорения кода на джаваскрипте? Может можно массивы чем-то заменить, или есть какие-то быстрые библиотеки?
а голос в текст чем распознается?
Реально такие большие массивы, что ощущается задержка? Или что-то сложное есть в самом алгоритме сравнения?
Написала же, MDN https://developer.mozilla.org/ru/docs/Web/API/SpeechRecognition
Я не знаю, из-за массивов ли это конкретно, они вроде не сильно огромные, но по сравнению с нажиманием на кнопку задержка есть
Покажи код сравнения и перебора, иначе это пустое
а есть ещё какие-то чаты
https://t.me/it_chats
Да, и меня в них во всех уже застебали за мои вопросы)))
я понимаю , что вы шутите, но никто вас не изгонял из чата, а направил в личном сообщении , представив данный чат как более компетентный и отзывчивый)))) Не фиг напраслину возводить)))
https://pastebin.com/FMQaWhyf __________________________________________ Там нифига непонятно скорее всего так сразу, потому что я ещё только учусь, но начинается всё с функции keyword_parsing, которая ищет сначала ключевое слово. Типо как "Алиса".
можно попробовать вместо массивов использовать сеты, или просто обьекты и искать по ключу
для поиска слов выгоднее префиксное дерево исползовать, но в js его реализация будет скорее всего медленнее хеш-таблицы (объект, мап, сет)
Так они и так все в одном регистре, до этого-то я додумалась))))
в остальном, можно хранить все слова в одной таблице с указанием что это за слово (существительное, глагол или ключевое (кристина)) и соответствующую сущность или метод
Я не смотрел сильно, увидел больше 2х циклов и закрыл
Я до этого просто писала только на Си, до сих пор не перестроилась. В любом случае спасибо)
Массивы меленькие, искать долго там нечему. Даже если бы была пара тысяч. Где-то в методах проблема. Для новичка один способов обложить ключевые вызовы функций console.time и выяснить какой участок кода действительно долго выполняется. И там уже копать.
Обсуждают сегодня