мы говорим об ассистенте по принципу "заранее заданная фраза = команда"
т.е. задача сводится к сравнению образца звука с поступившим,
если не трогать преобразование Фурье, нормализацию, спектр и все такое,
то можно попробовать через нейросеть
есть массив дискретизации звука, например 100000 элементов, это входы нейросети
задача нейросети - подобрать коэффициенты узлов чтобы поступивший звук считался допустимо близким к образцу
т.е. сначала пользователь сидит и повторяет одну и ту же фразу, 100-200-...1000-10000 раз,
нейросеть пересчитывает узлы (по сути - выделяются существенные признаки образца),
в каком-то приближении, когда-то, к какой-то погрешностью - эта конкретная фраза начнет распознаваться,
даже с учетом того что громкость, интонация, скорость у пользователя будут чуть отличаться каждый раз...
после этого можно будет переходить ко второй фразе со своей нейросетью