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

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

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

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

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

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


person Marco Neves    schedule 12.04.2017    source источник


Ответы (1)


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

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

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

person Mohamed-Amine Labiadh    schedule 13.04.2017
comment
У меня возникли трудности с пониманием твоего ответа ... назови что именно, как проблему управления обратной связью? - person Marco Neves; 14.04.2017
comment
обратная связь относится к акустической связи громкоговорителя с микрофоном. чтобы заставить слушающий узел игнорировать то, что говорит робот, а отфильтровывать это, это то, что делает управление с обратной связью. - person Mohamed-Amine Labiadh; 14.04.2017
comment
проверьте эту ссылку: ftp.esat.kuleuven.be/sista/ spriet / reports / 06-153.pdf - person Mohamed-Amine Labiadh; 14.04.2017