ROS распознавание голоса

Краткое описание того, что я пытался сделать и что он на самом деле делает.

В моем проекте есть два простых узла: один для прослушивания и публикации, а другой для разговора и подписки. Я назвал их прослушивающим и говорящим узлом соответственно.

Задача, которую я хотел достичь, была довольно проста, я бы попросил пользователя сказать «запомни меня», который будет распознан как ключевое слово и опубликован для voiceCommandCallback метод в говорящем узле, чтобы мой робот мог сказать: «Хорошо, пожалуйста, назовите свое имя». Затем, вернувшись к прослушивающему узлу, поверх публикации этой ключевой фразы он также вызовет метод recognize_from_mic_with_dict() который, как вы можете догадаться, будет работать с использованием словаря имен.

это recognize_from_mic_with_dict() Метод будет прослушивать имя и попытаться опубликовать это имя namesCallback() в прослушивающем узле, и именно здесь я проверяю, было ли то, что было опубликовано, действительным именем, или это было просто бредом, и в этом случае я хотел бы попросить пользователя повторить его / ее имя и снова подписаться на recognize_from_mic_with_dict() чтобы он мог слушать еще раз.

Это звучит сложнее, чем, вероятно, должно быть, но это единственный способ, которым я мог придумать для достижения этого «переключения режима». Проблема в том, что если он услышит тарабарщину, он скажет: «Извините, я не совсем это слышал. Пожалуйста, повторите это!» и я хотел бы знать, есть ли способ заставить слушающий узел игнорировать все, что говорит робот, потому что он пытается распознать имена из своего предложения.

0

Решение

Вы можете использовать это как проблему контроля обратной связи.
При условии :

  • ты — речевой сигнал пользователя
  • r — выходной сигнал динамика робота,
  • h функция обратной связи,
  • s = h * r сигнал обратной связи; * относится к свертке
  • y = s + u = h * r + u входной сигнал микрофона

проблема состоит в том, чтобы оценить ĥ и, следовательно, ŝ (r уже известно),
таким образом, оценка речевого сигнала пользователя определяется как û = y — ŝ = y — ĥ * r

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]