Nao机器人语音对话

C:\ProgramFiles\AldebaranRobotics\ChoregrapheSuite2.1\share\doc\getting_started\helloworld_choregraphe_dialog.html

http://doc.aldebaran.com/2-1/naoqi/audio/dialog/dialog-syntax_full.html#delimiter-rule

首先根据这里建立一个工程,然后添加Set language和Dialog模块。


接着双击左上角添加到工程的对话配置文件,这里以中文文件为例子*_mnc.top

输入以下内容

concept:(欢迎语) ^rand[hi hello "你好" "很高兴见到你" "哇" "哇塞"]
u:(~欢迎语) ~欢迎语

u:([hi 你好{Nao} 机器人 科科]) 你好,我的 [主人 老板]
u:(你叫什么名字) 大家都叫我科科!
u:(我的名字叫 _*) 很高兴见到你 $1 $name=$1
u:(我的名字叫 _[小熊 石头]) 很高兴见到你 $1 $name=$1

u:(我好饿) 那你想吃什么呢,$name
u:(我想吃 _*) 你现在想吃 $1 吗,$name $food=$1
u:(我点了什么) ^first["你刚刚点了 $food" "我忘记了"]

u:(给我讲个故事) %故事 好的,要听新故事吗?
u:([!不要 给我讲个新故事 要 好的]) 好的,我会给你讲个新故事!
u:([不要给我讲个新故事 不 不要]) 好的,我会给你讲三个和尚!
u:([Shit Fuck]) 不能讲脏话

proposal: %天气 今天的天气?

因为Nao的语音是离线的,关于对话需要有一定的规则。

NAOqi APIs—Audio—ALDialog

file:///C:/Program%20Files/Aldebaran%20Robotics/Choregraphe%20Suite%202.1/share/doc/naoqi/audio/dialog/aldialog.html#aldialog

file:///C:/Program%20Files/Aldebaran%20Robotics/Choregraphe%20Suite%202.1/share/doc/naoqi/audio/dialog/dialog.html#rule

u( )为用户说的话,写在括号里。方括号[ ]里的为可替代词汇,{ }里 的为可省略词汇。

Concept

A Concept is a list of words and/or phrases that refer to one idea.
For example, a list of countries, a list of names, synonyms of a word.

They can be used both in Human input or Robot output.

There are two types of Concepts:

Type Scope At run time ... May contain ...
Static global cannot be modified Choice: [ ], Optional part: { }, concepts (static and dynamic), functions (^rand, ^first), Variable: $ and Conditions: == > <> <.
Dynamic local to a Topic must be modified a list of words or phrases between a single Choice: [ ].

Examples

