×

会说话的机器人玩具开源分享

消耗积分:0 | 格式:zip | 大小:0.12 MB | 2022-10-26

绝代双骄

分享资料个

描述

当今可用的大多数教育机器人都在小型计算机上运行,​​其中包括最受欢迎的raspberry pi Jetsonarduino 。

我们将要研究的一些附加功能是人脸识别对话式人工智能

在 Raspberry Pi Model 3、4 上安装 Virtualenvwrapper

在我们在树莓派上开始任何 AI/ML 项目之前,我们必须先设置环境。

最好的做法是始终创建虚拟环境,这样我们的基础环境就不会受到影响,仅将其用于管理目的。
另一个原因是避免不同应用程序之间的冲突。应用程序使用同一模块的不同版本是很常见的,因此为了避免这些冲突,我们使用不同的环境。

poYBAGNYhamAZfN-AACAHoHzsVI847.png
 

我们将使用 virtualenvwrapper:

我们将调用环境 1 – facrec (人脸识别的缩写)

环境 2 – cbot (聊天机器人的缩写)

virtualenvwrapper 5.0.1.dev2

首先,一些初始化步骤。其中大部分只需要完成一次。您需要将该命令添加source /usr/local/bin/virtualenvwrapper.sh到您的 shell 启动文件中,根据 pip 或包管理器的安装位置更改 virtualenvwrapper.sh 的路径。

$ pip install virtualenvwrapper
...
$ export WORKON_HOME=~/Envs
$ mkdir -p $WORKON_HOME
$ source /usr/local/bin/virtualenvwrapper.sh
$ mkvirtualenv facrec
Installing
setuptools..........................................
....................................................
....................................................
...............................done.
virtualenvwrapper.user_scripts Creating /Users/dhellmann/Envs/facrec/bin/predeactivate
virtualenvwrapper.user_scripts Creating /Users/dhellmann/Envs/facrec/bin/postdeactivate
virtualenvwrapper.user_scripts Creating /Users/dhellmann/Envs/facrec/bin/preactivate
virtualenvwrapper.user_scripts Creating /Users/dhellmann/Envs/facrec/bin/postactivate  New python executable in facrec/bin/python
(facrec)$ ls $WORKON_HOME
facrec hook.log

创建另一个环境,称为 cbot

(facrec)$ ls $WORKON_HOME
facrec            hook.log
(facrec)$ mkvirtualenv cbot
Installing setuptools...............................
....................................................
....................................................
........... ...............................done.
virtualenvwrapper.user_scripts Creating /Users/dhellmann/Envs/cbot/bin/predeactivate
virtualenvwrapper.user_scripts Creating /Users/dhellmann/Envs/cbot/bin/postdeactivate
virtualenvwrapper.user_scripts Creating /Users/dhellmann/Envs/cbot/bin/preactivate
virtualenvwrapper.user_scripts Creating /Users/dhellmann/Envs/cbot/bin/postactivate  New python executable in cbot/bin/python
(env2)$ ls $WORKON_HOME
facrec            cbot            hook.log

在环境之间切换workon

(cbot)$ workon facrec
(facrec)$ echo $VIRTUAL_ENV
/Users/dhellmann/Envs/facrec
(facrec)$

列出所有环境:

lsvirtualenv [-b] [-l] [-h]

显示单个 virtualenv 的详细信息:

showvirtualenv [env]

在 WORKON_HOME 中删除一个环境:

rmvirtualenv ENVNAME

在删除当前环境之前,您必须使用 deactivate。

(mynewenv)$ deactivate
$ rmvirtualenv mynewenv
$ workon
$

从虚拟环境切换到系统安装的 Python 版本:

deactivate

环境位于:

cd ~/.virualenvs

现在我们可以开始在环境中安装了 :))

 

在 Raspberry Pi Model 3、4 上设置人脸识别

现在我们的虚拟环境已经设置好了,让我们继续在虚拟环境(facrec)中安装人脸识别包。

步骤1

在(facrec)环境中,安装 OpenCV。这是一个记录在案的链接:

https://www.pyimagesearch.com/2019/09/16/install-opencv-4-on-raspberry-pi-4-and-raspbian-buster/

