1. Вам нужен синонимайзер и яндекс для составления словоформ синонимов в разных падежах:
https://export.yandex.ru/inflect.xml?name=тест
2. Затем составляете все возможные схемы предложений: порядок следования КЛЮЧЕВЫХ слов и падежи (предлоги, союзы и мат :) не входят сюда).
3. Строим дерево для быстрого поиска команды на основе КЛЮЧЕВЫХ слов из произнесённой фразы.
4. Используем распознавание похожести слов
Левенштейном и похожести цепочек для дерева -
Шинглы.
5. Профит!
Доп. метод: также можете воспользоваться для определения частей речи
моим велосипедом и через Левенштейна построить ожидаемые цепочки дерева.