Mac下小智AI本地环境部署

可以进行聊天、编写程序、播放歌曲等等的小智语音聊天小助手,在Mac环境下修改源代码,值得拥有。本篇内容主要讲解Mac下环境的搭建,WebSocket的修改。注:环境python3.12.0、ESP-IDF5.4.0、开发板ESP32S3。

目录

  • 1.Git安装
  • 2.Python安装
  • 3.VSCode安装
    • 3.1 简体中文
    • 3.2 ESP-IDF配置
  • 4.环境变量配置
  • 5.参数配置与编译
    • 5.1 源代码下载
    • 5.2 VSCode加载项目
    • 5.3 硬件参数配置
  • 6.服务端配置
    • 6.1 MiniConda安装
    • 6.2 服务端源代码下载
  • 6.3 添加清华源通道
    • 6.3 配置API Key
  • 7.测试
  • 8.参考资料
  • 9.声明


1.Git安装

Git
官网下载
安装Mac系统的Git软件。

在这里插入图片描述

2.Python安装

Python环境:
国内高速下载
版本要求Python3.10以上,建议选择Python3.12版本。在这里插入图片描述

3.VSCode安装

VSCode
官网下载
可下载通用版,Intel和M系列芯片支持安装。
在这里插入图片描述

3.1 简体中文

中文语言包安装,安装简体中文,然后重启VSCode。
在这里插入图片描述

3.2 ESP-IDF配置

ESP-IDF插件安装
在这里插入图片描述

ESP-IDF下载与配置
在这里插入图片描述
选择ADVENCED,自定义选择安装。
在这里插入图片描述
选择国内高速下载、版本可以选择5.4.0或5.4.1。
在这里插入图片描述
受网络的影响,需要先进行下载,下载过程尽量不要中止,下载包含所需要的ESP环境、编译工具等等。

4.环境变量配置

esp-idf本地下载所在位置
在这里插入图片描述
“Command+Shift+.”,显示隐藏的文件或文件夹
在这里插入图片描述
添加系统环境变量,方便后续命令行操作。
在这里插入图片描述

sudo vim ~/.zshrc
export IDF_PATH=~/esp/v5.4/esp-idf
export PATH="$PATH:$HOME/.espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin"
export PATH="$PATH:$HOME/.espressif/tools/esp32ulp-elf/2.38_20240113/esp32ulp-elf/bin"
export PATH="$PATH:$HOME/.espressif/tools/openocd-esp32/v0.12.0-esp32-20241016/openocd-esp32/bin"
export PATH="$PATH:$HOME/.espressif/python_env/idf5.4_py3.12_env/bin"

配置完成后,执行以下命令生效。

source ~/.zshrc 

检查配置

echo $IDF_PATH                # 输出 ESP-IDF 路径
xtensa-esp32-elf-gcc --version # 检查编译器是否识别
python --version              # 确认 Python 3.12.0

进入esp-idf目录,第一次操作,执行安装命令:

./install.sh

然后执行export.sh脚本,显示以下内容表示成功。

. ./export.sh

在这里插入图片描述

5.参数配置与编译

5.1 源代码下载

打开terminal终端执行git命令:

git clone https://github.com/78/xiaozhi-esp32.git

5.2 VSCode加载项目

打开下载的XIAOZHI-ESP32源代码文件夹,VSCode加载过程中,会提示安装C++扩展选择安装,ESP-IDF加载等,中途不要取消。
在这里插入图片描述

5.3 硬件参数配置

idf.py命令操作,进入esp-idf文件夹,再次执行export.sh脚本。

. ./export.sh

进入源代码目录下

cd /xxx/xx/xiaozhi-esp32

在这里插入图片描述

项目构建

idf.py build

在这里插入图片描述
在这里插入图片描述

芯片类型设置

idf.py set-target esp32s3

在这里插入图片描述
在这里插入图片描述

菜单配置

idf.py menuconfig

上下键控制移动,回车键确认
在这里插入图片描述
连接类型Connection Type选择WebSocket。
在这里插入图片描述
修改websockt地址可以为自己本地的或个人部署的,后面加上/xiaozhi/v1。
在这里插入图片描述
在这里插入图片描述
Board Type可以根据自己的版型选择。
在这里插入图片描述
屏幕分辨率根据自己的OLED尺寸选择。
在这里插入图片描述
按“S”保存配置,然后按ESC回到上一级。

唤醒词的修改。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
保存后退出。

6.服务端配置

6.1 MiniConda安装

Intel芯片下载安装脚本

curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh

M系列芯片下载安装脚本

curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh

找到下载脚本的位置,安装脚本
Intel芯片

bash Miniconda3-latest-MacOSX-x86——64.sh

或者M系列芯片

