我尝试做什么以及它实际做了什么的简短摘要。
在我的项目中,我有两个简单的节点:一个用于收听和发布,另一个用于说话和订阅。我分别将它们命名为listeningNode和speakingNode。
我想要实现的任务非常简单,我会让用户说“记住我”,它会被识别为关键字并在发言节点中发布到voiceCommandCallback
方法,这样我的机器人就可以说“好的,请说出你的名字“。然后,回到监听节点,除了发布该关键短语之外,它还将调用方法recognize_from_mic_with_dict()
,您可以猜测该方法将使用名称字典运行。
此recognize_from_mic_with_dict()
方法将侦听名称,并尝试将该名称发布到侦听节点中的namesCallback()
,这是我检查发布的内容是实际名称还是只是胡言乱语,在这种情况下,我会请用户重复他/她的名字并再次订阅recognize_from_mic_with_dict()
,以便它可以再听一次。
这听起来可能更复杂,但这是我能想到实现这种“模式切换”的唯一方法。问题是,如果它听到胡言乱语,就会说“我很抱歉,我听不到。请重复一遍!”我想知道是否有办法让侦听节点忽略机器人所说的任何东西,因为它试图从自己的句子中识别出名字。
答案 0 :(得分:0)
你可以把它作为反馈控制问题。 鉴于:
问题是估计ĥ因此ŝ(r已知), 所以用户语音信号的估计由û= y - ŝ= y - ĥ* r
给出