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.pswp.cn/diannao/76380.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/76380.shtml
英文地址,請注明出處:http://en.pswp.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…