Nao机器人语音对话
程序员文章站
2022-07-14 22:10:05
...
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
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
- To declare a Concept, see: concept and dynamic.
- To use a Concept, see: Concept call: ~.
concept:(欢迎语) ^rand[hi hello "你好" "很高兴见到你" 哇 哇塞]
u:(~欢迎语) ~欢迎语
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:(你好) 你好啊。
===================================
上一篇: 聊天机器人1(C#,AIML)
下一篇: Task 2 协同过滤