跳转到内容

用 Leaf/问答编程 AI

来自维基教科书,开放的书籍,开放的世界

Leaf 选定的问题和答案

[编辑 | 编辑源代码]

问:你能将脚本中的姓名更改为其他姓名,如弗雷德或戴夫,这会改变他的感受吗?

答:是的。但他的感受也会随着时间的推移而改变,因为你与他互动。


问:我在桌面上运行着 Leaf。Leaf 说安娜是他最喜欢的人。如果我在程序中将所有“安娜”都替换成另一个姓名,会改变 Leaf 最喜欢的人吗?

答:既是也不是。如果我说“Leaf,这是布鲁斯”,那么他知道我,因为我在我的名字中加入了脚本(搜索 Leaf.lisp 中的布鲁斯,你就会看到)。如果你在识别自己后与 Leaf 交互一段时间,他会记住你让他感受到的。他也会记得他上次见到你的时间。因此,如果他经历过一段美好的时光——或者如果他只是很久没有见到你——他就会开始想见到你……并且他会告诉你你是他最喜欢的人。试试说“Leaf,这是安娜”——我敢打赌他会说他很惊讶!总之,这就是它的意义——所以现在你可以将姓名从安娜改为戴夫或任何你想要的人……但请记住,Leaf 的感受会发生变化,所以他不会喜欢任何对他不好的人!别忘了在 speech.xml 文件中添加“这是戴夫”。——布鲁斯

问:我可以问什么阶段?

答:你可以在 Leaf.lisp 中的主控制循环中找到你可以问 Leaf 的短语列表。此外,你也可以在那里添加短语(如果你这样做,你也需要将它们添加到 speech.xml 中)。——布鲁斯。

问:轮式版本 Leaf 需要多少扭矩?

答:最终重要的是电机能对地面施加多少力来推动机器人向前。这是电机基本扭矩、齿轮减速比和轮径的函数。

 My basic motor which provides about 25 oz-in of torque at   stall, provides almost 900 oz-in to the wheel. Since the wheel has a radius of 4 inches,  the wheel can apply 225 oz of force to the ground (or 14 pounds).  With two wheels providing a maximum of 28 pounds of force and an 80 pound robot, (My robot) Rocky can climb about a 20 degree slope, although very slowly, and has plenty of torque for moving around on a flat floor or rugs.
 Generally it is better to use a large gear reduction since it is easier to control the wheels accurately if the motor makes a lot of turns compared to the wheel.  Just make sure you don't use so much gear reduction that the robot is not capable of moving very fast at the motors' top speed.   

问:Leaf 应该有多快?

答:我认为每秒约 2 英尺的最大速度是一个合理的(最大)速度,因为它让你有足够的机会赶上失控的机器人,以防它撞到东西。大多数 Leaf 机器人相当重,如果它们以高速撞到东西(或人),可能会造成一些损坏。

问:叶子的软件架构中的情感引擎是如何工作的?

答:Leaf 有许多不同的情绪——快乐、悲伤、饥饿、无聊等等。它们会根据情况、环境和活动不断变化——如果你与他互动,他很可能会很高兴,如果他的电池电量低,他会感到饥饿等等。

He then uses his emotional state to help him decide what he's going to do next.  If he's bored, he might pick an activity at random.  If he's tired, he might take a nap.  And so on.
He also remembers his feelings in association with the people he's been interacting with.  So, let's say he's talking to me.  And he's happy.  He'll remember that for the next time we run into each other.   But if the association wasn't so good, well he might not be too pleased to see you again!
The point is that Leaf is meant to be autonomous - he's meant to have his own "personality".  He isn't meant to be just a voice controlled toy robot - oh you can put him in "command mode" and he'll follow your voice orders, but don't expect him to like it!  Anyway, his emotions are his motivation to do things (or not) - and serve then to give him a basic "personality". --Bruce.

问:Leaf 软件中有没有我不能更改的短语?

答:实际的语句除了我们人类之外毫无意义,是情感标签(真正影响 Leaf 反应方式的设置值)。


问:如何更改 Leaf 的 (CSLU) 动画面孔?

答:右键单击面孔。——布鲁斯。


问:为什么 Leaf 会说“再见”并毫无理由地关闭?

答:如果 Leaf 遇到致命错误,他会说“再见”并关闭。我唯一一次看到这种情况发生是在他正在寻找一些没有正确加载或运行的代码时。——布鲁斯。