第2步

安装dlib、face_recognition、imutils:

https://www.pyimagesearch.com/2018/06/25/raspberry-pi-face-recognition/

哎呀,这是一些工作!

现在我们的树莓派可以检测到我们的脸,我们可以让它打个招呼并开始与我们交谈!

 

在 Raspberry Pi 模型 3、4 上设置 Python 聊天机器人(第 1 部分,共 2 部分)

在这篇文章中,我们将在我们的树莓派上创建一个聊天机器人,它将与我们进行对话,如下所示:

poYBAGNYhauAFLFpAACMY4LSEjk079.png
 

您可以使用任何麦克风。在第 4 步中,说明了上述麦克风的设置。只需编辑您可能拥有的任何其他麦克风的主要聊天机器人代码(本文的第 2 部分)。

在第 1 部分中,我们将首先设置环境。

在我们的虚拟环境 cbot(我们在之前的文章中创建)中,让我们按照以下步骤设置聊天机器人所需的必要软件包。

 

步骤1

我们必须安装 Tensorflow 2.x 版本但发出命令:

点安装张量流

只安装旧版本。因此,要安装最新版本,请运行以下命令:

sudo apt-get install -y libhdf5-dev libc-ares-dev libeigen3-dev

python3 -m pip install keras_applications==1.0.8 –no-deps

python3 -m pip install keras_preprocessing==1.1.0 –no-deps

python3 -m pip install h5py==2.9.0

sudo apt-get install -y openmpi-bin libopenmpi-dev

sudo apt-get install -y libatlas-base-dev

python3 -m pip install -U 六轮模拟

从https://github.com/lhelontra/tensorfl选择一个 tensorflow 版本…… (我选择了 2.0.0):

pYYBAGNYha2ADAzzAABTcZmTqLA295.png
 

现在复制相应的链接地址:

pYYBAGNYha-AOkNIAAAp7R_7ANk847.png
 

wget 'paste_link_address_here'

python3 -m pip 卸载张量流

python3 -m pip install 'whatever_package_name'

例如:

python3 -m pip install 'tensorflow-2.0.0-cp37-none-linux_armv7l.whl'

重新启动您的终端

TensorFlow 2.3 在 cbot 环境下安装成功

 

第2步

安装以下软件包:

pip install chatterbot==1.0.0

点安装正则表达式==2019.11.1

pip install python-dateutil==2.7

点安装 PyAudio

点安装 nltk

点安装 Keras

 

第 3 步

接下来,我们设置语音识别以将我们所说的内容转换为文本。这将输入到聊天机器人模型以生成响应。

迷你麦克风插入 USB 端口并调整设置:

运行以下命令记录音频 5 秒:

arecord -D plughw:1,0 -d 5 the_audio.wav

 

第4步

接下来我们安装 espeak ,用于语音输出(到耳机或扬声器)。
安装 espeak:

要测试 espeak,请创建文本文件,例如 speakthis.txt,然后在“hello my friend”中写下句子。

要从文件中说话,请运行以下命令:

espeak -f speakthis.txt –stdout |aplay

你应该听到你在 speakthis.txt 文件中写的任何内容(在我的例子中,它说“你好,我的朋友”)

有关 espeak 命令的列表,请参阅:

http://espeak.sourceforge.net/commands.html

万岁!我们的环境很好,现在我们可以继续创建 AI python 聊天机器人并将所有内容粘合在一起。

在 Raspberry Pi 模型 3、4 上设置 Python 聊天机器人(第 2 部分,共 2 部分)

现在我们的 python 聊天机器人环境已经在我们的树莓派上设置好了,让我们开始运行代码。

首先下载包含所有必要代码和文件的 trivchat 文件夹:

https://github.com/wajidahmad89/rexythebot/tree/main/trivchat

将其保存到桌面,因此位置将是桌面/trivchat

让我们快速浏览一下 trivchat 中的重要文件

1.首先我们有intents.json
这个文件将包含所有你能想到的问题和答案。继续添加它!

2. 其次我们有 trainchatbot.py
这个训练神经网络并创建 chatbot_model.h5

3. 第三,我们有 cbot_main.py
所有的听力、处理和口语都发生在 cbot_main.py

