语音识别和对话
注意此功能一般没有默认添加,需要额外要求才能添加。此功能只能在机器人联网的情况下使用。
语音识别
在添加此功能后对机器人说你好你好
进行唤醒。唤醒之后可以继续说指令词让机器人执行对应的指令。当前默认的指令有:
- 回去充电
- 开启导航
- 继续任务
- 暂停任务
- 取消任务
- 现在的电压,获取机器人当前的电压信息
- 关机
- 跟我走,让机器人跟随你
- 唱首歌
- 讲个笑话
- 讲个故事
- 跳个舞
- 再见
- 停止跟随
- 让机器人移动到特定目标点。比如说
去1号点
。如果点位设置了名称,也可以直接说去对应的名称。比如说去仓库
。
注意上面的指令不要求说的时候完全一样,只要你对机器人说的话包含了上面的某个意图,那么机器人就会对应的执行对应的指令。比如你说机器人,你去1号点吧
,机器人也会执行去1号点
的指令。
语音对话
在唤醒之后,如果你说的内容不属于上面的指令范围,比如你说介绍一下你自己
。机器人就会自动进入聊天模式。它会根据自己的了解的知识来回答你的问题。
添加自定义语音指令
添加识别指令
添加自定义语音指令需要修改配置文件。在机器人/home/xiaoqiang/Documents/ros/src/startup/params
文件夹中创建一个asr_cmds.txt
文件。文件内容格式如下:
# 用户自定义指令部分。可以利用此内容实现指令词标准化。配合自动化实现听到指令词后执行对应的动作。
# # 为注释符号,可以在行首添加注释。
# 下面是一个例子,当你说战斗模式之后机器人会收到战斗模式语音指令。
# 之后你可以在自动化里面添加战斗模式要执行的动作
如果用户想让你进入战斗模式,你返回:战斗模式
注意其中的冒号是必须的且为英文的冒号。冒号后面就是最终机器人会收到的语音指令。比如上面的例子无论你说开启战斗模式
还是进入战斗模式
机器人都会收到战斗模式
的指令。
在添加上面的文件后,需要重启机器人才能生效。
添加自动化动作
在添加了自定义指令后,你可以在自动化里面添加对应的动作。比如说你想让机器人在收到战斗模式
指令后机器人说已进入战斗模式
。就可以创建下面的自动化程序
这样当你保存并运行这个自动化程序后,机器人听到你说开启战斗模式
时它就会对应播放声音已进入战斗模式
。类似的你可以通过自动化实现更多更复杂的功能。
添加自定义聊天内容
如果你想给机器人增加一些人设,比如让它认为自己的年龄是4岁。或者想给机器人添加特定的话术。那么你可以在/home/xiaoqiang/Documents/ros/src/startup/params
文件夹中创建一个asr_nlp.txt
文件。文件内容就是你教机器人的内容。比如我们以让机器人认为自己是4岁为例:
# 用户自定义聊天内容部分。可以利用此内容实现对机器人的人设设置。
# # 为注释符号,可以在行首添加注释。
# 下面是一个例子,当你问机器人你多大了,机器人会回答我4岁了。
如果用户问你多大了,你就说我4岁了
在添加上面的文件后,需要重启机器人才能生效。
自定义唤醒词
修改/home/xiaoqiang/Documents/ros/src/startup/launch/startup.launch
文件。在
<include
file="$(find galileo_startup)/launch/includes/start_robot.launch.xml"
pass_all_args="true"
/>
之前添加
<arg name="wake_up_words" default="你好你好" />
其中你好你好
是唤醒词,你可以修改为你想要的唤醒词。修改完成后执行
rosrun robot_upstart install startup/launch/startup.launch
sudo systemctl daemon-reload && sudo service startup restart
等待系统自检完成生效