У кого-нибудь есть опыт программирования распознавания голоса на C ++ (Windows и / или Mac) для ограниченного числа команд, нацеленных на SPEED? Реально ли на этом этапе добиться распознавания команды из первого слога — т.е. команда распознается к тому времени, когда пользователь достигает второго слога в достаточно быстром темпе? Все команды будут запрограммированы на запуск с другим слогом, если необходимо, радикально другим (например, «oo», «xy», «fay» — потребуется всего около 30 команд).
Подобные вопросы были заданы, но это быстро движущаяся область. Лучше всего было бы искать библиотеки с открытым исходным кодом или взаимодействовать с скомпилированными реализациями?
Я профессионально работаю в этой области, и я серьезно сомневаюсь, возможно ли это вообще. С ++ не проблема, вопрос в том, позволяет ли это компьютер. Частота появления ошибок на маленьких звуковых клипах велика, это — Скрытая Марковская Модель, которая исправляет распознавание. Но в вашем случае вы просто не можете дать ему достаточно данных.
Не то чтобы люди тоже могли это делать. Обработка речи не так быстро, как ваш мозг заставляет вас верить.
Вы можете сделать это с CMUSphinx с карманным декодером.
Частичная гипотеза декодирования доступна во время процесса распознавания, и вы обычно можете получить первый слог, как только он произнесен. Если вы дадите ему 0,1 с для стабилизации (невидимо для пользователя), вы получите точные результаты для набора команд.
На вершине CMUSphinx есть даже инструменты, специально разработанные для управления в реальном времени, например, в играх, которые вы можете проверить InProTK и их демонстрации.