4. 第四,the_audio.wav 是音频输入,你所说的最后录音会覆盖在这个文件上。

5. 第五,userinput.txt 文件将转换后的语音转文本写入此处。botresponse.txt 里面有你演讲的答案。

6. 第六,我们有 hello_camera-output.txt,它启动与“Hello John”的对话,正如我们在其中所写的那样。同样,goodbye_camera-output.txt 有对话结束,所以我们在里面写了“再见约翰”。

笔记

当您编辑 intents.json 时,请确保不要留下任何错误!
Visual Studio 是查找错误的不错选择,例如:

pYYBAGNYhbKACoOqAADTzhGByVE439.png
 

步骤1

在命令提示符下:

pi@raspberrypi:~ $ cd 桌面/trivchat

pi@raspberrypi:~/Desktop/trivchat $ workon cbot

(如下图所示,cbot 环境已激活,其中包含必要的包)

(cbot) pi@raspberrypi:~/Desktop/trivchat $ pythontrain_chatbot.py

它应该打印“模型创建

第2步

现在我们运行 cbot_main.py

(cbot) pi@raspberrypi:~/Desktop/trivchat $ python cbot_main.py

poYBAGNYhbSAXZK5AABRYmWBfX8564.png
 

现在它应该显示“正在播放……”用于音频输出,因此您必须通过耳机/扬声器聆听它在说什么

“录音……”用于音频输入,这是当您说话时,它会听 5 秒钟。文件userinput.txt将包含您所说的所有语音,文件botresponse.txt将包含所有机器人响应
 

和你的树莓派聊天玩得开心
xD

笔记

如果您的麦克风与使用的麦克风不同,您可以在第 135 行编辑 cbot_main.py 以录制您的演讲并将其保存为 the_audio.wav

 

poYBAGNYhbaAL-2SAABVceOiQ7s173.png
 

 

在 Raspberry Pi 模型 3、4 上运行人脸识别和 Python 聊天机器人

在这篇文章中,我们将把人脸识别 + python 聊天机器人功能合并在一起。当有人被识别时,树莓派会说“你好”并开始对话。

步骤1

首先下载下面的fareg文件夹:

https://github.com/wajidahmad89/rexythebot/tree/main/fareg

将 FAREG 文件夹放在桌面上

用人名创建一个文件夹,
在 fareg/dataset
人的图片会位于这个文件夹中

在命令提示符下:

努力工作

cd 桌面/票价

python encode_faces.py –dataset dataset –encodings encodings.pickle –detection-method hog

这将在 fareg 文件夹中创建 encodings.pickle 文件

稍后我们将在脚本中运行 facrec_main.py。
facrec_main.py 的作用是将相机识别的名称写入 trivchat 文件夹中的 camera-output-raw.txt。如果一个名字重复超过 3 次(在 camera-output-raw.txt 内),这是一个很好的措施来识别正确的人,所以这个确认的名字被写入 hello_camera-output.txt ,说“你好%name%” ,
以及写到 goodbye_camera-output.txt ,说
“再见 %name%”

hello_camera-output.txt 和 goodbye_camera-output.txt 也位于 trivchat 文件夹中。

第2步

其次将rexy_master文件下载到桌面:

https://github.com/wajidahmad89/rexythebot/tree/main/rexy_master

最后运行人脸识别+python聊天机器人:

pYYBAGNYhbiAHhlnAABukn2oNsw853.png
 

下面显示一次

poYBAGNYhbqASfg7AAA_WDR1T7M811.png
 

转到“masterfile-initiate.sh”文件并双击执行它

poYBAGNYhb2AbLYKAACVyinCkbc647.png
 

与启动相机之前一样,一旦人脸被识别,机器人就会开始对话。

pYYBAGNYhb-AaBH-AADV6TZduXQ924.png
 

一旦人脸识别,聊天机器人将开始对话。

嘻嘻!

Seeed Fusion 团队正在启动一项 Raspberry Pi CM4 赞助计划,以支持基于 CM4 的设计。使用 Seeed PCB 组装服务制造您的定制 Raspberry Pi CM4 载板,最高可减 $500!


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !