如何使用树莓派和TJBot构建IBM沃森聊天机器人
扫描二维码
随时随地手机看文章
现在私人助理很受欢迎。它们帮助用户使用语音控制提供信息和控制设备。市场上有很多语音助手,比如亚马逊Alexa、谷歌助手、Siri等。它们都非常先进,使用人工智能(AI)来检测用户的查询并给予适当的反馈。IBM沃森也是提供语音助手服务的工业级物联网和人工智能平台之一。我们以前使用IBM沃森物联网平台与树莓派和ESP32发送温度和湿度数据到云端。
IBM Watson是一个强大的平台,它为您的产品提供语音到文本、文本到语音、视觉识别、自然语言处理和认知计算功能等服务。IBM沃森也有开源机器人,被称为TJBot。这个IBM沃森人工智能机器人可以很容易地实现使用树莓派。这个机器人的所有组件都是开源的,你可以3D打印它的身体,也可以用树莓派制作你自己的TJBot。TJBot还支持摄像头检测并给出适当的反馈。
因此,在本教程中,我们将制作一个个性化的IBM Watson AI聊天机器人,它可以为您提供基于语音的反馈。在这里,我们将通过创建讲笑话的技能来演示它,但是您可以使用这个AI聊天机器人创建任何交互和有用的技能。
硬件需求
•Raspberry Pi 3[推荐]或Raspberry Pi 2 Model B[支持]和SD卡(8GB及以上)
•外接扬声器,3.5mm AUX电缆
•任何网络摄像头或USB 2.0麦克风
要开始使用树莓派,您应该有一个可以使用HDMI电缆连接的显示器,或者您可以使用SSH终端或VNC服务器访问它。
注意:网络摄像头有内置麦克风,所以我们将使用它来代替USB 2.0麦克风。
整个Watson聊天机器人教程主要分为4个部分,具体如下:
•设置SSH或VNC服务器访问pi,并检查音频输入和输出。
•从IBM云获取沃森服务
•添加与IBM Watson机器人交互的技能。
•在树莓派上安装Tjbot库。
第1部分:使用SSH和VNC设置Raspberry Pi
首先,我们必须使用Putty、MobaXterm、TeamViewer等远程访问软件设置SSH或VNC。如果你有HDMI显示器,那么你可以直接连接树莓派与它,并可以访问它的功能。
用树莓派检查摄像头麦克风:
1. 打开树莓派终端,输入record -l命令。这将显示连接到树莓派的硬件设备,如下所示:
卡片1是我们将要使用的网络摄像头的MIC。如果没有显示,则表示摄像头可能有缺陷。
2. 现在,通过运行record audio命令检查MIC是否正常工作:
3. 要播放录制好的音频,输入以下命令:
如果树莓派用HDMI电缆连接到显示器,那么默认情况下音频输出将通过显示器的扬声器(如果有内置扬声器)。因此,要将输出改为3.5mm音频插孔,输入以下命令:
现在,你应该听到3.5毫米插孔的声音。
注意:要增加或减少麦克风的输入声音响度,请在终端输入alsamixer,然后按F6从终端选择声卡。
按F4改变MIC - dB增益,并设置为您想要的。
这里我们使用Webcam作为USB麦克风,但是上面的步骤对于为IBM Watson会话设置USB 2.0麦克风仍然是相同的。
第2部分:设置Watson帐户和服务
1. 首先,要在IBM云网站上创建帐户,请访问该网站并单击“创建帐户”。如果您已经有帐户,那么您可以简单地通过输入您的凭据登录。
2. 单击搜索栏右侧给出的Catalog。现在,点击AI选项。为了与Bot聊天,我们需要在这个平台上提供三个服务。这些服务包括语音到文本、文本到语音和沃森助手。因此,添加这些服务,并注意在添加这些API密钥时我们将获得的API密钥。注意每个服务的键。
3. 我们将从向文本添加语音开始,添加其他服务的步骤将与下面描述的相同。点击语音转文本服务然后点击创建。
4. 单击Service Credentials,然后单击View Credentials。通过点击复制图标复制整个内容,如下所示。
5. 现在,将同一AI目录中的文本添加到语音和沃森助手,并复制每个服务的凭据。如果“服务凭据”中没有出现凭据,那么只需单击“新凭据”,它就会出现。
我们已经完成了为IBM聊天机器人设置服务的工作。现在,我们需要创造技能并用可能的答案训练它。
第3部分:创造和训练技能
1. 转到您之前创建的沃森助手服务,并在沃森助手服务中添加技能。因此,单击Launch Watson Assistant,如下所示。
2. 技能模板已经在沃森助手中给出,我们将使用它并放置我们的技能内容。所以,点击技能,然后点击我的第一个技能。单击“创建技能”,还可以创建其他技能。
3. 在这里,我们正在制作一个讲笑话的技能,所以创建一个实体来检测单词“笑话”,点击实体,然后创建实体。
4. 现在,输入“joke”作为实体名称和值名称。输入单词joke的同义词,然后单击Add value,如下所示。如果你想做其他的活动,比如介绍,那就单独做一个实体。
5. 现在,创建一个对话框,对被问到的问题给出反馈。点击对话框然后点击创建对话框。
6. 在对话中,写出对所问问题的回答。然后创建一个包含可能问题的节点,并为它编写可能的答案。默认情况下,已经有两个节点,一个是Welcome note,另一个是其他节点。
7. 单击Add节点并给它一个名称,然后识别单词为@joke:joke。写出可能的答案,如下所示。
8. 现在,我们需要训练我们的机器人识别问题并做出相应的反应。因此,单击窗口右下角的Try it,您将看到welcome节点生成的欢迎提示。
9. 在try it out窗口中写一个问题来获得响应。就像我们会问“告诉我一个笑话”,写下这句话并按回车键,你会看到如下所示的回复。如果答案与所问的问题不匹配,只需从下拉菜单中选择标记无关。这样模型就可以被训练成沃森聊天机器人。
10. 类似地,对其他问题,比如你是谁?你能做什么?填好你的回答,然后训练它。你已经准备好在树莓派上测试你的技能了。
第4部分:在Raspberry pi中安装TJBot库
1. 首先,我们必须更新树莓派软件包,打开终端并运行以下命令
2. 现在,使用下面的命令安装TJBot的引导包
安装它需要时间,所以,去给你拿杯咖啡吧。
3. 安装完成后,您将看到如下消息
一些设置问题会被问到,比如你想安装TJBot库吗,点击Y,你想安装nodejs吗,点击9,因为TJBot包运行在nodejs 9版本上,其他问题也类似。
完全安装完成后,将在Desktop上创建一个TJBot文件夹。
4. 如果你没有安装NodeJS 9,那么运行以下命令来安装NodeJS 9。
现在,重新启动树莓派。
5. 现在,使用npm编译TJBot模块。使用下面的命令安装npm
6. 使用cd命令转到tjbot/recipes/conversation目录,运行以下命令编译模块。
7. 编译完成后,输入我们正在使用的服务的凭据。为此,转到conversation文件夹并运行以下命令
该命令将config.default.js文件中的内容复制到config.js中。现在,我们可以在config.js文件中编辑和输入凭据。
8. 使用nano文本编辑器使用下面的命令打开config.js文件:
然后输入工作区ID, Watson助手的凭据(api密钥和url),语音到文本和文本到语音。工作空间ID可以在IBM平台的技能控制台中找到,如下所示。
如下所示,输入所有三个服务的凭据,并使用ctrl+x保存并按Enter。
IBM聊天机器人演示
现在,我们准备运行IBM沃森助手。因此,在tjbot/recipes/conversation文件夹中运行下面的命令来启动助手。
如果所有模块工作正常,那么您将在终端上看到如下所示的输出
现在,问一个问题“沃森,给我讲个笑话”,你会得到类似这样的回答,你也可以从扬声器上听到回答。
可以通过在config.js文件中编辑TJBot的配置来更改bot的名称,如下所示。
本文编译自iotdesignpro