使用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 Type
為Doit-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