1. Поищи библиотеки, пригодные для распознавания русской речи и имеющие привязку к C#.
2. Найди их документацию, там наверняка есть простые примеры работы.
3. Выбери ту, которая кажется наиболее простой и удобной.
4. Разбери пример, как обнаружить, записать и распознать фразу.
5. Продумай, как ты будешь по тексту фразы определять команду. Вопросы, на которые придётся найти ответ:
- Как отличить разговор от обращения к помощнику (подсказка: "окей, гугл", "алиса", и т.п.)?
- Как описывать отдельные команды помощника? Как классы, как методы...
- Как определять, какая команда была произнесена?
- Как извлекать параметры команды (в простых случаях хватит регулярных выражений, в сложных придётся ещё тащить библиотеки обработки естественных языков типа Natasha)?
- Могут ли команды перекрываться? Например, если мы сделали команду "таймер", можем ли мы пользоваться ботом, пока таймер не закончится?
- Как команда будет возвращать результат? Будет ли ей предоставлен какой-то класс/метод от бота, чтобы она могла "сказать" что требуется?
6. Аналогично разбери библиотеки для синтеза речи.