bash Miniconda3-latest-MacOSX-arm64.sh

按提示阅读许可协议,输入 yes 同意。
安装路径(默认在 ~/miniconda3)。
在这里插入图片描述
安装完后,执行

source ~/miniconda3/bin/activate

然后执行初始化

conda init --all

6.2 服务端源代码下载

下载xiaozhi-esp32-server
github访问

创建虚拟环境,如何之前创建过,通过conda命令移除。
conda remove -n xiaozhi-esp32-server --all -y

创建虚拟环境,名称为esp32-server。

conda create -n esp32-server python=3.12 -y

激活虚拟环境

conda activate esp32-server

退出虚拟环境(非必需)

conda deactivate

6.3 添加清华源通道

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge

安装libopus和ffmpeg

conda install libopus -y
conda install ffmpeg -y

6.3 配置API Key

在这里插入图片描述
没有data文件夹需要创建并拷贝config.yaml,通过termial终端命令行修改为.config.yaml

mv config.yaml .config.yaml

在这里插入图片描述
修改配置文件,添加API Key。
model.pt下载可以选择阿里魔塔下载,速度较快。
models文件夹下需要放置model.pt文件。
在这里插入图片描述

7.测试

构建项目

idf.py build

连接硬件esp32s3
烧录

idf.py flash

python app.py启动websocket,不要关闭终端。

python app.py

在这里插入图片描述

8.参考资料

[1]miniconda配置,创建虚拟环境
[3]小智AI聊天机器人百科全书
[2]小智官方文档服务器端配置

9.声明

本篇文章在小智官方文档的学习下,Mac系统上配置,将踩过的坑进行总结、经验分享。

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

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

相关文章

Linux安装Cmake (Centos 7.9)

cmake安装 这个虽然已经更新到了4.0.0版本了,但是我们要用3.5版本的,因为这个比较稳定 官方地址:https://github.com/Kitware/CMake/releases/tag/v3.5.0,选择那个cmake-3.5.0-Linux-x86_64.tar.gz下载, 首先解压文…

基于 SpringBoot 的旧物置换网站

收藏关注不迷路!! 🌟文末获取源码数据库🌟 感兴趣的可以先收藏起来,还有大家在毕设选题(免费咨询指导选题),项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多…

ELK 通过 logstash 收集单个/多个日志文件

