使用AI-01開發板和開源后端服務搭建整套小智服務系統

使用AI-01開發板和開源后端服務搭建整套小智服務系統

四博智聯的AI-01開發板,基于樂鑫ESP32-C2 + 專屬定制的離線語音模組,能夠完美的接入小智AI服務平臺,再使用開源后端服務,就能夠搭建一個完整的小智AI服務系統了。

下面是具體的搭建過程。

硬件連接

AI-01開發板沒有板載USB轉串口功能,需要自己通過USB轉串口工具來連接到電腦,以便下載固件和查看日志輸出信息。
參考官方提供的接線指導:下載說明
在這里插入圖片描述

具體連線如下:
在這里插入圖片描述

在實際使用中,USB轉串口工具僅需連接到AI-01開發板的TX、RX、GND即可。然后用Tyep-C數據線給AI-01開發板供電即可。
需要注意的是,因為AI-01開發板沒有提供RESET按鈕,所以后續需要通過插拔Tyep-C數據線來重新上電,實現AI-01開發板的重啟運行。

按照接線指導連接好以后,將USB轉串口工具連接到電腦,再打開電腦的設備管理器,確保正確識別到對應的串口,并顯示在端口(COM和LPT)中:
在這里插入圖片描述

可以拔掉USB轉串口工具,對應的設備會消失。然后過幾秒,再重新連接到電腦的USB口,會重新出現。

建立ESP-IDF開發環境

小智AI系統硬件設備的開源代碼,可以在VSCode中安裝ESP-IDF的擴展和編譯工具,來進行編譯和燒錄。

安裝ESP-IDF擴展

首先安裝VSCode,可以從https://code.visualstudio.com/download下載。
安裝后,打開VSCode,點擊右則導航欄的3+1方塊圖標,進入擴展安裝,然后搜索esp-idf安裝即可:
在這里插入圖片描述

安裝ESP-IDF編譯工具

安裝完ESP-IDF擴展后,點擊右邊導航欄的樂鑫圓形圖標,在Advanced中點擊配置ESP-IDF擴展,然后選擇EXPRESS進入安裝配置:
在這里插入圖片描述

在安裝配置界面中,按照下圖選擇從中國服務器下載(for China),并選擇v5.3.3版本,再點擊Install安裝:
在這里插入圖片描述

然后,耐心等待安裝完成:
在這里插入圖片描述

設置ESP-IDF擴展

安裝完成后,從ESP-IDF擴展的安裝界面,先設置圖標,在選擇設置:
在這里插入圖片描述

在設置界面中,先搜索flash,設置燒錄的波特率為921600:
在這里插入圖片描述

再搜索monitor,設置串口監視的波特率為74880:
在這里插入圖片描述

編譯運行示例程序

現在開發環境已經安裝配置好了,為了確保能夠正常使用,可以運行一個示例程序進行檢驗。

點擊右邊導航欄的樂鑫圓形圖標,在Advanced中點擊展示示例項目,在列出的項目中,選擇hello_world,然后點擊Select location for hello_world project
在這里插入圖片描述

點擊后,會提示示例項目保存目錄,設置一個目錄保存即可。
創建成功后,會自動打開新建的hello world的項目工作界面:
在這里插入圖片描述

然后按照下圖,點擊選擇之前在設備管理器中顯示的USB轉串口工具設備端口號,以及芯片類型esp32c2:
在這里插入圖片描述

再點擊構建圖標,即可編譯hello_world的源碼:
在這里插入圖片描述

編譯成功后,會顯示如下的內存占用情況:
在這里插入圖片描述

在下一步操作之前,需要從電腦先斷開AI-01開發板的Tyep-C數據線,再按住AI-01開發板上的按鍵不放,然后重新連接到電腦上,讓AI-01開發板進入下載固件模式。連接完成后,可以松開按鍵。

操作完成后,再點擊底部的ESP-IDF:構建、燒錄和監視圖標,并在頂部彈出列表中選擇UART
在這里插入圖片描述

隨后,會自動完成編譯源碼,燒錄固件到AI-01開發板,并啟動串口監視:
在這里插入圖片描述

當VSCode下部的窗口,顯示上述信息后,重新插拔AI-01開發板的Tyep-C數據線,AI-01開發板將重新上電運行前面燒錄的程序,并輸出Hello World
在這里插入圖片描述

在進行下一步操作之前,需要點擊上述信息輸出界面右則各任務輸出窗口的回收站圖標終止任務,否則后續操作中,燒錄和監視串口會有問題。
在這里插入圖片描述