concept:(want) ^rand {"i'd * like" "i want {"a lot"}"}
dynamic:want
python:
setConcept("want","enu", ["i'd like" "i want" "i want a lot"]

Syntax

concept:(欢迎语) ^rand[hi hello "你好" "很高兴见到你" 哇 哇塞]
u:(~欢迎语) ~欢迎语

file:///C:/Program%20Files/Aldebaran%20Robotics/Choregraphe%20Suite%202.1/share/doc/naoqi/audio/dialog/dialog-syntax_full.html#input-storing

u:(我的名字叫 _[石头 小熊]) 很高兴见到你 $1 $name=$1 ^nextProposal

proposal: 今天的天气不错哦。
   u1:(是的) 我很高兴。
   u1:(不) 我不开心。

proposal: 今天你玩的开心吗?
    u1:([{很}开心 我{很}高兴 呵呵 哈哈]) 欢迎下次再来玩。
    u1:([{不}开心 我{不}高兴]) 我不开心。 ^nextProposal

proposal: 那我给你讲个故事? 

=========================


topic: ~Hello()
language: mnc


#file:///C:/Program%20Files/Aldebaran%20Robotics/Choregraphe%20Suite%202.1/share/doc/naoqi/audio/alanimatedspeech.html#tags

#$my_event=my_value is equivalent to ^pCall(ALMemory.raiseEvent("my_event", "my_value")).


concept:(欢迎语) ^rand[hi hello "嗨" "哈喽" "你好" "很高兴见到你" "哇" "哇塞"]
concept:(repeat) [再说一遍 重复{一次} 你说什么 什么 "你可以再说一遍吗" "我没听清"]
concept:(bye) [bye {拜}拜 goodbye "bye bye" {下次}再见 "再会"]

u:([~欢迎语 "科科" "机器人"]) ~欢迎语

#u:([hi 你好{Nao} 机器人 科科]) "你好 ^start(SitOnPod/Emotions/Neutral/Hello_1) 我的[主人 老板] ^wait(SitOnPod/Emotions/Neutral/Hello_1)"

u:([hi Nao 你好{Nao} 机器人 科科]) 你好, ^pCall(ALMotion.wakeUp()) ^start(animations/Stand/Gestures/Hey_1) 见到你好开心!^wait(animations/Stand/Gestures/Hey_1)

#u:(e:LeftBumperPressed "动动这只脚") 好,我动动这只脚
u:(e:LeftBumperPressed) 好,我动动这只脚
#u:(e:RightBumperPressed "抬抬这只脚") 好,我抬抬这只脚
u:(e:RightBumperPressed) 好,我抬抬这只脚


#################################################################
u:(你叫什么{名字}) 大家都叫我科科!很高兴见到你
#u:^private(我的名字叫 !*) 很高兴见到你 $1 $name=$1 ^nextProposal
u:(我的名字叫 _*) 很高兴见到你 $1 $name=$1 ^gotoRandom(对话)
u:(我{的名字}叫 _[林* 郑* 吴* 陈* 蔡* 黄* 苏* 赵* 李* 周* 张* 王* 老师 张老师 小朋友 鄢武 保来]) 很高兴见到你 $1 $name=$1 ^gotoRandom(对话)

proposal: %对话 今天的天气不错啊。
    u1:(是的) 我很高兴。^gotoRandom(对话)
    u1:(不) 我不开心。^gotoRandom(对话)

proposal: %对话 今天你玩的开心吗?
    u1:([{很}开心 我{很}高兴 呵呵 哈哈]) 欢迎下次再来玩。^gotoRandom(对话)
    u1:([{不}开心 我{不}高兴]) 我会做的更好的,下次再来看我哦。 ^gotoRandom(对话)

proposal: %对话 那我给你表演个节目好吗?
    u1:([好 可以 行 好的 嗯]) 让我想想 ^start(Stand/Waiting/ScratchHead_1) ^wait(Stand/Waiting/ScratchHead_1) ^start(Stand/Waiting/KnockEye_1) ^gotoRandom(对话)
    u1:([不 {我}不想{看} 不行 不好 {我}不要 下次吧 不可以]) ^gotoRandom(对话)
    u1:(~repeat) 好的,我再问你一遍. ^sameProposal

#################################################################
u:(我可以摸摸你吗) 当然可以。

u:([起立 站起来]) 好的,我要站起来了 $wakeup=1
u:([休息 蹲下]) 好的,我要休息了 $rest=1

#################################################################
u:(我好饿) 那你想吃什么呢,$name
u:(我想吃 _*) 你现在想吃 $1 吗,$name $food=$1
u:(我想吃 _[苹果 香蕉]) 你现在想吃 $1 吗,$name $food=$1
u:(我点了什么) ^first["你刚刚点了 $food" "我忘记了"]

u:(给我讲个故事) %故事 好的,要听新故事吗?
u:(!不要 给我讲个新故事) 好的,我会给你讲个新故事!
u:(不要给我讲个新故事) 好的,那我会给你讲老故事 三个和尚!
#u:([Shit Fuck]) 不能讲脏话

u:(外星人) 我不是外星人, 我是人形机器人。

#lower priority level.(你好,外星人或者外星人)
recover:
u:(你好) 你好啊。

===================================


猜你喜欢

转载自blog.csdn.net/yaked/article/details/79810029