一、收集单个日志文件 注意事项: logstah 服务默认启动用户和组是 logstash被收集的日志文件有读的权限并对写入的文件有写权限而 logstash 是普通用户 1.1 编辑 logstash 配置文件 vim /etc/logstash/conf.d/test.conf input {file {path > "/var/log/…

分享一个Drools规则引擎微服务Docker部署

通常我们都是把Drools作为嵌入式使用,但在微服务泛滥时代,还在老套的嵌入式显然不符合微服务架构要求,本文分享一个把Drools作为微服务独立部署的方案。 本方案基于Drools引擎微服务,提供REST接口。 1、可以动态部署Drools规则2…

Mac 本地化部署 dify

Macbook 本地化部署 dify 目录 Macbook 本地化部署 dify安装dockerdocker下载地址 安装dify下载dify到本地github可能遇到的问题: github打开超时在本地解压dify.zip文件本地化部署docker部署可能遇到的问题: 部署超时登录体验 dify 安装docker docker下载地址 根据电脑芯片选…

串口中断接收与环形缓冲实例(apollo3 blue plus)

#define DEV_UART1 1 #define GPS_POWER_PIN 13 #define GPS_LOG_ENABLE 1 #define MAX_UART1_SIZE 1024 #define AM_BSP_GPIO_COM_UART1_TX 8 #define AM_BSP_GPIO_COM_UART1_RX 9 // 定义环形缓冲区结构 typed…

操作系统高频(五)linux命令

操作系统高频(五)linux命令 1.Linux中查看进程运行状态的指令、tar解压文件的参数。⭐⭐⭐ 在Linux中,可以使用以下指令查看进程的运行状态: top: 用于实时监视系统的进程活动和系统资源使用情况。在终端中运行top…

Spring Boot 快速入手

前言:为什么选择 Spring Boot? 🚀 在现代 Java 开发中,Spring Boot 已成为最流行的后端框架之一。无论是小型 Web 应用、企业级系统,还是微服务架构,Spring Boot 都能提供快速开发、自动配置、轻量级部署的…

oracle-blob导出,在ob导入失败

导出&#xff1a; [oraclelncs dmp]$ /home/oracle/sqluldr2 gistar/res#pwd192.168.205.58:1521/lndb query"select * from an_odn_picture where length(PIC_CONTENT)<25000" filean_odn_picture.csv Charsetutf8 textCSV 0 rows exported at 2025-…

RK3568 pinctrl内容讲解

文章目录 一、pinctrl的概念`pinctrl` 的作用设备树中的 `pinctrl` 节点典型的 `pinctrl` 节点结构例子`pinctrl` 的重要性总结二、RK3568的pinctrl讲解1. `pinctrl` 节点2. `gpio0` 至 `gpio4` 子节点每个 `gpioX` 子节点的结构和作用3. `gpio1` 到 `gpio4` 子节点总结1. `aco…

北京南文观点:后糖酒会营销,以战略传播重构品牌信心坐标

第112届全国糖酒会落下帷幕&#xff0c;参展品牌面临一个关键命题。如何在流量洪流中沉淀品牌价值&#xff1f;北京南文&#xff08;全称&#xff1a;南文乐园科技文化&#xff08;北京&#xff09;有限公司&#xff09;认为&#xff0c;糖酒会的结束恰是算法时代品牌认知战的真…

html5时钟升级!支持切换深浅模式 Canvas实现现代化动态时钟

HTML5 Canvas实现现代化动态时钟 这里写目录标题 HTML5 Canvas实现现代化动态时钟项目介绍技术实现1. 项目架构2. Canvas绘图实现2.1 表盘绘制2.2 刻度绘制2.3 指针绘制 3. 动画效果4. 主题切换 项目亮点技术要点总结项目收获改进方向结语 项目介绍 本项目使用HTML5 Canvas技术…

《SRv6 网络编程:开启IP网络新时代》第2章、第3章:SRv6基本原理和基础协议

背景 根据工作要求、本人掌握的知识情况&#xff0c;仅针对《SRv6 网络编程&#xff1a;开启IP网络新时代》书籍中涉及的部分知识点进行总结梳理&#xff0c;并与工作小组进行分享&#xff0c;不涉及对原作的逐字搬运。 问题 组内同事提出的问题&#xff1a;本文缺扩展头描述…

卫星电话究竟是“锦上添花”?还是“刚需之选”?

在万物互联的时代浪潮中&#xff0c;卫星电话究竟是可有可无的“锦上添花”&#xff0c;还是至关重要的“刚需之选”&#xff1f;随着通信技术的持续进步与应用场景的日益拓展&#xff0c;这一问题的答案正逐渐明晰。 在5G基站覆盖99%行政村的今天&#xff0c;人类依然要直面自…

C语言复习笔记--指针(1)

今天我们进入指针的复习了.这部分有很多知识,话不多说,让我们进入指针的世界吧. 内存和地址 要想学指针就不能不学内存和地址. 内存 其中&#xff0c;每个内存单元&#xff0c;相当于⼀个学⽣宿舍&#xff0c;⼀ 个字节空间⾥⾯能放8个⽐特位&#xff0c;就好⽐同学们 住的⼋⼈…

【蓝桥杯每日一题】4.1

&#x1f3dd;️专栏&#xff1a; 【蓝桥杯备篇】 &#x1f305;主页&#xff1a; f狐o狸x "今日秃头刷题&#xff0c;明日荣耀加冕&#xff01;" 今天我们来练习二分算法 不熟悉二分算法的朋友可以看&#xff1a;【C语言刷怪篇】二分法_编程解决算术问题-CSDN博客 …

【设计模式】过滤器模式

过滤器顾名思义&#xff0c;定义一些过滤规则&#xff0c;将符合要求的内容筛选&#xff0c;就比如过滤不同大小或者不同颜色的水果&#xff0c;需要颜色和大小过滤器&#xff0c;筛选条件独立为对象&#xff0c;可以通过灵活组合形成过滤链条。避免大量使用判断语句。 案例代…

STM32 CAN学习(一)

CAN总线应用最多的是汽车领域。 CAN&#xff08;Controller Area Network&#xff09;控制器 局域 网 局域网&#xff1a;把几台电脑连接到一台路由器上&#xff0c;这几台电脑就可以进行通讯了。 控制器在汽车中的专业术语叫做ECU&#xff08;Electronic Control Unit&…

多线程开发中List的使用

由于ArrayList在多线程高并发情况下是不安全的&#xff0c;因此要慎用&#xff0c;那么此时如果涉及到集合操作&#xff0c;应该怎么选&#xff1a; 方案一&#xff1a;Vector: 特点&#xff1a;通过给所有方法都用 synchronized 修饰从而保证线程安全&#xff0c; 缺点&…

论文阅读笔记:Denoising Diffusion Implicit Models (2)

0、快速访问 论文阅读笔记&#xff1a;Denoising Diffusion Implicit Models &#xff08;1&#xff09; 论文阅读笔记&#xff1a;Denoising Diffusion Implicit Models &#xff08;2&#xff09; 论文阅读笔记&#xff1a;Denoising Diffusion Implicit Models &#xff08…