成功完成以上各項操作后,ESP-IDF開發環境就準備好了,可以進行后續操作,編譯小智AI系統硬件設備的開源代碼了。

編譯運行DOIT小智AI開源代碼

因為AI-01開發板使用的是樂鑫ESP32-C2 + 專屬定制的離線語音模組,在小智AI官方的開源代碼中沒有適配,所以四博智聯基于小智AI官方的開源代碼,提供了對應的分支版本DOIT_AI,和官方版本的功能沒有差異。

下載源碼

DOIT_AI的源碼,可以從https://github.com/SmartArduino/DOIT_AI下載最新版本:
在這里插入圖片描述

在上述界面中,可以使用git工具clone源碼,也可以直接下載源碼的壓縮包。

設置編譯參數

使用VSCode打開下載的源碼,參考前面hello world,設置串口端口號和芯片類型esp32c2。
另外,還需要通過SDK配置編輯器(menuconfig),開設置Xiaozhi的Board TypeDoit-AI-01-Kit
在這里插入圖片描述

保存設置后,點擊底部的構建來編譯源碼:
在這里插入圖片描述

編譯成功后,顯示如下信息:
在這里插入圖片描述

燒錄運行

在下一步操作之前,需要從電腦先斷開AI-01開發板的Tyep-C數據線,再按住AI-01開發板上的按鍵不放,然后重新連接到電腦上,讓AI-01開發板進入下載固件模式。連接完成后,可以松開按鍵。

操作完成后,再點擊底部的ESP-IDF:構建、燒錄和監視圖標,并在頂部彈出列表中選擇UART
在這里插入圖片描述

界面會顯示如下信息,表示正在燒錄固件:
在這里插入圖片描述

如果執行后,出現下面的錯誤,說明串口被占用,或者連接不正確:
在這里插入圖片描述

燒錄完成后,顯示信息如下:
在這里插入圖片描述

當VSCode下部的窗口,顯示上述信息后,重新插拔AI-01開發板的Tyep-C數據線,AI-01開發板將重新上電運行前面燒錄的程序,并輸出小智AI運行的信息:
在這里插入圖片描述

配網運行

首次燒錄運行后,會輸出上述配網信息,并語音播報進入配網模式
此時,使用手機連接Xiaozhi開頭的熱點:
在這里插入圖片描述

就能進入配網界面,設置當前環境所使用的WiFi名稱和密碼:
在這里插入圖片描述

配置成功后,AI-01開發板運行的小智AI系統會自動重啟,并輸出如下的信息:
在這里插入圖片描述

激活設備

首次配置網絡后,會提示需要激活設備,并語音播報激活信息。
訪問小智AI服務平臺官網https://xiaozhi.me/,進入控制臺注冊賬號并登錄:
在這里插入圖片描述

然后,添加新的智能體:
在這里插入圖片描述

添加后,點擊添加設備:
在這里插入圖片描述

然后輸入播報或者顯示的數字:
在這里插入圖片描述

激活成功后,系統會自動重新啟動,啟動完成,會聽到嘟的一聲響:
在這里插入圖片描述

現在,就可以使用你好小智喚醒小智AI,然后進行對話了。也可以使用按鍵進行喚醒,然后進行對話。
在這里插入圖片描述

搭建開源后端服務

AI-01開發板運行的小智系統,默認會連接到小智AI官方的服務平臺。
我們可以使用開源后端服務的源碼,來運行自己的小智AI后端服務,讓AI-01開發板連接到自己的后端服務。

下載后端服務源碼

從https://github.com/xinnan-tech/xiaozhi-esp32-server/releases 可以下載最新發布的開源后端服務的源碼:
在這里插入圖片描述

下載后解壓源碼,找到如下的目錄,準備后續的操作:
在這里插入圖片描述

下載語音識別模型文件

開源后端服務可以在本地運行語音識別服務(ASR),但需要下載對應的模型文件:https://modelscope.cn/models/iic/SenseVoiceSmall/resolve/master/model.pt

下載后,將該文件放置到main/xiaozhi-server/models/目錄中:
在這里插入圖片描述

安裝 Anaconda

要運行開源后端服務,還需要Anaconda來安裝python環境運行。
從 https://www.anaconda.com/download/success 下載Windows對應的Anaconda安裝包 Anaconda3-2024.10-1-Windows-x86_64.exe
在這里插入圖片描述

下載完成后,打開安裝包安裝,并在配置時,全部打鉤:
在這里插入圖片描述

安裝完成后,搜索Anaconda,打開Anaconda Prompt
在這里插入圖片描述

打開后,進入xiaozhi-server對應的目錄,并執行下面的命令以查看conda版本,檢測是否安裝成功:

conda -V

在這里插入圖片描述

創建Python運行環境

然后,執行下面的命令,創建需要的Python運行環境:

conda create -n xiaozhi-esp32-server python=3.10 -y

執行成功后,會輸出如下的信息:
在這里插入圖片描述

再依次執行下面的每一條命令,使用創建的環境,并安裝需要的支持包:

conda activate xiaozhi-esp32-serverconda 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-forgeconda install libopus -y
conda install ffmpeg -y

在這里插入圖片描述

安裝完成后,執行下面命令,檢驗是否安裝正確:

python -V
conda list opus
conda list ffmpeg

在這里插入圖片描述

最后,執行下面的命令,安裝開源后端服務所依賴的包:

pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
pip install -r requirements.txt

在這里插入圖片描述

安裝成功后,會輸出如下信息:
在這里插入圖片描述

獲取大模型apikey

開源后端服務運行時,需要調用LLM(大語言模型)接口,完成AI對話工作。

默認的LLM使用的是ChatGLM,去ChatGLM的官網https://bigmodel.cn/注冊登錄,然后添加新的Api Key,就可以免費使用:
在這里插入圖片描述

配置后端服務

要運行小智后端服務,還需要做一些基礎的配置。

首先,如果電腦上有多塊網卡,或者運行了VMWare等虛擬機服務的話,上面顯示的IP地址不一定是實際聯網使用的,可以查看網絡連接的屬性,來獲取當前使用的IP地址:
在這里插入圖片描述

然后,執行下面的命令生成默認的配置文件:

mkdir data
copy config.yaml data\.config.yaml

在這里插入圖片描述

再用VSCode打開后端服務源碼目錄xiaozhi-server,并打開data目錄中的.config.yaml修改配置:
在這里插入圖片描述

根據配置中的提示,修改如下位置:

  • websocket地址:
    在這里插入圖片描述

修改websocket的地址,使用前面查看網絡屬性得到的IPv4地址,端口使用8000即可。

  • ChatGLMLLM的api key:
    在這里插入圖片描述

將ChatGLMLLM的api_key,設置為前面獲取的ChatGLM的apikey即可。

運行后端服務

上述操作都成功完成后,執行下面的命令,運行后端服務:

python app.py

運行成功后,將會出現如下的信息:
在這里插入圖片描述

如果出現下面的提示,一定要點擊允許:
在這里插入圖片描述

根據前面獲取的IPv4地址,最終的服務地址如下:

  • OTA接口地址:http://192.168.1.182:8002/xiaozhi/ota/
  • WebSocket接口地址:ws://192.168.1.182:8000/xiaozhi/v1/

測試后端服務

打開如下目錄中的test.html,可以通過網頁測試后端服務是否正常:
在這里插入圖片描述

在測試界面中,填入上一步最終得到的OTA接口地址和WebSocket接口地址,就可以連接測試:
在這里插入圖片描述

配置說明

開源后端服務配置文件中,有很多方面參數可以配置。
例如可以設置AI的人設,以及調用的LLM和TTS配置:
在這里插入圖片描述

開源后端服務默認使用的LLM是ChatGLM,免費且速度快,但智能的能力并不是最好的,而使用的語音合成(TTS)服務是EdgeTTS,免費但是速度不快。
如果要想使用更好的效果,可以詳細查看開源后端服務配置文件的說明,去開通相應平臺的賬號,獲取對應的連接參數填入:
在這里插入圖片描述

在這里插入圖片描述

并啟用對應的配置:
在這里插入圖片描述

設置好對應的配置以后,重新啟動后端服務即可生效。

另外,上面搭建的是簡化版本的開源后端服務,讓大家快速體驗自己搭建整套小智服務系統。
如果參考開源后端服務的文檔,搭建完整版的后端服務,還包括管理界面,功能非常的強大:
在這里插入圖片描述

設置AI-01開發板OTA地址

現在開源后端服務已經成功運行了,只需要將AI-01開發板OTA地址,設置為上一節中最后獲取的OTA接口地址,就可以連接到自己的后端服務了。

配置OTA地址

使用VSCode打開設備端DOIT_AI源碼,參考之前設置編譯參數,通過SDK配置編輯器(menuconfig),設置OTA地址:
在這里插入圖片描述

重新編譯源碼

設置了OTA參數后,點擊底部的構建項目圖標,重新編譯源碼:
在這里插入圖片描述

構建成功后,會輸出如下信息:

在這里插入圖片描述

燒錄運行

在燒錄運行之前,需要把之前打開的監視窗口關閉,否則串口無法重復連接。
在這里插入圖片描述

