我的树莓派目前已经会“说”(《树莓派智能语音助手之TTS - pyttsx3 + espeak》),也能“听”(《树莓派智能语音助手之ASR2 – sherpa-ncnn》)了。接下来,就要让它能够和我们对话起来,即会“聊天”。
说一个插曲:如果你的树莓派和我一样,raspbian都是老版本,就不建议升级python到3.9版,用默认的3.7版本。如果你已经升级了,并且也遇到了import numpy报“libm.so.6: version 'GLIBC_2.29' not found”的bug,可以参考我的另一篇博文《树莓派3B升级glibc-2.29》
选择哪个聊天机器人安装呢?我的选择是chatterbot或rasa。但不知道为何,这两个安装对我的树莓派都不是太友好,直接pip install XXX或make编译都是报错的,查了很多资料,说是raspbian版本影响。就在一筹莫展之时,无意中找到了一篇python3.6版本下的respbian安装rasa-1.4.0版本的攻略,那就死马当活马医,上手试试吧!
Python3.6版树莓派安装rasa的攻略:
https://gist.github.com/rgstephens/fd53e63901586c81029c869ff7786d9d
攻略是一个.sh的文件,包含了从安装python3.6开始到完成rasa安装的全过程。前面安装python3.6等就不在这儿赘述了,我只是将自己安装rasa-1.4.0版本的经过描述下,供大家参考。
1下载rasa
wget https://github.com/RasaHQ/rasa/archive/1.4.0.zip && unzip 1.4.0.zip
cd ~/rasa-1.4.0
2安装依赖
python3 -m pip install -r requirements.txt --user --force-reinstall
注:安装依赖包这一步你如果跳过了,安装rasa的命令也是可以正常执行。但是,你会在后面启动rasa时收到缺少某个module的报错。所以建议还是正常执行这个步骤。
另外,在安装缺失module时,最好参考requirements.txt文档中所列的对应版本号,有时候最新版本反而用不了。
3安装rasa
python3 -m pip install . --user --force-reinstall
注:--user是指安装在当前用户目录,安装成功后要在其他目录执行,需要将rasa,rasa.egg-info,rasa_core,rasa_nlu几个目录都复制到对应的python/site-packages目录下。
4启动-rasa init
python3 -m rasa init --no-prompt
如图,命令中加上--no-prompt,程序就会直接在当前目录创建Rasa工程需要的全部文件。目录安装成功后就会在初始化样本数据上训练简单的聊天机器人。
如果前面跳过了安装依赖项这一步骤,在这里就会遇到很多报错。如果是初始化训练机器人报错,根据提示安装了其中一个module后,还会自动提示其他缺失项,按照这个提示一个个装就行了。(如下图)
5 启动-rasa shell
初始化成功后会提示执行rasa shell,在终端输入:
python3 -m rasa shell
启动成功后就可以进行一个基于初始化模型训练的简单机器对话。
至此,rasa-1.4.0的安装就全部完成了。接下来,就要对rasa进行中文聊天训练了,等我完成中文模型训练后再来总结吧!
PS:实际运行过程还是遇到了很多问题,我会再写一篇总结,来聊聊运行rasa init和rasa shell时候遇到的各种报错及解决方案。
最后吐个槽:用树莓派3B来安装rasa的确有有点勉强了。
附录:
rasa官网教程