树莓派智能语音助手之聊天机器人-RASA

news2024/11/13 8:02:06

我的树莓派目前已经会“说”(《树莓派智能语音助手之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官网教程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2049306.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python 获取pdf文件中的超链接

pip install pymupdf pip install fitzimport fitz # PyMuPDFdef get_pdf_links(pdf_path):# 打开PDF文件document fitz.open(pdf_path)links []for page_num in range(len(document)):page document[page_num]# 获取当前页面的链接for link in page.get_links():links.app…

Mac升级系统文件都丢了怎么办?Mac更新后资料找不到了怎么恢复

Mac电脑由于其卓越的性能,受到了众多电脑用户的青睐。为了让用户获得更好的使用体验,Mac系统会定期推出新版本,来弥补前一个版本的不足。然而有用户反馈,Mac升级后,电脑里的部分资料消失了。mac升级会丢失文件吗?mac升…

iOS ColleCtionView 如何让cell 不重复创建并且只在展示的时候才创建

前言 使用 collectionView 一屏只展示一个 cell ,一次只加载当前 cell,还要能够缓存已加载过的 cell ,使 cell 不重复加载,听着好像就是将 collectionView 的复用机制禁用掉。用collectionView 实现这个需求,就出现了…

【GD32】从零开始学GD32单片机 | PMU电源管理单元+深度睡眠和待机例程(GD32F470ZGT6)

1. 简介 PMU电源管理单元通俗讲就是用来管理MCU的电源域的,它主要有两个功能——电压监测和低功耗管理。在GD32中一共有3个电源域——VDD/VDDA域、1.2V域和备份域。 VDD/VDDA域主要供PMU控制器、ADC、DAC等外设使用;1.2V域就是大部分外设都会使用的电源域…

ai大模型之争-生成音乐-豆包

豆包网页版:豆包 可以生成自定义音乐了 1,打开网页,登录 2,选择音乐生成 3,进行音乐配置 3.1,可以选择: 1,自己写歌词或者ai创造歌词; 2,可以选输入歌词…

xss漏洞复现

目录 第一关 第二关 第三关 第四关 第五关 第一关 要求&#xff1a; Pop an alert(1337) on sandbox.pwnfunction.com. No user interaction. 代码&#xff1a; <!-- Challenge --> <h2 id"spaghet"></h2> <script> spaghet.inn…

【数据结构与算法 | 图篇】Floyd-Warshall算法(多源最短路径算法)

1. 前言 Floyd-Warshall算法是一种在有向图或无向图中寻找所有顶点对之间的最短路径的动态规划算法。该算法可以处理带权重的边&#xff0c;并且能够正确处理负权重的边&#xff08;但不包括负权重循环&#xff09;&#xff0c;不过它不能处理包含负权重循环的情况&#xff0c…

IDEA 设置SVN项目管理忽略文件

忽略已经控制的文件 打开本地已经克隆下来的项目&#xff0c;并找到需要忽略控制的文件或文件夹 操作完成之后需要将当前的操作更新到SVN服务器。 直接在IDEA中提交修改&#xff08;快捷键CTRL K&#xff09;就可以 unverison: 取消版本控制 add to ignore list&#xff1…

C语言之文件操作上卷(二十一)(逆行人生-2024)

&#x1f4e3;&#x1f4e3;&#x1f4e3;&#x1f4e3;&#x1f4e3;&#x1f4e3;&#x1f4e3;&#x1f4e3; ✏️作者主页&#xff1a;枫霜剑客 &#x1f4cb; 系列专栏&#xff1a;C语言知识学习归纳总结&#xff08;逐梦篇专栏合集&#xff09; &#x1f332;上一篇: C语…

17 Menubutton 组件

17 Menubutton 组件 Tkinter 的 Menubutton 组件是一个特殊的按钮&#xff0c;当点击时会弹出一个菜单。这个菜单可以包含多个菜单项&#xff0c;允许用户从菜单中选择一个选项。Menubutton 通常用于创建带有下拉菜单的界面。以下是对 Menubutton 组件的详细说明和一个使用案例…

力控机器人torque-controlled robots

力控机器人&#xff08;Torque-Controlled Robots&#xff09;&#xff0c;也称为力矩控制机器人&#xff0c;是一种能够感知并实时控制施加在物体上力量的机器人系统。这类机器人通过集成力传感技术&#xff08;Force Sensing Technology&#xff09;和控制算法&#xff08;Co…

C++ | Leetcode C++题解之第343题整数拆分

题目&#xff1a; 题解&#xff1a; class Solution { public:int integerBreak(int n) {if (n < 3) {return n - 1;}int quotient n / 3;int remainder n % 3;if (remainder 0) {return (int)pow(3, quotient);} else if (remainder 1) {return (int)pow(3, quotient …

【CPP】继承语法详解与菱形继承

关于我&#xff1a; 睡觉待开机&#xff1a;个人主页 个人专栏: 《优选算法》《C语言》《CPP》 生活的理想&#xff0c;就是为了理想的生活! 作者留言 PDF版免费提供&#xff1a;倘若有需要&#xff0c;想拿我写的博客进行学习和交流&#xff0c;可以私信我将免费提供PDF版。…

iOS更新后在IPhone上恢复丢失的文本消息的4种方法

您是否在更新 iPhone 软件后丢失了重要的短信&#xff1f;丢失数据可能会令人沮丧&#xff0c;尤其是当它包含有价值的信息或感性信息时。幸运的是&#xff0c;有一些方法可以在iOS更新后恢复iPhone上丢失的短信。 在这篇博文中&#xff0c;我们将讨论可用于恢复丢失的短信的不…

【19. 删除链表的倒数第 N 个结点 中等】

题目&#xff1a; 给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表的头结点。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], n 2 输出&#xff1a;[1,2,3,5] 示例 2&#xff1a; 输入&#xff1a;head [1], n 1 输出&#xff1a;…

Vue学习 Day03 (hooks和路由)

自定义hooks 准备工作&#xff1a;首先导入axios的依赖 案例 首先写一个子组件&#xff0c;如下 <template> <h2>{{ sum }}</h2> <button click"addSum">点我sum1</button> <hr><img v-for"(dog,index) in dogs&qu…

Bugku-web-你必须让他停下来

打开环境&#xff0c;先分析出现的提示是让这个页面停下来 我们尝试关闭JS&#xff0c;发现确实停下来了-----》F12查看页面源代码但是flag还是没有出现&#xff0c;----》尝试刷新jpg随着刷新而变化&#xff0c;当刷新到10.jpg时flag出现 最后我尝试不关js刷新打开源代码刷新也…

展厅中控需要配套些什么设备

展厅中控系统需要配套的设备主要包括以下几个方面&#xff0c;以确保展厅内各种设备的高效管理和控制&#xff1a; 一、核心控制设备 中控主机&#xff1a; 功能&#xff1a;中控主机是展厅中控系统的核心&#xff0c;能够全面管理和控制展厅内的所有声光电设备。重要性&…

Jetpack 各种框架简介

Jetpack是Google推出的一套为Android开发提供极大便利的组件、工具和指导集&#xff0c;旨在帮助开发者快速构建高质量的应用&#xff0c;并遵循最佳实践。 Jetpack不仅是一个提高开发效率的工具集&#xff0c;还是Android开发的未来方向。它通过整合各种组件和工具&#xff0…