最后的最后,附上整个项目的源代码。 *附件:jarvis_walnutpi.zip
功能整合 到此为止我们已经实现了所有的独立功能模块,最后只需要把他们整合在一起,用FastAPI来连接起PC和核桃派就可以。 图像识别之前测试的时候我们使用的是官方的图片,当然可以把这个图片地址修改成我们网络摄 ...
语音输出 语音输出使用edge-tts来实现。这个库原来仅支持async的方法,但是在和FastAPI一起使用时则会出现冲突问题。因此作者增加了sync的方式运行,具体的pull可以参考这里: https://github.com/rany2/edge-tts/p ...
GPT接入 GPT接入我们可以使用大名鼎鼎的GPT4FREE项目来实现。这个项目的api与openai的api基本一致,可以很方便的将代码进行移植。好处是,使用这个库并不需要申请api,可以直接调用。同样的,我将方法封装成一个新的 ...
图像识别 这一部分图像识别,是整个项目中唯一一块AI功能并不使用云端API,而是所有计算预测都在本地完成的部分。这一块会对内存和核心算力有一定的考验。我们使用yolov8n这个最小的模型来进行物品识别。 首先还是这 ...
语音识别 下面我们回到核桃派上进行开发。 得到录音后,下一步要进行语音识别。语音识别我使用的是常用的python库speech_recognition。这个库中有多个模型可以使用,我使用的是老版的recognize_google模型。这个模型 ...
音频输入 由于核桃派上的3.5mm接口仅可以做音频输出使用,不能输入,因此这个项目我计划使用电脑来进行音频输入,输入完成后将录音的bytes数据通过FastAPI发送到核桃派,接着核桃派进行语音识别,图像视频,大语言模 ...
开发环境搭建 整个项目是在python下进行开发的。为了不污染系统环境,我们会使用虚拟环境来进行开发。有linux python开发经验的小伙伴一定会知道,linux平台中很多python包并不是通过pip的方式进行安装的,而是通过a ...
由于我没有HDMI显示器和键盘,因此无法按照官方WIKI那样使用桌面系统。因此,在首次启动时,我需要采用无头方式来配置无线网络。好在核桃派的接口非常齐全,不但有串口接口可以实现无头登录,拓展板上更集合了网线接 ...
首先我们安装一下固件,配置好开发环境。 去官网下载最新的Debian镜像,最新的镜像链接可以在官方wiki上找到,我选择用github方式下载server版的镜像。因为板载内存仅有1个H,如果带有图形环境的话再进行项目开发会 ...