在下一步操作之前,需要從電腦先斷開AI-01開發板的Tyep-C數據線,再按住AI-01開發板上的按鍵不放,然后重新連接到電腦上,讓AI-01開發板進入下載固件模式。連接完成后,可以松開按鍵。

操作完成后,再點擊底部的ESP-IDF:構建、燒錄和監視圖標,自動完成編譯、燒錄、監視操作:
在這里插入圖片描述

燒錄完成后,會輸出如下的信息:
在這里插入圖片描述

待輸出上面信息后,重新插拔AI-01開發板的Tyep-C數據線,AI-01開發板將重新上電運行前面燒錄的程序,并輸出小智AI運行的信息,并聽到嘟的一聲響:
在這里插入圖片描述

現在,說你好小智喚醒小智AI,或者使用按鍵喚醒小智AI,開始對話:
在這里插入圖片描述

從上面的輸出信息可以看到,現在使用的是自己的后臺服務地址了。

查看后端服務的輸出日志,可以看到請求和返回的過程:
在這里插入圖片描述

演示效果

下面的演示中,服務端配置中,使用了DoubaoLLM和DoubaoTTS:

在這里插入圖片描述

具體演示效果如下:

全開源:使用四博AI-01開發板搭建自已的AI小智服務系統

從上面的演示中可以看到,使用AI-01開發板和開源后端服務搭建環境,可以順利的運行提供服務,讓我們能夠擁有自己的小智服務系統了。
另外,演示環境是在本地電腦搭建的,如果是在服務器上搭建的,反饋的速度會更快。如果有充足的顯卡資源,還可以自建LLM服務和TTS服務。

鳴謝

  • 感謝蝦哥開源小智AI設備端源碼:xiaozhi-esp32
  • 感謝開源團隊開發后端服務:xiaozhi-esp32-server
  • 感謝四博智聯提供AI-01源碼:DOIT_AI

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/79458.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/79458.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/79458.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

字節跳動在GitHub上有哪些開源項目

