Для создания пользовательских команд - голосовых команд - мы анализируем результаты транзакций, которые возвращаются из голосового API, а затем предпринимаем соответствующие действия, если это применимо.
Ex. Пользователь скажет «Новый абзац», и это вызовет действие createNewParagraph
Мы столкнулись с несколькими проблемами с этим «решением», которые я пытаюсь обсудить. Во-первых, мы должны убедиться, что сравниваем строки без учета регистра, поэтому «новый абзац», «новый абзац» и «новый абзац» равны; сравнение и анализ более чем одной строки таким образом - и принятие соответствующих действий - будет равносильно времени обработки и потенциальным конфликтам, замедлению ответа и плохому восприятию пользователя.
Во-вторых, когда определенная «командная фраза» является частью пользовательской диктовки, она запускает действие (если, возможно, ни одно из них не было предназначено) ex.
let command = "Call Bob";
// user's transcription is "Yesterday I arrived to work and no one was
// there so I had to CALL BOB to open the front door"
^^ Это вызовет действие call(Bob)
(или что-то еще определенное)
(Глупый пример, чтобы попытаться продемонстрировать проблему, с которой мы работаем)
Как вы победили эти проблемы? Какие ресурсы вы рекомендуете?