欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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模块。

Nao机器人语音对话

接着双击左上角添加到工程的对话配置文件,这里以中文文件为例子*_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: 那我给你讲个故事? 

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

Nao机器人语音对话

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:(你好) 你好啊。

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

Nao机器人语音对话

相关标签: Nao