语音识别和对话

注意此功能一般没有默认添加,需要额外要求才能添加。此功能只能在机器人联网的情况下使用。

语音识别

在添加此功能后对机器人说你好你好进行唤醒。唤醒之后可以继续说指令词让机器人执行对应的指令。当前默认的指令有:

  • 回去充电
  • 开启导航
  • 继续任务
  • 暂停任务
  • 取消任务
  • 现在的电压,获取机器人当前的电压信息
  • 关机
  • 跟我走,让机器人跟随你
  • 唱首歌
  • 讲个笑话
  • 讲个故事
  • 跳个舞
  • 再见
  • 停止跟随
  • 让机器人移动到特定目标点。比如说去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

等待系统自检完成生效

results matching ""

    No results matching ""