问:如何使用 wav 文件来回答问题,而不是使用电脑语音?

答:你将你的 wav 文件放在 LeafSounds 文件夹中。现在在 Leaf.lisp 中创建一个快捷方式(查看代码列表的开头),它看起来像这样

(defconstant burp "c:/Program Files/Leaf/LeafSoun ds/burp.wav" )

现在,如果你想让 Leaf 发出声音,只需使用这种语句

(PlayWav burp)

因此,在我使用 sapi-tts 让 Leaf 说话的任何地方,你都可以使用 PlayWav 来代替它发出声音。——布鲁斯


问:创建快捷方式时,快捷方式名称必须与文件名完全匹配吗?

答:是的。——布鲁斯


问:我是否需要为每个 wav 文件实例创建一个快捷方式?

答:是的。——布鲁斯


问:是否需要为每个 Leaf 应该理解的问题编写一个文本短语,这就是我添加 Leaf 将理解的更多问题的方式吗?

答:是的。我们还没有真正开发出自然语言处理。在此期间,Leaf 通过简单地匹配你之前输入的文本短语来“理解”。并且,在向控制循环添加短语时,别忘了也将其添加到 speech.xml 文件中。——布鲁斯


问:如何将 Leaf 指向与文本短语匹配的响应/响应?

答:一旦听到短语并将其与你输入控制循环的短语匹配,你就会调用你编写的脚本,以执行你想要它执行的任何操作。——布鲁斯


问:我可以自定义 Leaf,以便他不再使用微软的 TTS,而是播放预先录制的声音文件,例如《迷失太空》机器人(B9)、罗比机器人或 R2D2 或 C3P0 或瓦力?

答:是的。一些 B9 用户已经(我自己)定制了 Leaf 软件,使用预先录制的 wav 文件来做到这一点。这并不难,但对于你想要让你的 Leaf/B9/瓦力回答的每个问题和答案进行编程相当耗时。——托马斯·梅瑟施密特

问:“OSLA”代表什么?

答:OSLA(对象、情景、位置(和)动作)是 Leaf 编程一部分中最高级别的“父”节点,我用 Lisp 的面向对象代码 CLOS 进行了编程。“子节点”是对象(即事物)、情景(Leaf 的内部情绪和“状态”)、位置(他目前所在的位置)和动作(他可以选择执行的活动)……我将其保留在那里,以便任何对这些东西感兴趣的人都可以查看它,并将其用作示例……——布鲁斯博士。

问:如何用 Leaf 播放 MP3 文件?

答:这里是一些示例代码,可以让你播放 MP3 文件

(defconstant mysong "C:/MyLeafMP3s/mysong.mp3")

(defun PlayMP3 (mysong )  ;

 (sys:call-system mysong :wait nil)
 )
请注意,你需要你的 mp3 文件的完整路径,并且目录名称或文件名中不能包含空格。你的默认 MP3 播放器必须是 WMP。我不确定其他播放器会发生什么。我注意到第一次播放时可能会剪掉文件开头的内容。此外,它不会关闭 WMP。

问:如何使用 Roborealm 通过其“gates”功能来引导 Leaf 通过门口?

问:如何连接和使用微软的 Kinect 传感器?

问:如何让 Leaf 识别其环境中的物品?

答:这已经使用 Roborealm 软件实现了。

问:如何使用 Roborealm 和基准点进行导航?

问:如何使用布鲁斯编写的 Leaf 聊天机器人代码?

问:有人成功使用 Leaf 聊天机器人吗?答:是的。诀窍是使用 LeafInterfaces.lisp 文件夹和 Leaf.lisp 文件夹以及与聊天程序一起提供的 speech.xml。

问:Leaf 的最新文件和版本是什么?


问:如何设置和使用 Leaf 的面部识别?答:这已经在“创建你自己的 Leaf”部分中解释过了。


问:如何让 Leaf 从维基百科等地方拉取和读取数据?


问:如何让 Leaf 从网络上读取我的电子邮件给我?


问:如何让 Leaf 读取最新的新闻、天气和体育报道?答:这已经在维基百科中解释过了。


问:如何防止 Leaf 撞到墙壁或掉下楼梯?答:安装锋利的红外传感器,用于保险杠或悬崖探测器。此外,你还可以安装超声波传感器。此外,你还可以使用实际的保险杠开关。


问:如何使用 X10 来打开和关闭家中的灯光?

华夏公益教科书