字節跳動(ByteDance)在GitHub上開源了許多項目,涵蓋前端、后端、云原生、AI、數據庫等多個領域。以下是一些典型項目及其簡介: 1. 前端 & 跨平臺開發 Hippy 倉庫: Tencent/Hippy(注:Hippy 最初由騰訊開…

超長8分鐘Suno V4.5 – 支持一首歌多風格轉換啦~~~

f歷史文章 Suno AI API接入 - 將AI音樂接入到自己的產品中,支持120并發任務 AI音樂支持中文,實測效果,大家自己聽聽看嘍 2025年新年快樂,Viggle AI打開新年快樂 讓照片舞動起來,只要3分鐘就可以搞定了,…

vue3+ts項目 配置vue-router

安裝vue-router pnpm install vue-router配置 1.src/router/index.ts文件下的內容 import type { App } from vue import type { RouteRecordRaw } from vue-router import { createRouter, createWebHistory } from vue-router import remainingRouter from ./modules/remai…

如何利用dify 生成Fine?tune 需要的Alpaca 格式數據

如果你選擇llamafactory 格式進行微調,它只是格式是Alpaca格式,dify 的agent dsl 如下,你可以導入本地的dify 或者導入cloud 版本的;測試版本是0.1.5 app:description: 上傳文件,基于文件內容,使用 Silico…

C++開發指南

一、C++ 是什么? C++ 是一種強大、靈活、高性能的系統級編程語言,由 Bjarne Stroustrup 在 20 世紀 80 年代初開發,是 C 語言的超集。它既支持面向過程編程,也支持面向對象、泛型、函數式等現代范式。 C++ 被廣泛應用于: 系統軟件(如操作系統、編譯器)游戲開發(如 Un…

重測序關系矩陣構建方式匯總

樣本間親緣關系矩陣(kinship matrix)和同源性矩陣(IBS matrix)構建的方式 1. 可以使用plink的–make-rel計算個體之間的親緣關系(強調個體之間的遺傳相似性) /opt/software/plink --bfile vcf_bfile--mak…

docker 部署前、后端分離項目詳細步驟(從打包到部署)

在平常的開發工作中,一個項目經歷需求、開發、測試、上線等步驟。在開發測試完成后,我們需要部署測試環境、生產環境等,那么我們用 docker 方式應該怎么部署呢?前后端分離的項目又該如何部署呢?那么,今天我…

大語言模型理解一般需求到在專業領域中最大限度地發揮其效能的演變軌跡

在人工智能技術飛速發展的當下,大語言模型(LLM)憑借其強大的語言處理能力和廣泛的應用潛力,成為了各行業關注的焦點。從最初的文本生成、簡單問答,到如今在專業領域的深度應用,大語言模型與用戶的交互模式正…

mindyolo填坑

1、按照gitee上的文檔跑預測代碼,跑不通 更改: 將predict.py復制到跟目錄。如果是cpu(本地測試比較常見),那么正確的命令行是: python predict.py --device_targetCPU --config ./configs/yolov7/yolov7.…

Python集合全解析:從基礎到高階應用實戰

一、集合核心特性與創建方法 1.1 集合的本質特征 Python集合(Set)是一種??無序且元素唯一??的容器類型,基于哈希表實現,具有以下核心特性: ??唯一性??:自動過濾重復元素??無序性??&#xff…

【javascript】競速游戲前端優化:高頻操作與并發請求的解決方案

文章目錄 前言一、性能痛點分析二、核心技術方案1.Web Worker2.Promise高級控制3.智能隊列系統4.游戲化節流設計 三、最佳實踐選擇 前言 在競速類網頁游戲中,玩家高頻點擊與服務器實時交互會引發兩大核心挑戰: 客戶端性能瓶頸:頻繁操作導致…

Linux操作系統系統編程:x86-64架構下的系統調用

在Linux操作系統里,系統編程如同精密儀器的核心部件,掌控著系統運行的關鍵。而 x86-64 架構下的系統調用,更是連接用戶空間程序與內核的關鍵橋梁。你可以把用戶空間的程序想象成一個個 “工匠”,它們有著各式各樣的需求&#xff0…

理解數據湖

目錄 一、數據湖的定義與相關概念 二、數據湖出現的背景 三、數據湖關鍵技術 (一)存儲技術

前端應用開發技術歷程的簡要概覽

前端應用開發技術詳解 一、萌芽期&#xff08;1990s - 2004&#xff09; 技術特征 HTML 3.2 / HTML 4.01 是主流版本。 樣式用 CSS1/CSS2&#xff0c;但大部分樣式寫在 <style> 標簽甚至行內。 動態效果主要通過 JavaScript 控制 DOM&#xff0c;兼容性極差。 代表事…

交換機配置DHCP

交換機配置DHCP 背景先關閉路由器的DHCPconsole口連接到交換機配置交換機 背景 路由器的dhcp分配IP地址變慢&#xff0c;怎么處理 先關閉路由器的DHCP 查看路由器中DHCP地址池范圍; 關閉路由器的DHCP console口連接到交換機 協議Serial端口COMX波特率9600流控無 配置交換機…

解決Flutter項目中Gradle構建Running Gradle task ‘assembleDebug‘卡頓問題的終極指南

解決Flutter項目中Gradle構建Running Gradle task ‘assembleDebug‘卡頓問題的終極指南 前言 在開發Flutter應用時,經常會遇到Gradle構建卡在Running Gradle task assembleDebug階段的問題。本文將分享如何通過配置華為云鏡像和使用自定義腳本下載依賴的方法解決這些問題。…

AI驅動文字冒險游戲

github地址&#xff1a;https://github.com/thornbsj/ImmenseSimGame 雖然游戲比較簡陋&#xff0c;但是由于筆者不想對游戲做過多的“劇透”&#xff0c;因此本文只粗略講一下大致邏輯以及部分代碼&#xff0c;有興趣的朋友可以看上面的倉庫獲得更詳細的部分。 一、狀態機改…

springboot中有關數據庫信息轉換的處理

現代項目一般都是前后端分離的&#xff0c;前端只負責展示數據&#xff0c;不負責對數據處理&#xff0c;所以所有數據處理工作都由后端進行 比如在仿京東中的status&#xff0c;審核信息展示&#xff0c;數據庫中是以0/1顯示&#xff0c;但是前端需要以"審核/未審核&quo…

提示詞版本化管理:AI開發中被忽視的關鍵環節

當我的提示詞"消失"在團隊協作中 上周五下午&#xff0c;我經歷了一場小型"災難"。作為一名AI產品經理&#xff0c;我花了整整三天精心打磨的客服機器人提示詞&#xff0c;在周末更新后突然"失效"了。機器人不再能夠準確識別用戶意圖&#xff0…

Centos Ubuntu RedOS系統類型下查看系統信息

文章目錄 一、項目背景二、頁面三、說明四、代碼1.SysInfo2.EmsSysConfig3.HostInformationController4.HostInfo 一、項目背景 公司項目想展示當前部署系統的&#xff1a;操作系統&#xff0c;軟件版本、IP、主機名。 二、頁面 三、說明 說明點1&#xff1a;查詢系統類型及…