diff --git a/docs/Application_guide/en/media/solutions/xiaozhi AI/1.png b/docs/Application_guide/en/media/solutions/xiaozhi AI/1.png
new file mode 100644
index 0000000000000000000000000000000000000000..03c187961de3a8811c985ffcf02c4bab0c957e11
Binary files /dev/null and b/docs/Application_guide/en/media/solutions/xiaozhi AI/1.png differ
diff --git a/docs/Application_guide/en/media/solutions/xiaozhi AI/2.png b/docs/Application_guide/en/media/solutions/xiaozhi AI/2.png
new file mode 100644
index 0000000000000000000000000000000000000000..c4251a617a4892d22682a32a25fc0eb013142274
Binary files /dev/null and b/docs/Application_guide/en/media/solutions/xiaozhi AI/2.png differ
diff --git a/docs/Application_guide/en/media/solutions/xiaozhi AI/3.png b/docs/Application_guide/en/media/solutions/xiaozhi AI/3.png
new file mode 100644
index 0000000000000000000000000000000000000000..4748a696a9f1b6a9b1a8f3e475d614daa8f4f6fa
Binary files /dev/null and b/docs/Application_guide/en/media/solutions/xiaozhi AI/3.png differ
diff --git a/docs/Application_guide/en/media/solutions/xiaozhi AI/EC800MCNLER01A03M08_OCPU_QPY_TEST0707A.zip b/docs/Application_guide/en/media/solutions/xiaozhi AI/EC800MCNLER01A03M08_OCPU_QPY_TEST0707A.zip
new file mode 100644
index 0000000000000000000000000000000000000000..cbf423fd0eef9100f2038e4abb0cad2f2a96462d
Binary files /dev/null and b/docs/Application_guide/en/media/solutions/xiaozhi AI/EC800MCNLER01A03M08_OCPU_QPY_TEST0707A.zip differ
diff --git a/docs/Application_guide/en/media/solutions/xiaozhi AI/EVB.jpg b/docs/Application_guide/en/media/solutions/xiaozhi AI/EVB.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..27125501f2589d72f504d857197f2cdef093107e
Binary files /dev/null and b/docs/Application_guide/en/media/solutions/xiaozhi AI/EVB.jpg differ
diff --git a/docs/Application_guide/en/media/solutions/xiaozhi AI/connect.png b/docs/Application_guide/en/media/solutions/xiaozhi AI/connect.png
new file mode 100644
index 0000000000000000000000000000000000000000..49e25f0dfb7923c81e2a8270c56160621a184fd4
Binary files /dev/null and b/docs/Application_guide/en/media/solutions/xiaozhi AI/connect.png differ
diff --git a/docs/Application_guide/en/media/solutions/xiaozhi AI/flow.png b/docs/Application_guide/en/media/solutions/xiaozhi AI/flow.png
new file mode 100644
index 0000000000000000000000000000000000000000..905d93b678a7c9c93a5ba61d46923da9101a1148
Binary files /dev/null and b/docs/Application_guide/en/media/solutions/xiaozhi AI/flow.png differ
diff --git a/docs/Application_guide/en/media/solutions/xiaozhi AI/software.png b/docs/Application_guide/en/media/solutions/xiaozhi AI/software.png
new file mode 100644
index 0000000000000000000000000000000000000000..d2bef1b682f2f63d569fba41271f4aaa94bb8778
Binary files /dev/null and b/docs/Application_guide/en/media/solutions/xiaozhi AI/software.png differ
diff --git a/docs/Application_guide/en/sidebar.yaml b/docs/Application_guide/en/sidebar.yaml
index 588d5bfcfa63d80c8ef97af57e4631f98a68210c..186a0815d099ab4c97b03a7b63dcfa60aeb02909 100644
--- a/docs/Application_guide/en/sidebar.yaml
+++ b/docs/Application_guide/en/sidebar.yaml
@@ -271,6 +271,15 @@ items:
file: solutions/AIChatBot-Volcengine-webRTC/quick_start.md
- label: software design
file: solutions/AIChatBot-Volcengine-webRTC/software_design.md
+ - label: XiaoZhi AI Chatbot
+ file: solutions/Xiaozhi AI/README.md
+ items:
+ - label: development resources
+ file: solutions/Xiaozhi AI/dev_resources.md
+ - label: quick start
+ file: solutions/Xiaozhi AI/quick_start.md
+ - label: quick start
+ file: solutions/Xiaozhi AI/software_design.md
- label: EP-D200 Hua Series DTU
file: solutions/DTU/README.md
items:
diff --git a/docs/Application_guide/en/solutions/AIChatBot-Volcengine-webRTC/quick_start.md b/docs/Application_guide/en/solutions/AIChatBot-Volcengine-webRTC/quick_start.md
index 2bfaf529a2e6b23cf973968d5bc8a4a7568b4376..2e8fa58d86579954d4b16ad2ed510744bdbf054e 100644
--- a/docs/Application_guide/en/solutions/AIChatBot-Volcengine-webRTC/quick_start.md
+++ b/docs/Application_guide/en/solutions/AIChatBot-Volcengine-webRTC/quick_start.md
@@ -51,13 +51,13 @@ Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Application
### Script import and execution
-1. Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/first_python.html#PC%E4%B8%8E%E6%A8%A1%E7%BB%84%E9%97%B4%E7%9A%84%E6%96%87%E4%BB%B6%E4%BC%A0%E8%BE%93) Import all files from the 'code' folder in the source code directory into the module file system, as shown in the following figure:
+1. Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/4G/first_python.html#Transfer-Files-Between-PC-and-Module) Import all files from the 'code' folder in the source code directory into the module file system, as shown in the following figure:
-2. Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/first_python.html#%E6%89%A7%E8%A1%8C%E8%84%9A%E6%9C%AC%E6%96%87%E4%BB%B6) Execute the main program file `ai_main.py`.
-3. Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/first_python.html#%E5%81%9C%E6%AD%A2%E7%A8%8B%E5%BA%8F%E8%BF%90%E8%A1%8C) Stop the program from running.
+2. Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/4G/first_python.html#Run-Script) Execute the main program file `ai_main.py`.
+3. Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/4G/first_python.html#Stop-a-Running-Program) Stop the program from running.
## Debugging
diff --git a/docs/Application_guide/en/solutions/Agriculture-Control-Panel/quick_start.md b/docs/Application_guide/en/solutions/Agriculture-Control-Panel/quick_start.md
index 5ea0a6c9c16144abc20c55adc6299077f49fab8c..684cf26c5ca887080cdd41e399280af1bf31bb54 100644
--- a/docs/Application_guide/en/solutions/Agriculture-Control-Panel/quick_start.md
+++ b/docs/Application_guide/en/solutions/Agriculture-Control-Panel/quick_start.md
@@ -6,7 +6,7 @@
- A Windows computer, recommended for the `Win10` system.
-- A [QuecPython U-235 development board](https://developer.quectel.com/doc/quecpython/Getting_started/en/evb/ec600u-235.html)
+- A [QuecPython U-235 development board](https://developer.quectel.com/doc/quecpython/Dev_board_guide/en/ec600u-235.html)
- A TypeC data cable
@@ -55,13 +55,13 @@ Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Application
### Script import and execution
-1. Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/first_python.html#PC) To transfer files between modules, import all files from the `code` folder in the source code directory into the module file system, as shown in the following figure:
+1. Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/4G/first_python.html#Transfer-Files-Between-PC-and-Module) To transfer files between modules, import all files from the `code` folder in the source code directory into the module file system, as shown in the following figure:
·
-2. Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/first_python.html#) Execute the script file and execute the main program file `main.py`. (During normal startup, the module will automatically execute the `main.py` file)
+2. Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/4G/first_python.html#Run-Script) Execute the script file and execute the main program file `main.py`. (During normal startup, the module will automatically execute the `main.py` file)
-3. Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/first_python.html), stop program running.
+3. Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/4G/first_python.html#Stop-a-Running-Program), stop program running.
diff --git a/docs/Application_guide/en/solutions/DTU-EG912U/quick_start.md b/docs/Application_guide/en/solutions/DTU-EG912U/quick_start.md
index b66278babe9c4d9b598a550f060f8063d710f07f..4c812b00237867e79eccb6b20180c036f91a8166 100644
--- a/docs/Application_guide/en/solutions/DTU-EG912U/quick_start.md
+++ b/docs/Application_guide/en/solutions/DTU-EG912U/quick_start.md
@@ -3,7 +3,7 @@
## Hardware preparation
- A Windows computer, Win10 system is recommended.
-- One set [EG912U Core Board](https://developer.quectel.com/doc/quecpython/Getting_started/en/evb/bg-eg-core-evb.html)
+- One set [EG912U Core Board](https://developer.quectel.com/doc/quecpython/Dev_board_guide/en/bg-eg-core-evb.html)
- One usable Nano Sim card.
- An antenna.
- A Mini USB cable.
diff --git a/docs/Application_guide/en/solutions/SensorHub/dev_resources.md b/docs/Application_guide/en/solutions/SensorHub/dev_resources.md
index c5ec37df2e66ceac0e41fdcc3fc8e9c1acee7f00..eb863173e24646c88f895406e36171aeca951f49 100644
--- a/docs/Application_guide/en/solutions/SensorHub/dev_resources.md
+++ b/docs/Application_guide/en/solutions/SensorHub/dev_resources.md
@@ -2,7 +2,7 @@
## Development board
-- model:[EC200U-EU Quecpython standard EVB](https://developer.quectel.com/doc/quecpython/Getting_started/en/evb/ec200x-evb.html)
+- model:[EC200U-EU Quecpython standard EVB](https://developer.quectel.com/doc/quecpython/Dev_board_guide/en/ec200x-evb.html))
- Purchase link:[click](https://www.waveshare.com/ec200u-au-c4-p01.htm)
- Development Board Documentation
- [specification](https://python.quectel.com/en/wp-content/uploads/sites/2/2024/11/Quectel_EC200U_Series_LTE_Standard_Specification_V1.4.pdf)
diff --git a/docs/Application_guide/en/solutions/SensorHub/quick_start.md b/docs/Application_guide/en/solutions/SensorHub/quick_start.md
index ef7f0182ac099376cfaef0e45336a0fcf290a758..289737379ce1cf92b51884864d522206a439a2a1 100644
--- a/docs/Application_guide/en/solutions/SensorHub/quick_start.md
+++ b/docs/Application_guide/en/solutions/SensorHub/quick_start.md
@@ -4,7 +4,7 @@
A Windows computer, recommended for the 'Win10' system.
-One set [EC200U-EU Quecpython standard EVB](https://developer.quectel.com/doc/quecpython/Getting_started/en/evb/ec200x-evb.html)
+One set [EC200U-EU Quecpython standard EVB](https://developer.quectel.com/doc/quecpython/Dev_board_guide/en/ec200x-evb.html)
One SIM card
@@ -50,13 +50,13 @@ Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Application
- ### Script import and execution
-1.Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/first_python.html#PC) to transfer files between modules, import all files from the code folder in the source code directory into the module file system according to the original directory structure, as shown in the following figure
+1.Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/4G/first_python.html#Transfer-Files-Between-PC-and-Module)to transfer files between modules, import all files from the code folder in the source code directory into the module file system according to the original directory structure, as shown in the following figure
-2.Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/first_python.html), execute the main program file `_main.py`
+2.Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/4G/first_python.html#Run-Script), execute the main program file `_main.py`
-3.Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/first_python.html), stop program running
+3.Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/4G/first_python.html#Stop-a-Running-Program), stop program running
## Debugging
diff --git a/docs/Application_guide/en/solutions/Wear/quick_start.md b/docs/Application_guide/en/solutions/Wear/quick_start.md
index 9a61ce1c5ec580934ac4fe7645ca71b840af92b9..f6d166f4e3ab7f9ae9d2159f9ba27ea6daec023c 100644
--- a/docs/Application_guide/en/solutions/Wear/quick_start.md
+++ b/docs/Application_guide/en/solutions/Wear/quick_start.md
@@ -52,13 +52,13 @@ Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Application
### Script import and execution
-1. Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/first_python.html#PC) To transfer files between modules, import all files ending in '. py' from the 'code' folder in the source code directory into the module file system, as shown in the following figure:
+1. Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/4G/first_python.html#Transfer-Files-Between-PC-and-Module) To transfer files between modules, import all files ending in '. py' from the 'code' folder in the source code directory into the module file system, as shown in the following figure:
-2. Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/first_python.html), execute the main program file ` main_t.py`
+2. Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/4G/first_python.html#Run-Script), execute the main program file ` main_t.py`
-3. Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/first_python.html), stop program running
+3. Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/4G/first_python.html#Stop-a-Running-Program), stop program running
diff --git a/docs/Application_guide/en/solutions/electricity-meter/dev_resources.md b/docs/Application_guide/en/solutions/electricity-meter/dev_resources.md
index eb0d8116b7b458fb33f1b9178a668ea0e74b4ac7..4b5100ee6837cb301a674b4b43112ad88eba9d28 100644
--- a/docs/Application_guide/en/solutions/electricity-meter/dev_resources.md
+++ b/docs/Application_guide/en/solutions/electricity-meter/dev_resources.md
@@ -4,7 +4,7 @@
## Development board
-- model: [QuecPython_EG91X Evaluation Board](https://developer.quectel.com/doc/quecpython/Getting_started/en/evb/eg91x-evb.html)
+- model: [QuecPython_EG91X Evaluation Board](https://developer.quectel.com/doc/quecpython/Dev_board_guide/en/eg91x-evb.html)
- EVB docs
- [specification](https://python.quectel.com/en/wp-content/uploads/sites/2/2024/11/EG91X_C1-P02-Series-EVB_Specification_and_User_Guide.pdf)
diff --git a/docs/Application_guide/en/solutions/electricity-meter/quick_start.md b/docs/Application_guide/en/solutions/electricity-meter/quick_start.md
index bcb2db4ba6c8f33f08f9be6f0cd954c2524ba7e8..c5c42249c68e1a414f751c07ce3e4686dc0228e1 100644
--- a/docs/Application_guide/en/solutions/electricity-meter/quick_start.md
+++ b/docs/Application_guide/en/solutions/electricity-meter/quick_start.md
@@ -16,7 +16,7 @@
## Environment construction
-- Download and install drivers:[Quectel_Windows_USB_DriverU](https://python.quectel.com/wp-content/uploads/2024/09/Quectel_Windows_USB_DriverU_V1.0.19.zip)
+- Download and install drivers:[Quectel_Windows_USB_DriverU](https://codeload.github.com/QuecPython/solution-wearable/zip/refs/tags/v1.0.1)
- Download and install [VSCode](https://code.visualstudio.com/)
- Download and install [QPYCom](https://python.quectel.com/wp-content/uploads/2024/09/QPYcom_V3.6.0.zip)
- Download [EG912U firmware](https://python.quectel.com/wp-content/uploads/2024/09/QPY_OCPU_BETA0002_EG912U_GLAA_FW.zip)
@@ -62,13 +62,13 @@ Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Application
-2. Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/first_python.html#PC) To transfer files between modules, import all files from the `code` folder in the source code directory into the module file system, as shown in the following figure:
+2. Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/4G/first_python.html#Transfer-Files-Between-PC-and-Module) To transfer files between modules, import all files from the `code` folder in the source code directory into the module file system, as shown in the following figure:
-3. Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/first_python.html), execute the main program file ` demo.py`
+3. Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/4G/first_python.html#Run-Script), execute the main program file ` demo.py`
-4. Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/first_python.html), stop program running
+4. Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/4G/first_python.html#Stop-a-Running-Program), stop program running
diff --git a/docs/Application_guide/en/solutions/poc/dev_resources.md b/docs/Application_guide/en/solutions/poc/dev_resources.md
index 3ab7f9f6a9fc9d61ec6927657054c1ab7b0cbbf3..4ed70dcc46c0a50fe14058f413a6ca3f7467b849 100644
--- a/docs/Application_guide/en/solutions/poc/dev_resources.md
+++ b/docs/Application_guide/en/solutions/poc/dev_resources.md
@@ -2,7 +2,7 @@
## Development board
-- model: [EC600MCNLE QuecPython Standard EVB](https://developer.quectel.com/doc/quecpython/Getting_started/zh/evb/ec600x-evb.html)
+- model: EC600MCNLE QuecPython Standard EVB
- Purchase link:[click](http://e.tb.cn/h.gAlSKya8NvMC9UY?tk=7APD3KXufyq)
- EVB docs
- [specification](https://python.quectel.com/wp-content/uploads/2024/10/EC600X系列开发板产品规格及用户指导.pdf)
diff --git a/docs/Application_guide/en/solutions/poc/quick_start.md b/docs/Application_guide/en/solutions/poc/quick_start.md
index defce3cc8434019d1fa10c7eb19ff990d2d3a787..64155a0d61e71706c326756c3901e29740b25570 100644
--- a/docs/Application_guide/en/solutions/poc/quick_start.md
+++ b/docs/Application_guide/en/solutions/poc/quick_start.md
@@ -55,12 +55,12 @@ Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Application
### Script import and execution
-1. Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/zh/first_python.html#PC%E4%B8%8E%E6%A8%A1%E7%BB%84%E9%97%B4%E7%9A%84%E6%96%87%E4%BB%B6%E4%BC%A0%E8%BE%93) Import all files from the `code` folder in the source code directory into the module file system, as shown in the following figure:
+1. Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/4G/first_python.html#Transfer-Files-Between-PC-and-Module) Import all files from the `code` folder in the source code directory into the module file system, as shown in the following figure:
-2. Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/first_python.html#%E6%89%A7%E8%A1%8C%E8%84%9A%E6%9C%AC%E6%96%87%E4%BB%B6)Execute the main program file `poc_main.py`.
-3. Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/first_python.html#%E5%81%9C%E6%AD%A2%E7%A8%8B%E5%BA%8F%E8%BF%90%E8%A1%8C) Stop the program from running.
+2. Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/4G/first_python.html#Run-Script)Execute the main program file `poc_main.py`.
+3. Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/4G/first_python.html#Stop-a-Running-Program) Stop the program from running.
## Debugging
diff --git a/docs/Application_guide/en/solutions/tracker/quick_start.md b/docs/Application_guide/en/solutions/tracker/quick_start.md
index 9b8fb94bd4fdee8bce54f1098f259326109c2131..5aa5ec05c16a6bf36498c165c679b2dbeb1a4b58 100644
--- a/docs/Application_guide/en/solutions/tracker/quick_start.md
+++ b/docs/Application_guide/en/solutions/tracker/quick_start.md
@@ -186,12 +186,12 @@ Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Application
### Script import and execution
-1. Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/first_python.html) To transfer files between modules, import all files from the 'code' folder in the source code directory into the module file system, as shown in the following figure:
+1. Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/4G/first_python.html#Transfer-Files-Between-PC-and-Module)) To transfer files between modules, import all files from the 'code' folder in the source code directory into the module file system, as shown in the following figure:

-2. Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/first_python.html), Execute the script file and execute the main program file ` _main. py `.
-3. Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/first_python.html), stop program running.
+2. Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/4G/first_python.html#Run-Script), Execute the script file and execute the main program file ` _main. py `.
+3. Refer to [this chapter](https://developer.quectel.com/doc/quecpython/Getting_started/en/4G/first_python.html#Stop-a-Running-Program), stop program running.
## Debugging
diff --git a/docs/Application_guide/en/solutions/xiaozhi AI/README.md b/docs/Application_guide/en/solutions/xiaozhi AI/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..046c2552d644c849a2e632980c371dc73648f8da
--- /dev/null
+++ b/docs/Application_guide/en/solutions/xiaozhi AI/README.md
@@ -0,0 +1,21 @@
+# XiaoZhi AI Chatbot
+
+This small intelligent AI chatbot solution has the following features:
+- Support for sound tone switching.
+- Support for voice interruption/break.
+- Support for voice wake-up.
+- Written in Python language, facilitating secondary development.
+
+
+
+
+
+
+
+
+
+---
+
+- [Development resources](./dev_resources.md)
+- [Quick start](./quick_start.md)
+- [Software design](./software_design.md)
diff --git a/docs/Application_guide/en/solutions/xiaozhi AI/dev_resources.md b/docs/Application_guide/en/solutions/xiaozhi AI/dev_resources.md
new file mode 100644
index 0000000000000000000000000000000000000000..75873feac2bcb2d980c3d0f7da78a3aec844263b
--- /dev/null
+++ b/docs/Application_guide/en/solutions/xiaozhi AI/dev_resources.md
@@ -0,0 +1,35 @@
+# Development resources summary
+
+## Hardware information
+
+ - EC800MCNLE Development Board (including antenna, Type-C data cable, etc.)
+
+ > - [Click here to purchase the development board kit](https://www.quecmall.com/goods-detail/2c90800b8cb50925018e5a696d0104f7)
+
+ - Computer (Windows 7, Windows 10 or Windows 11)
+
+ - Any speaker with a power ranging from 2 to 5 watts will do. ([Link to purchase on Miao Yuan Mall](https://www.quecmall.com/goods-detail/2c90800c9488358b01956aa656680239))
+
+ - A battery
+
+## Software documentation
+
+ - The USB driver of the QuecPython module:[QuecPython_USB_Driver_Win10_ASR](https://developer.quectel.com/wp-content/uploads/2024/09/Quectel_Windows_USB_DriverA_Customer_V1.1.13.zip)
+ - QuecPython Firmware
+ - [EC800MCNLE](../../media/solutions/xiaozhi AI/EC800MCNLER01A03M08_OCPU_QPY_TEST0707A.zip)
+
+## Development tools
+
+- QPYcom - QuecPython debug tool
+ - version: V3.6.0
+ - Download: [QPYcom](https://gitee.com/link?target=https%3A%2F%2Fpython.quectel.com%2Fwp-content%2Fuploads%2F2024%2F09%2FQPYcom_V3.6.0.zip)
+- VSCode
+ - Download: [VSCode](https://gitee.com/link?target=https%3A%2F%2Fcode.visualstudio.com%2F)
+
+## Source Code
+
+- The steps to obtain the source code from the Github repository are as follows:
+ ```bash
+ git clone https://github.com/aaronchenzhihe/solution-xiaozhiAI.git
+ ```
+- [Github Download](https://github.com/QuecPython/solution-xiaozhiAI/archive/refs/heads/master.zip)
\ No newline at end of file
diff --git a/docs/Application_guide/en/solutions/xiaozhi AI/quick_start.md b/docs/Application_guide/en/solutions/xiaozhi AI/quick_start.md
new file mode 100644
index 0000000000000000000000000000000000000000..7aa0cfdacc03404c7a1bdd61498da59e48a4ed02
--- /dev/null
+++ b/docs/Application_guide/en/solutions/xiaozhi AI/quick_start.md
@@ -0,0 +1,74 @@
+# Quick Start
+
+## Hardware preparation
+
+- A Windows computer, recommended for the Win10 system.
+- a set EC800MCNLE EVB(Including antenna, Type-C data cable, etc).
+
+- A Nano SIM card.
+- A speaker with a power of 2-5W.
+
+## 环境搭建
+
+- Download and install EC800M series module driver: [QuecPython_USB_Driver_Win10_ASR](https://gitee.com/link?target=https%3A%2F%2Fimages.quectel.com%2Fpython%2F2023%2F04%2FQuectel_Windows_USB_DriverA_Customer_V1.1.13.zip).
+- Download and install [VSCode](https://gitee.com/link?target=https%3A%2F%2Fcode.visualstudio.com%2F).
+- Download and unzip [QPYCom](https://gitee.com/link?target=https%3A%2F%2Fimages.quectel.com%2Fpython%2F2022%2F12%2FQPYcom_V3.6.0.zip)。
+- Download Firmware
+ - [EC800MCNLE](../../media/solutions/xiaozhi AI/EC800MCNLER01A03M08_OCPU_QPY_TEST0707A.zip)
+- Download [Source code](https://github.com/QuecPython/solution-xiaozhiAI/archive/refs/heads/master.zip)。
+
+## Hardware connection
+
+Connect the hardware according to the following diagram:
+
+
+
+
+1. Connect the `WiF` antenna to the antenna socket marked with the word `WiFi` in the picture.
+2. Connect the antenna to the antenna socket marked with `LTE`.
+3. Insert the available `Nano SIM` card at the position shown in the diagram.
+4. Connect the speaker to the pin headers marked with `SPK+` and `SPK-` in the figure.
+5. Connect the battery at the position shown in the diagram.
+6. Connect the development board to the computer using a Type-C data cable.
+
+## Equipment development
+
+### Power on
+
+After completing the hardware connection work, if a COM port containing the words "Quectel USB" appears in the port list of the computer device manager, it indicates that the computer has successfully booted up.
+
+
+
+### Burn firmware package
+
+Refer to [this chapter](https://gitee.com/link?target=https%3A%2F%2Fdeveloper.quectel.com%2Fdoc%2Fquecpython%2FApplication_guide%2Fen%2Fdev-tools%2FQPYcom%2Fqpycom-dw.html%23%E4%B8%8B%E8%BD%BD%E5%9B%BA%E4%BB%B6) Burn the corresponding firmware package to the development board.
+
+### Script import and execution
+
+1. Refer to [this chapter](https://gitee.com/link?target=https%3A%2F%2Fdeveloper.quectel.com%2Fdoc%2Fquecpython%2FGetting_started%2Fen%2F4G%2Ffirst_python.html%23Transfer-Files-Between-PC-and-Module) Import all files from the 'code' folder in the source code directory into the module file system, as shown in the following figure:
+
+
+
+1. Refer to [this chapter](https://gitee.com/link?target=https%3A%2F%2Fdeveloper.quectel.com%2Fdoc%2Fquecpython%2FGetting_started%2Fen%2F4G%2Ffirst_python.html%23Run-Script) Execute the main program file `ai_main.py`.
+2. Refer to [this chapter](https://gitee.com/link?target=https%3A%2F%2Fdeveloper.quectel.com%2Fdoc%2Fquecpython%2FGetting_started%2Fen%2F4G%2Ffirst_python.html%23Stop-a-Running-Program) Stop the program from running.
+
+## Debugging
+
+### Program startup
+
+After executing the `_main. py` script, the program starts running.
+
+### Activate Xiaozhi AI
+
+As shown in the following picture, it is in a state ready to be awakened. A red light will flash on the development board, and you need to use the voice `Xiaozhi, Xiaozhi` to wake up Xiaozhi AI for a voice conversation.
+
+
+
+After waking up, data related to connecting to the server or a prompt indicating connection failure will appear. When a connection failure occurs, please check if the network is normal.
+
+
+
+When the system has not engaged in a conversation for a long time or has not received any commands, it will automatically enter a sleep state and wait for the next wake-up.
+
+
+
diff --git a/docs/Application_guide/en/solutions/xiaozhi AI/software_design.md b/docs/Application_guide/en/solutions/xiaozhi AI/software_design.md
new file mode 100644
index 0000000000000000000000000000000000000000..80ee82798d587a96d1c96caab5c8996a00a4f6ab
--- /dev/null
+++ b/docs/Application_guide/en/solutions/xiaozhi AI/software_design.md
@@ -0,0 +1,209 @@
+# Software Design
+
+## Software framework
+
+### Framework design diagram
+
+
+
+### Business system startup process
+
+
+
+## Code Explanation
+
+### AI wake-up & Human voice detection
+
+```python
+class Application(object):
+ def on_keyword_spotting(self, state):
+ logger.info("on_keyword_spotting: {}".format(state))
+ if state == 0:
+ # Trigger the wake-up word
+ if self.__working_thread is not None and self.__working_thread.is_running():
+ return
+ self.__working_thread = Thread(target=self.__working_thread_handler)
+ self.__working_thread.start()
+ self.__keyword_spotting_event.clear()
+ else:
+ self.__keyword_spotting_event.set()
+
+ def on_voice_activity_detection(self, state):
+ gc.collect()
+ logger.info("on_voice_activity_detection: {}".format(state))
+ if state == 1:
+ self.__voice_activity_event.set() # It is claimed that
+ else:
+ self.__voice_activity_event.clear() # No One Can Hear You
+```
+
+### AI initialization
+
+Initialize AI objects and other hardware drivers.
+
+```python
+class Application(object):
+
+ def __init__(self):
+ # Initialize the wake-up key
+ self.talk_key = ExtInt(ExtInt.GPIO19, ExtInt.IRQ_RISING_FALLING, ExtInt.PULL_PU, self.on_talk_key_click, 50)
+
+ # Initialize the led; write(1) extinguished; write(0) is on
+ self.wifi_red_led = Led(33)
+ self.wifi_green_led = Led(32)
+ self.power_red_led = Led(39)
+ self.power_green_led = Led(38)
+ self.lte_red_led = Led(23)
+ self.lte_green_led = Led(24)
+ self.led_power_pin = Pin(Pin.GPIO27, Pin.OUT, Pin.PULL_DISABLE, 0)
+
+ # Initialize charging management
+ self.charge_manager = ChargeManager()
+
+ # Initialize audio management
+ self.audio_manager = AudioManager()
+ self.audio_manager.set_kws_cb(self.on_keyword_spotting)
+ self.audio_manager.set_vad_cb(self.on_voice_activity_detection)
+
+ # Initialize network management
+ self.net_manager = NetManager()
+
+ # Initialize the task scheduler
+ self.task_manager = TaskManager()
+
+ # Initialization protocol
+ self.__protocol = WebSocketClient()
+ self.__protocol.set_callback(
+ audio_message_handler=self.on_audio_message,
+ json_message_handler=self.on_json_message
+ )
+
+ self.__working_thread = None
+ self.__record_thread = None
+ self.__record_thread_stop_event = Event()
+ self.__voice_activity_event = Event()
+ self.__keyword_spotting_event = Event()
+```
+
+### AI dialogue interruption logic
+
+```python
+class Application(object):
+ def __chat_process(self):
+ self.start_vad()
+ try:
+ with self.__protocol:
+ self.power_red_led.on()
+ self.__protocol.hello()
+ self.__protocol.wakeword_detected("小智")
+ is_listen_flag = False
+ while True:
+ data = self.audio_manager.opus_read()
+ if self.__voice_activity_event.is_set():
+ # 有人声
+ if not is_listen_flag:
+ self.__protocol.listen("start")
+ is_listen_flag = True
+ self.__protocol.send(data)
+ # logger.debug("send opus data to server")
+ else:
+ if is_listen_flag:
+ self.__protocol.listen("stop")
+ is_listen_flag = False
+ if not self.__protocol.is_state_ok():
+ break
+ # logger.debug("read opus data length: {}".format(len(data)))
+ except Exception as e:
+ logger.debug("working thread handler got Exception: {}".format(repr(e)))
+ finally:
+ self.power_red_led.blink(250, 250)
+ self.stop_vad()
+
+```
+
+### music organizer
+
+Uniformly manage the audio input and output, encoding and decoding, and voice recognition related functions of the equipment (keyword recognition KWS and voice activity detection VAD), and provide callback interfaces for upper-layer applications to use.
+
+```python
+class AudioManager(object):
+
+ def __init__(self, channel=0, volume=11, pa_number=29):
+ self.aud = audio.Audio(channel) # 初始化音频播放通道
+ self.aud.set_pa(pa_number)
+ self.aud.setVolume(volume) # 设置音量
+ self.aud.setCallback(self.audio_cb)
+ self.rec = audio.Record(channel)
+ self.__skip = 0
+
+ # ========== 音频文件 ====================
+
+ def audio_cb(self, event):
+ if event == 0:
+ # logger.info('audio play start.')
+ pass
+ elif event == 7:
+ # logger.info('audio play finish.')
+ pass
+ else:
+ pass
+
+ def play(self, file):
+ self.aud.play(0, 1, file)
+
+ # ========= opus ====================
+
+ def open_opus(self):
+ self.pcm = audio.Audio.PCM(0, 1, 16000, 2, 1, 15) # 5 -> 25
+ self.opus = Opus(self.pcm, 0, 6000) # 6000 ~ 128000
+
+ def close_opus(self):
+ self.opus.close()
+ self.pcm.close()
+ del self.opus
+ del self.pcm
+
+ def opus_read(self):
+ return self.opus.read(60)
+
+ def opus_write(self, data):
+ return self.opus.write(data)
+
+ # ========= vad & kws ====================
+
+ def set_kws_cb(self, cb):
+ self.rec.ovkws_set_callback(cb)
+
+ def set_vad_cb(self, cb):
+ def wrapper(state):
+ if self.__skip != 2:
+ self.__skip += 1
+ return
+ return cb(state)
+ self.rec.vad_set_callback(wrapper)
+
+ def end_cb(self, para):
+ if(para[0] == "stream"):
+ if(para[2] == 1):
+ pass
+ elif (para[2] == 3):
+ pass
+ else:
+ pass
+ else:
+ pass
+
+ def start_kws(self):
+ self.rec.ovkws_start("_xiao_zhi_xiao_zhi", 0.7)
+
+ def stop_kws(self):
+ self.rec.ovkws_stop()
+
+ def start_vad(self):
+ self.__skip = 0
+ self.rec.vad_start()
+
+ def stop_vad(self):
+ self.rec.vad_stop()
+```
+
diff --git a/docs/Application_guide/zh/media/solutions/xiaozhi AI/1.png b/docs/Application_guide/zh/media/solutions/xiaozhi AI/1.png
new file mode 100644
index 0000000000000000000000000000000000000000..03c187961de3a8811c985ffcf02c4bab0c957e11
Binary files /dev/null and b/docs/Application_guide/zh/media/solutions/xiaozhi AI/1.png differ
diff --git a/docs/Application_guide/zh/media/solutions/xiaozhi AI/2.png b/docs/Application_guide/zh/media/solutions/xiaozhi AI/2.png
new file mode 100644
index 0000000000000000000000000000000000000000..c4251a617a4892d22682a32a25fc0eb013142274
Binary files /dev/null and b/docs/Application_guide/zh/media/solutions/xiaozhi AI/2.png differ
diff --git a/docs/Application_guide/zh/media/solutions/xiaozhi AI/3.png b/docs/Application_guide/zh/media/solutions/xiaozhi AI/3.png
new file mode 100644
index 0000000000000000000000000000000000000000..4748a696a9f1b6a9b1a8f3e475d614daa8f4f6fa
Binary files /dev/null and b/docs/Application_guide/zh/media/solutions/xiaozhi AI/3.png differ
diff --git a/docs/Application_guide/zh/media/solutions/xiaozhi AI/EC800MCNLER01A03M08_OCPU_QPY_TEST0707A.zip b/docs/Application_guide/zh/media/solutions/xiaozhi AI/EC800MCNLER01A03M08_OCPU_QPY_TEST0707A.zip
new file mode 100644
index 0000000000000000000000000000000000000000..cbf423fd0eef9100f2038e4abb0cad2f2a96462d
Binary files /dev/null and b/docs/Application_guide/zh/media/solutions/xiaozhi AI/EC800MCNLER01A03M08_OCPU_QPY_TEST0707A.zip differ
diff --git a/docs/Application_guide/zh/media/solutions/xiaozhi AI/EVB.jpg b/docs/Application_guide/zh/media/solutions/xiaozhi AI/EVB.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..27125501f2589d72f504d857197f2cdef093107e
Binary files /dev/null and b/docs/Application_guide/zh/media/solutions/xiaozhi AI/EVB.jpg differ
diff --git a/docs/Application_guide/zh/media/solutions/xiaozhi AI/connect.png b/docs/Application_guide/zh/media/solutions/xiaozhi AI/connect.png
new file mode 100644
index 0000000000000000000000000000000000000000..49e25f0dfb7923c81e2a8270c56160621a184fd4
Binary files /dev/null and b/docs/Application_guide/zh/media/solutions/xiaozhi AI/connect.png differ
diff --git a/docs/Application_guide/zh/media/solutions/xiaozhi AI/flow.png b/docs/Application_guide/zh/media/solutions/xiaozhi AI/flow.png
new file mode 100644
index 0000000000000000000000000000000000000000..f6c001091f907631b38633ce8b256fe1bc4cdb39
Binary files /dev/null and b/docs/Application_guide/zh/media/solutions/xiaozhi AI/flow.png differ
diff --git a/docs/Application_guide/zh/media/solutions/xiaozhi AI/software.png b/docs/Application_guide/zh/media/solutions/xiaozhi AI/software.png
new file mode 100644
index 0000000000000000000000000000000000000000..d2bef1b682f2f63d569fba41271f4aaa94bb8778
Binary files /dev/null and b/docs/Application_guide/zh/media/solutions/xiaozhi AI/software.png differ
diff --git a/docs/Application_guide/zh/sidebar.yaml b/docs/Application_guide/zh/sidebar.yaml
index 0f137aa6556511738fe84417b1b14974aee7b566..bd38518d2d926b96b15db52b9c871a6212377da0 100644
--- a/docs/Application_guide/zh/sidebar.yaml
+++ b/docs/Application_guide/zh/sidebar.yaml
@@ -274,6 +274,15 @@ items:
file: solutions/AIChatBot-Volcengine-webRTC/quick_start.md
- label: 软件设计讲解
file: solutions/AIChatBot-Volcengine-webRTC/software_design.md
+ - label: 小智 AI 聊天机器人
+ file: solutions/xiaozhi AI/README.md
+ items:
+ - label: 开发资源汇总
+ file: solutions/xiaozhi AI/dev_resources.md
+ - label: 快速上手
+ file: solutions/xiaozhi AI/quick_start.md
+ - label: 软件设计讲解
+ file: solutions/xiaozhi AI/software_design.md
- label: EP-D200 华系列 DTU
file: solutions/DTU/README.md
items:
@@ -333,7 +342,7 @@ items:
file: solutions/SensorHub/quick_start.md
- label: 软件设计讲解
file: solutions/SensorHub/software_design.md
- - label: DTU(基于EG912U核心板)
+ - label: DTU(基于EG912U核心板)
file: solutions/DTU-EG912U/README.md
items:
- label: 开发资源汇总
diff --git a/docs/Application_guide/zh/solutions/AIChatBot-Volcengine-webRTC/quick_start.md b/docs/Application_guide/zh/solutions/AIChatBot-Volcengine-webRTC/quick_start.md
index 393c27a05e8aab4b66d40f394498c632dbd2e92a..cd525369252156d6d58299390b56cbddae166c85 100644
--- a/docs/Application_guide/zh/solutions/AIChatBot-Volcengine-webRTC/quick_start.md
+++ b/docs/Application_guide/zh/solutions/AIChatBot-Volcengine-webRTC/quick_start.md
@@ -52,13 +52,13 @@
### 脚本导入与运行
-1. 参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/first_python.html#PC%E4%B8%8E%E6%A8%A1%E7%BB%84%E9%97%B4%E7%9A%84%E6%96%87%E4%BB%B6%E4%BC%A0%E8%BE%93),将源码目录下 `code` 文件夹中的所有文件导入到模组文件系统,如下图所示:
+1. 参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/4G/first_python.html),将源码目录下 `code` 文件夹中的所有文件导入到模组文件系统,如下图所示:
-2. 参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/first_python.html#%E6%89%A7%E8%A1%8C%E8%84%9A%E6%9C%AC%E6%96%87%E4%BB%B6),执行主程序文件 `ai_main.py`。
-3. 参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/first_python.html#%E5%81%9C%E6%AD%A2%E7%A8%8B%E5%BA%8F%E8%BF%90%E8%A1%8C),停止程序运行。
+2. 参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/4G/first_python.html#执行脚本文件),执行主程序文件 `ai_main.py`。
+3. 参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/4G/first_python.html#停止程序运行),停止程序运行。
## 业务调试
diff --git a/docs/Application_guide/zh/solutions/Agriculture-Control-Panel/dev_resources.md b/docs/Application_guide/zh/solutions/Agriculture-Control-Panel/dev_resources.md
index 4d8210ae6e49be020a3b5cb017eac4c3ccd358fc..4e2a259da4d711999743e24a60fab4d066660f7f 100644
--- a/docs/Application_guide/zh/solutions/Agriculture-Control-Panel/dev_resources.md
+++ b/docs/Application_guide/zh/solutions/Agriculture-Control-Panel/dev_resources.md
@@ -4,7 +4,7 @@
## 开发板资料
-- 型号:[QuecPython 铀-235 开发板](https://developer.quectel.com/doc/quecpython/Getting_started/zh/evb/ec600u-235.html)
+- 型号:[QuecPython 铀-235 开发板](https://developer.quectel.com/doc/quecpython/Dev_board_guide/zh/ec600u-235.html)
- [购买链接](https://detail.tmall.com/item.htm?abbucket=8&id=676710608367&pisk=gUaZxiwjTNQwcl4NnX02YOhqIW3trVX7IrMjiSVm1ADMfl_Do-wBGmM1Dkl0d-ujlSXT3rk3Ml1tcOd4YRFof-PA6jD0n-kbfM_7653xoT_VPaN9kRvQOR8DjpfmwfxcOc0MonwjoT65uHOnXOg0CuF6pHxnwvciifmcTXcsaqciiFfEKjl-nF2mo65EwjJDof0mtDcosqxDSjvn-jhSnKDiipfEMvDmoqckF5VD8biGgYh9Msd9nqMusv8DzQhZjCN6cE8qcfmaoWDEOXaE_ckovdBTpP2QiPatvMxEkWZz3o2ldhMg4byEVlWy78ytiSl0QadrKPP48cEBwEVE0Ar3SDRDo20I30q4QO-tIlwE2XmHgahQFvVTSk5vK52SQVcnAafztmqQW0U1KFuu25g_m8XBfAqrigkyHXVm9rEwnnoi9Xk5T6rc31Ew7XN5nnKxx4hEF1G6Dnni9Xk5T6-vDDDKTY1s1&rn=42a4e96745c13cd9400765e39c24c67e&spm=a1z10.3-b-s.w4011-23773493585.71.221c5886KuaZIg&skuId=4865603973616)
@@ -19,7 +19,7 @@
## 模组资料
-- 型号:[EC600UCN_LB](https://python.quectel.com/modules-cat/ec600u-series)
+- 型号:[EC600UCN_LB](https://developer.quectel.com/doc/quecpython/Dev_board_guide/zh/ec600u-235.html)
- [规格书](https://python.quectel.com/wp-content/uploads/2024/09/Quectel_EC600U%E7%B3%BB%E5%88%97_LTE_Standard_%E6%A8%A1%E5%9D%97%E4%BA%A7%E5%93%81%E8%A7%84%E6%A0%BC%E4%B9%A6_V1.5.pdf)
- [驱动下载](https://python.quectel.com/wp-content/uploads/2024/09/Quectel_Windows_USB_DriverU_V1.0.19.zip)
diff --git a/docs/Application_guide/zh/solutions/Agriculture-Control-Panel/quick_start.md b/docs/Application_guide/zh/solutions/Agriculture-Control-Panel/quick_start.md
index 71a3063dbee398eba466dcbcb1bee9b5d448f193..0542cde095284edcaa3fd0bd8b4dc52c83a4073b 100644
--- a/docs/Application_guide/zh/solutions/Agriculture-Control-Panel/quick_start.md
+++ b/docs/Application_guide/zh/solutions/Agriculture-Control-Panel/quick_start.md
@@ -6,7 +6,7 @@
- Windows 电脑一台,建议 `Win10` 系统。
-- 一块 [QuecPython U-235 开发板](https://developer.quectel.com/doc/quecpython/Getting_started/zh/evb/ec600u-235.html)
+- 一块 [QuecPython U-235 开发板](https://developer.quectel.com/doc/quecpython/Dev_board_guide/zh/ec600u-235.html)
- 一根TypeC数据线
@@ -59,9 +59,9 @@
·
-2. 参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/first_python.html#执行脚本文件),执行主程序文件`main.py`。(正常开机时,模组会自动执行`main.py`文件)
+2. 参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/4G/first_python.html),执行主程序文件`main.py`。(正常开机时,模组会自动执行`main.py`文件)
-3. 参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/first_python.html#停止程序运行),停止程序运行。
+3. 参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/4G/first_python.html#停止程序运行),停止程序运行。
diff --git a/docs/Application_guide/zh/solutions/DTU-EG912U/dev_resources.md b/docs/Application_guide/zh/solutions/DTU-EG912U/dev_resources.md
index f2821e2622c6a99072781fce04e78243d7f2dbbe..58421c43743172f0db01a481160a72a94fad6325 100644
--- a/docs/Application_guide/zh/solutions/DTU-EG912U/dev_resources.md
+++ b/docs/Application_guide/zh/solutions/DTU-EG912U/dev_resources.md
@@ -4,7 +4,7 @@
## 开发板和模组型号的介绍
-型号:[EG912U 核心板](https://developer.quectel.com/doc/quecpython/Getting_started/zh/evb/bg-eg-core-evb.html)
+型号:[EG912U 核心板](https://developer.quectel.com/doc/quecpython/Dev_board_guide/zh/bg-eg-core-evb.html)
- 开发板文档: [EG912U core board product specifications and user guide](https://python.quectel.com/wp-content/uploads/2024/11/EG912U%E6%A0%B8%E5%BF%83%E6%9D%BF%E4%BA%A7%E5%93%81%E8%A7%84%E6%A0%BC%E5%8F%8A%E7%94%A8%E6%88%B7%E6%8C%87%E5%AF%BC.pdf)
diff --git a/docs/Application_guide/zh/solutions/DTU-EG912U/quick_start.md b/docs/Application_guide/zh/solutions/DTU-EG912U/quick_start.md
index 95e3f292b6863837465defce552fcf71510d9ee9..44f1c0a54ae995eac5ef985aef43509da1fcff87 100644
--- a/docs/Application_guide/zh/solutions/DTU-EG912U/quick_start.md
+++ b/docs/Application_guide/zh/solutions/DTU-EG912U/quick_start.md
@@ -3,7 +3,7 @@
## 硬件准备
- 一台windows电脑,推荐使用win10系统
-- 一套 [EG912U Core Board](https://developer.quectel.com/doc/quecpython/Getting_started/zh/evb/bg-eg-core-evb.html) 开发板
+- 一套 [EG912U Core Board](https://developer.quectel.com/doc/quecpython/Dev_board_guide/zh/bg-eg-core-evb.html) 开发板
- 一张 Nano sim 卡
- 一根 天线
- 一根 Mini USB 数据线
diff --git a/docs/Application_guide/zh/solutions/DTU/dev_resources.md b/docs/Application_guide/zh/solutions/DTU/dev_resources.md
index c0251825f899d1518aa786a28b551621d5251cce..ba857c0d70ddabbb544519f795748197d05c25fb 100644
--- a/docs/Application_guide/zh/solutions/DTU/dev_resources.md
+++ b/docs/Application_guide/zh/solutions/DTU/dev_resources.md
@@ -4,7 +4,7 @@
## 开发板资料
-- 型号:[EC800GCN 华系列 DTU 开发板](https://developer.quectel.com/doc/quecpython/Getting_started/zh/evb/ec800g_hua_dtu.html)
+- 型号:[EC800GCN 华系列 DTU 开发板](https://developer.quectel.com/doc/quecpython/Dev_board_guide/zh/ec800g_hua_dtu.html)
- 购买链接:[点此跳转](https://www.quecmall.com/goods-detail/2c9080168ef07110018f1853d4050002)
- 开发板文档:
- [EC800G_华-DTU系列开发板产品规格及用户指导](https://python.quectel.com/wp-content/uploads/2024/09/EC800G_华-DTU系列开发板产品规格及用户指导.pdf)
diff --git a/docs/Application_guide/zh/solutions/DTU/quick_start.md b/docs/Application_guide/zh/solutions/DTU/quick_start.md
index 74fa6edaa73a414fdaedc3a082288b06a4d8ad50..fda095a10836559b5bf59590a9c08486c1a2bd1d 100644
--- a/docs/Application_guide/zh/solutions/DTU/quick_start.md
+++ b/docs/Application_guide/zh/solutions/DTU/quick_start.md
@@ -3,7 +3,7 @@
## 硬件准备
- Windows 电脑一台,建议 Win10 系统。
-- 一套 [EC800GCN 华系列 DTU 开发板](https://developer.quectel.com/doc/quecpython/Getting_started/en/evb/ec2x-evb.html)。
+- 一套 [EC800GCN 华系列 DTU 开发板](https://developer.quectel.com/doc/quecpython/Dev_board_guide/zh/ec800g_hua_dtu.html)。
- 一张可用的 Nano Sim 卡。
- 一根胶棒天线。
- 一根 Mini USB 数据线。
diff --git a/docs/Application_guide/zh/solutions/SensorHub/dev_resources.md b/docs/Application_guide/zh/solutions/SensorHub/dev_resources.md
index 56c915ef608dcd720ebee1b179a1b06d0db96464..a04230c37b1cf653e6b6810438fdb7769b7d0811 100644
--- a/docs/Application_guide/zh/solutions/SensorHub/dev_resources.md
+++ b/docs/Application_guide/zh/solutions/SensorHub/dev_resources.md
@@ -2,7 +2,7 @@
## 开发板资料
-- 型号:[EC200U-EU Quecpython 标准开发板](https://developer.quectel.com/doc/quecpython/Getting_started/zh/evb/ec200x-evb.html)
+- 型号:[EC200U-EU Quecpython 标准开发板](https://developer.quectel.com/doc/quecpython/Dev_board_guide/zh/ec200x-evb.html)
- 购买链接:[点击跳转](https://www.waveshare.com/ec200u-au-c4-p01.htm)
**·** 开发板文档
@@ -33,7 +33,7 @@
版本:8915DM_cat1_open_EC200UEUAAR05A01M08_TEST0222_merge
-下载[固件](../../solutions/SensorHub/EC200UEUAAR05A01M08_TEST0222.zip )
+下载[固件](https://developer.quectel.com/wp-content/uploads/2024/09/QPY_OCPU_BETA0001_EC200U_EUAA_FW.zip )
## 实验源码
diff --git a/docs/Application_guide/zh/solutions/SensorHub/quick_start.md b/docs/Application_guide/zh/solutions/SensorHub/quick_start.md
index 4467fc1913ea37ece47ede094caef5d205824216..50d9a12513c67b46917662739854153ecf294f26 100644
--- a/docs/Application_guide/zh/solutions/SensorHub/quick_start.md
+++ b/docs/Application_guide/zh/solutions/SensorHub/quick_start.md
@@ -4,7 +4,7 @@
Windows电脑一台,建议 `Win10` 系统。
-一套[EC200U-EU Quecpython 标准开发板](https://developer.quectel.com/doc/quecpython/Getting_started/zh/evb/ec200x-evb.html)(含天线,Type-C数据线)
+一套[EC200U-EU Quecpython 标准开发板](https://developer.quectel.com/doc/quecpython/Dev_board_guide/zh/ec200x-evb.html)(含天线,Type-C数据线)
一张能够正常使用的SIM卡
@@ -15,7 +15,7 @@ Windows电脑一台,建议 `Win10` 系统。
- 下载并安装 [VSCode](https://code.visualstudio.com/)。
- 下载并解压 [QPYCom](https://images.quectel.com/python/2022/12/QPYcom_V3.6.0.zip) 工具到电脑的合适位置。
-- 下载[固件包](../../solutions/SensorHub/EC200UEUAAR05A01M08_TEST0222.zip )。
+- 下载[固件包](https://developer.quectel.com/wp-content/uploads/2024/09/QPY_OCPU_BETA0001_EC200U_EUAA_FW.zip )。
- 下载[实验源码](https://gitee.com/dustin-wei/solution-sensorhub)
## 硬件连接
@@ -46,17 +46,17 @@ Windows电脑一台,建议 `Win10` 系统。
- ### 烧录固件包
-参考[此章节](https://developer.quectel.com/doc/quecpython/Application_guide/zh/dev-tools/QPYcom/qpycom-dw.html#下载固件),烧录[固件包](../../solutions/Sensorhub/EC200UEUAAR05A01M08_TEST0222.zip )至开发板。
+参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/4G/flash_firmware.html),烧录[固件包](https://developer.quectel.com/wp-content/uploads/2024/09/QPY_OCPU_BETA0001_EC200U_EUAA_FW.zip )至开发板。
- ### 脚本导入与运行
-1.参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/first_python.html#PC与模组间的文件传输),将源码目录下的code文件夹中的所有文件按原目录结构导入到模组文件系统中,如下图所示
+1.参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/4G/first_python.html#PC与模组间的文件传输),将源码目录下的code文件夹中的所有文件按原目录结构导入到模组文件系统中,如下图所示
-2.参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/first_python.html#执行脚本文件),执行主程序文件_main.py
+2.参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/4G/first_python.html#执行脚本文件),执行主程序文件_main.py
-3.参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/first_python.html#停止程序运行),停止程序运行。
+3.参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/4G/first_python.html#停止程序运行),停止程序运行。
## 业务调试
diff --git a/docs/Application_guide/zh/solutions/Wear/quick_start.md b/docs/Application_guide/zh/solutions/Wear/quick_start.md
index f9a77a3bbc67a5428e100bf5c94876e033d712be..761077aaad91432383f05fbb5f6d6cd1454846b1 100644
--- a/docs/Application_guide/zh/solutions/Wear/quick_start.md
+++ b/docs/Application_guide/zh/solutions/Wear/quick_start.md
@@ -25,7 +25,7 @@
按照下图进行硬件连接:
-
+
@@ -54,13 +54,13 @@
### 脚本导入与运行
-1. 参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/first_python.html#PC与模组间的文件传输),将源码目录下 `code`文件夹中的所有以`.py`结尾文件导入到模组文件系统,如下图所示:
+1. 参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/4G/first_python.html#PC与模组间的文件传输),将源码目录下 `code`文件夹中的所有以`.py`结尾文件导入到模组文件系统,如下图所示:
-2. 参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/first_python.html#执行脚本文件),执行主程序文件`main_t.py
+2. 参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/4G/first_python.html#执行脚本文件),执行主程序文件`main_t.py
-3. 参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/first_python.html#停止程序运行),停止程序运行
+3. 参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/4G/first_python.html#停止程序运行),停止程序运行
diff --git a/docs/Application_guide/zh/solutions/electricity-meter/README.md b/docs/Application_guide/zh/solutions/electricity-meter/README.md
index 026e9a1db6ddd973e4a3d67d042174e73afb006a..97aac0cf5077858ef771b7afd74f0b2980581ab9 100644
--- a/docs/Application_guide/zh/solutions/electricity-meter/README.md
+++ b/docs/Application_guide/zh/solutions/electricity-meter/README.md
@@ -2,7 +2,7 @@
-智能电表解决方案基于 [QuecPython_EG91X系列C1-P02开发板](https://developer.quectel.com/doc/quecpython/Getting_started/zh/evb/eg91x-evb.html)实现,具有以下特性:
+智能电表解决方案基于 [QuecPython_EG91X系列C1-P02开发板](https://developer.quectel.com/doc/quecpython/Dev_board_guide/zh/eg91x-evb.html)实现,具有以下特性:
- 包含了串口通信模块、TCP 客户端、RFC1662 协议、DLMS 协议(开发中)等电表行业常用功能组件
- 拥有基础的应用框架,用户可基于该框架完善应用程序开发
diff --git a/docs/Application_guide/zh/solutions/electricity-meter/dev_resources.md b/docs/Application_guide/zh/solutions/electricity-meter/dev_resources.md
index 50ce457820076a5fbd133dfa2bf56313dd5d1445..c9c27ae23dfe940a32423f1ec8c5afcc10c6274e 100644
--- a/docs/Application_guide/zh/solutions/electricity-meter/dev_resources.md
+++ b/docs/Application_guide/zh/solutions/electricity-meter/dev_resources.md
@@ -4,7 +4,7 @@
## 开发板资料
-- 型号:[QuecPython_EG91X系列C1-P02开发板](https://developer.quectel.com/doc/quecpython/Getting_started/zh/evb/eg91x-evb.html)
+- 型号:[QuecPython_EG91X系列C1-P02开发板](https://developer.quectel.com/doc/quecpython/Dev_board_guide/zh/eg91x-evb.html)
- 开发板文档
- [规格书](https://python.quectel.com/wp-content/uploads/2024/09/EG91X_C1-P02%E7%B3%BB%E5%88%97%E5%BC%80%E5%8F%91%E6%9D%BF%E4%BA%A7%E5%93%81%E8%A7%84%E6%A0%BC%E5%8F%8A%E7%94%A8%E6%88%B7%E6%8C%87%E5%AF%BC.pdf)
@@ -16,7 +16,7 @@
## 模组资料
-- 型号:[EG912UGL_AA](https://python.quectel.com/modules-cat/eg912u-series)
+- 型号:[EG912UGL_AA](https://developer.quectel.com/modules-cat/eg915u-series)
- [规格书](https://python.quectel.com/wp-content/uploads/2024/09/Quectel_EG912U-GL_LTE_Standard_%E6%A8%A1%E5%9D%97%E4%BA%A7%E5%93%81%E8%A7%84%E6%A0%BC%E4%B9%A6_V1.2.pdf)
- [驱动下载](https://python.quectel.com/wp-content/uploads/2024/09/Quectel_Windows_USB_DriverU_V1.0.19.zip)
diff --git a/docs/Application_guide/zh/solutions/electricity-meter/quick_start.md b/docs/Application_guide/zh/solutions/electricity-meter/quick_start.md
index f3065d7ba9b8211fa2b0bf7deb89bd71159aeed3..f9241df69c02f561aab8306f2bb5437324764385 100644
--- a/docs/Application_guide/zh/solutions/electricity-meter/quick_start.md
+++ b/docs/Application_guide/zh/solutions/electricity-meter/quick_start.md
@@ -7,7 +7,7 @@
- Windows 电脑一台,建议 `Win10` 系统。
- 一根TypeC数据线
- 一张SIM卡
-- 一块[QuecPython_EG91X系列C1-P02开发板](https://developer.quectel.com/doc/quecpython/Getting_started/zh/evb/eg91x-evb.html)
+- 一块[QuecPython_EG91X系列C1-P02开发板](https://developer.quectel.com/doc/quecpython/Dev_board_guide/zh/eg91x-evb.html)
- 一个CP2102模块
- 一根天线
@@ -62,13 +62,13 @@
-2. 参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/first_python.html#PC与模组间的文件传输),将源码目录下 `code`文件夹中的所有文件导入到模组文件系统,如下图所示:
+2. 参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/4G/first_python.html#PC与模组间的文件传输),将源码目录下 `code`文件夹中的所有文件导入到模组文件系统,如下图所示:
-3. 参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/first_python.html#执行脚本文件),执行主程序文件`demo.py`
+3. 参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/4G/first_python.html#执行脚本文件),执行主程序文件`demo.py`
-4. 参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/first_python.html#停止程序运行),停止程序运行
+4. 参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/4G/first_python.html#停止程序运行),停止程序运行
diff --git a/docs/Application_guide/zh/solutions/poc/dev_resources.md b/docs/Application_guide/zh/solutions/poc/dev_resources.md
index cf19abc4e442c73c55052911cfe0786b9eb55d9f..a0030b17517dbf7d91e994b0078d9ea3a9998ef7 100644
--- a/docs/Application_guide/zh/solutions/poc/dev_resources.md
+++ b/docs/Application_guide/zh/solutions/poc/dev_resources.md
@@ -2,7 +2,7 @@
## 开发板资料
-- 型号:[EC600MCNLE QuecPython 标准开发板](https://developer.quectel.com/doc/quecpython/Getting_started/zh/evb/ec600x-evb.html)
+- 型号:[EC600MCNLE QuecPython 标准开发板](https://developer.quectel.com/doc/quecpython/Dev_board_guide/zh/ec600x-evb.html)
- 购买链接:[点此跳转](http://e.tb.cn/h.gAlSKya8NvMC9UY?tk=7APD3KXufyq)
- 开发板文档
- [规格书](https://python.quectel.com/wp-content/uploads/2024/10/EC600X系列开发板产品规格及用户指导.pdf)
diff --git a/docs/Application_guide/zh/solutions/poc/quick_start.md b/docs/Application_guide/zh/solutions/poc/quick_start.md
index eecf884441449def590d1366ffc4e78a1c01b879..082d61c716e7b51893146d24eea28543e1b5a4fc 100644
--- a/docs/Application_guide/zh/solutions/poc/quick_start.md
+++ b/docs/Application_guide/zh/solutions/poc/quick_start.md
@@ -3,7 +3,7 @@
## 硬件准备
- Windows 电脑一台,建议 `Win10` 系统。
-- 两套 [EC600MCNLE QuecPython 标准开发板](https://developer.quectel.com/doc/quecpython/Getting_started/zh/evb/ec600x-evb.html) (每一套均含天线、Type-C 数据线等)。
+- 两套 [EC600MCNLE QuecPython 标准开发板](https://developer.quectel.com/doc/quecpython/Dev_board_guide/zh/ec600x-evb.html) (每一套均含天线、Type-C 数据线等)。
> 💡 **Tips**
> 一套用于主叫设备演示,一套用于被叫设备演示。
@@ -56,16 +56,16 @@
### 烧录固件包
-参考[此章节](https://developer.quectel.com/doc/quecpython/Application_guide/zh/dev-tools/QPYcom/qpycom-dw.html#%E4%B8%8B%E8%BD%BD%E5%9B%BA%E4%BB%B6),烧录固件包 [EC600MCNLER06A01M08_POC_XBND_OCPU_QPY_BETA0117.zip](https://github.com/QuecPython/solution-POC/releases/download/v2.0.1/EC600MCNLER06A01M08_POC_XBND_OCPU_QPY_BETA0117.zip) 至开发板。
+参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/4G/flash_firmware.html),烧录固件包 [EC600MCNLER06A01M08_POC_XBND_OCPU_QPY_BETA0117.zip](https://github.com/QuecPython/solution-POC/releases/download/v2.0.1/EC600MCNLER06A01M08_POC_XBND_OCPU_QPY_BETA0117.zip) 至开发板。
### 脚本导入与运行
-1. 参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/first_python.html#PC%E4%B8%8E%E6%A8%A1%E7%BB%84%E9%97%B4%E7%9A%84%E6%96%87%E4%BB%B6%E4%BC%A0%E8%BE%93),将源码目录下 `code` 文件夹中的所有文件导入到模组文件系统,如下图所示:
+1. 参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/4G/first_python.html#PC与模组间的文件传输),将源码目录下 `code` 文件夹中的所有文件导入到模组文件系统,如下图所示:
-2. 参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/first_python.html#%E6%89%A7%E8%A1%8C%E8%84%9A%E6%9C%AC%E6%96%87%E4%BB%B6),执行主程序文件 `poc_main.py`。
-3. 参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/first_python.html#%E5%81%9C%E6%AD%A2%E7%A8%8B%E5%BA%8F%E8%BF%90%E8%A1%8C),停止程序运行。
+2. 参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/4G/first_python.html#执行脚本文件),执行主程序文件 `poc_main.py`。
+3. 参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/4G/first_python.html#停止程序运行),停止程序运行。
## 业务调试
diff --git a/docs/Application_guide/zh/solutions/tracker/dev_resources.md b/docs/Application_guide/zh/solutions/tracker/dev_resources.md
index f52cc0acbb264e49836835aa4980462caf866a48..a915f925da4c0194c220d518f086bc87d9a474b7 100644
--- a/docs/Application_guide/zh/solutions/tracker/dev_resources.md
+++ b/docs/Application_guide/zh/solutions/tracker/dev_resources.md
@@ -2,7 +2,7 @@
## 开发板资料
-- 型号:EC200UEUAA QuecPython 标准开发板
+- 型号:[EC200UEUAA QuecPython 标准开发板](https://developer.quectel.com/doc/quecpython/Dev_board_guide/zh/ec200x-evb.html)
- 购买:[点此跳转](https://www.waveshare.com/ec200u-au-c4-p01.htm)
- 开发板文档
- [规格书](https://python.quectel.com/wp-content/uploads/2024/09/EC200UA_C4-P01%E7%B3%BB%E5%88%97%E5%BC%80%E5%8F%91%E6%9D%BF%E4%BA%A7%E5%93%81%E8%A7%84%E6%A0%BC%E5%8F%8A%E7%94%A8%E6%88%B7%E6%8C%87%E5%AF%BC.pdf)
diff --git a/docs/Application_guide/zh/solutions/tracker/quick_start.md b/docs/Application_guide/zh/solutions/tracker/quick_start.md
index c585bb4efe4d464dc851d2654a5e8c525f75352d..92f4bd0aa141fdad958072bfe76bbcd45cee1e35 100644
--- a/docs/Application_guide/zh/solutions/tracker/quick_start.md
+++ b/docs/Application_guide/zh/solutions/tracker/quick_start.md
@@ -3,7 +3,7 @@
## 硬件准备
- Windows 电脑一台,建议 `Win10` 系统
-- 一套 [EC200UEUAA QuecPython 标准开发板](https://developer.quectel.com/doc/quecpython/Getting_started/zh/evb/ec200x-evb.html)(含 LTE 天线、 Type-C 数据线等)
+- 一套 [EC200UEUAA QuecPython 标准开发板](https://developer.quectel.com/doc/quecpython/Dev_board_guide/zh/ec200x-evb.html)(含 LTE 天线、 Type-C 数据线等)
- 一根 [GNSS天线](https://e.tb.cn/h.TpAFyEz02BnCHRD?tk=fznae6ITVEX)
- 一个排针跳线帽
- 一张可正常使用的 Nano SIM 卡
@@ -193,8 +193,8 @@ ota_status = {

-2. 参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/first_python.html#执行脚本文件),执行主程序文件 `_main.py`。
-3. 参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/first_python.html#停止程序运行),停止程序运行。
+2. 参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/4G/first_python.html#执行脚本文件),执行主程序文件 `_main.py`。
+3. 参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/4G/first_python.html#停止程序运行),停止程序运行。
## 业务调试
diff --git a/docs/Application_guide/zh/solutions/xiaozhi AI/README.md b/docs/Application_guide/zh/solutions/xiaozhi AI/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..45ba62e06eb184553ac9c36dee128fe619eb587e
--- /dev/null
+++ b/docs/Application_guide/zh/solutions/xiaozhi AI/README.md
@@ -0,0 +1,22 @@
+# 小智 AI 聊天机器人
+
+该小智 AI 聊天机器人方案具有以下特性:
+
+- 支持音色切换。
+- 支持语音中断/打断。
+- 支持语音唤醒。
+- 使用 Python 语言,便于二次开发。
+
+
+
+
+
+
+
+
+
+---
+
+- [开发资源汇总](./dev_resources.md)
+- [快速上手](./quick_start.md)
+- [软件设计讲解](./software_design.md)
diff --git a/docs/Application_guide/zh/solutions/xiaozhi AI/dev_resources.md b/docs/Application_guide/zh/solutions/xiaozhi AI/dev_resources.md
new file mode 100644
index 0000000000000000000000000000000000000000..4c6f8033ff49763e524f6c8e012da9810d8f13b9
--- /dev/null
+++ b/docs/Application_guide/zh/solutions/xiaozhi AI/dev_resources.md
@@ -0,0 +1,35 @@
+# 开发资源汇总
+
+## 硬件资料
+
+ - EC800MCNLE 开发板(含天线、Type-C 数据线等)
+
+ > - [点此购买开发板套件](https://www.quecmall.com/goods-detail/2c90800b8cb50925018e5a696d0104f7)
+
+ - 电脑(Windows 7、Windows 10 或 Windows 11)
+
+ - 任意 2-5W 功率的喇叭即可 ([移远商城购买链接](https://www.quecmall.com/goods-detail/2c90800c9488358b01956aa656680239))
+
+ - 一块电池
+
+## 软件资料
+
+ - QuecPython 模块的 USB 驱动:[QuecPython_USB_Driver_Win10_ASR](https://developer.quectel.com/wp-content/uploads/2024/09/Quectel_Windows_USB_DriverA_Customer_V1.1.13.zip)
+ - QuecPython 固件
+ - [EC800MCNLE](../../media/solutions/xiaozhi AI/EC800MCNLER01A03M08_OCPU_QPY_TEST0707A.zip)
+
+## 开发工具
+
+- QPYcom - QuecPython 调试工具
+ - 版本:V3.6.0
+ - 下载 [QPYcom](https://python.quectel.com/wp-content/uploads/2024/09/QPYcom_V3.6.0.zip)
+- VSCode - 代码编辑器
+ - 下载 [VSCode](https://code.visualstudio.com/)
+
+## 实验源码
+
+- 从 Github 仓库获取源代码步骤如下:
+ ```bash
+ git clone https://github.com/aaronchenzhihe/solution-xiaozhiAI.git
+ ```
+- [压缩包下载](https://github.com/QuecPython/solution-xiaozhiAI/archive/refs/heads/master.zip)
\ No newline at end of file
diff --git a/docs/Application_guide/zh/solutions/xiaozhi AI/quick_start.md b/docs/Application_guide/zh/solutions/xiaozhi AI/quick_start.md
new file mode 100644
index 0000000000000000000000000000000000000000..4d3cded917b81b88eca865b887b9e01943180918
--- /dev/null
+++ b/docs/Application_guide/zh/solutions/xiaozhi AI/quick_start.md
@@ -0,0 +1,75 @@
+# 快速上手
+
+## 硬件准备
+
+- Windows 电脑一台,建议 `Win10` 系统。
+- 一套 [EC800MCNLE 开发板](https://www.quecmall.com/goods-detail/2c90800c94028da20194824724370127) (含天线、Type-C 数据线等)。
+
+- 一张可正常使用的 Nano SIM 卡。
+- 一个 2-5W 功率的喇叭。
+
+## 环境搭建
+
+- 下载并安装 EC800M 系列模组驱动:[QuecPython_USB_Driver_Win10_ASR](https://developer.quectel.com/wp-content/uploads/2024/09/Quectel_Windows_USB_DriverA_Customer_V1.1.13.zip)。
+- 下载并安装 [VSCode](https://code.visualstudio.com/)。
+- 下载并解压 [QPYCom](https://images.quectel.com/python/2022/12/QPYcom_V3.6.0.zip) 工具到电脑的合适位置。
+- 下载固件包。
+ - [EC800MCNLE](../../media/solutions/xiaozhi AI/EC800MCNLER01A03M08_OCPU_QPY_TEST0707A.zip)
+- 下载[实验源码](https://github.com/QuecPython/solution-xiaozhiAI/archive/refs/heads/master.zip)。
+
+
+## 硬件连接
+
+按照下图进行硬件连接:
+
+
+
+
+1. 将`WiFi`天线连接至图中标识有`WiFi`字样的天线连接座上。
+2. 将天线连接至标识有`LTE`字样的天线连接座上。
+3. 在图示位置插入可用的 `Nano SIM` 卡。
+4. 将喇叭连接至图中标识有`SPK+`和`SPK-`的排针上。
+5. 在图示的位置接入电池。
+6. 使用 Type-C 数据线连接开发板和电脑。
+
+## 设备开发
+
+### 开机
+
+完成硬件连接的工作后,电脑设备管理器的端口列表中出现包含 `Quectel USB` 字样的 COM 口,表示开机成功。
+
+
+
+### 烧录固件包
+
+参考[此章节](https://developer.quectel.com/doc/quecpython/Application_guide/zh/dev-tools/QPYcom/qpycom-dw.html#%E4%B8%8B%E8%BD%BD%E5%9B%BA%E4%BB%B6),烧录对应型号固件包至开发板。
+
+### 脚本导入与运行
+
+1. 参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/4G/first_python.html),将源码目录下 `code` 文件夹中的所有文件导入到模组文件系统,如下图所示:
+
+
+参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/4G/first_python.html#执行脚本文件),执行主程序文件 `_main.py`。
+
+3. 参考[此章节](https://developer.quectel.com/doc/quecpython/Getting_started/zh/4G/first_python.html#停止程序运行),停止程序运行。
+
+## 业务调试
+
+### 程序启动
+
+执行 `_main.py` 脚本后,程序开始运行。
+
+### 激活小智
+
+下图所示状态为待唤醒状态,开发板会出现红灯闪烁,需要语音“小智,小智”来唤醒小智AI进行语音对话。
+
+
+
+唤醒后会出现连接服务器相关的数据或者是连接失败的提示,当出现连接失败时,请检查网络是否正常。
+
+
+
+当系统长时间未进行对话或未接收到命令时会自动进入休眠状态,等待下次唤醒。
+
+
+
diff --git a/docs/Application_guide/zh/solutions/xiaozhi AI/software_design.md b/docs/Application_guide/zh/solutions/xiaozhi AI/software_design.md
new file mode 100644
index 0000000000000000000000000000000000000000..61243b05635ce8e1c2525906bc65d0c3c2bbef9f
--- /dev/null
+++ b/docs/Application_guide/zh/solutions/xiaozhi AI/software_design.md
@@ -0,0 +1,209 @@
+# 软件设计讲解
+
+## 软件框架
+
+### 框架设计图
+
+
+
+### 业务系统启动流程
+
+
+
+## 代码讲解
+
+### AI 唤醒&人声检测
+
+```python
+class Application(object):
+ def on_keyword_spotting(self, state):
+ logger.info("on_keyword_spotting: {}".format(state))
+ if state == 0:
+ # 唤醒词触发
+ if self.__working_thread is not None and self.__working_thread.is_running():
+ return
+ self.__working_thread = Thread(target=self.__working_thread_handler)
+ self.__working_thread.start()
+ self.__keyword_spotting_event.clear()
+ else:
+ self.__keyword_spotting_event.set()
+
+ def on_voice_activity_detection(self, state):
+ gc.collect()
+ logger.info("on_voice_activity_detection: {}".format(state))
+ if state == 1:
+ self.__voice_activity_event.set() # 有人声
+ else:
+ self.__voice_activity_event.clear() # 无人声
+```
+
+### AI 初始化
+
+初始化 AI 对象以及其他硬件驱动。
+
+```python
+class Application(object):
+
+ def __init__(self):
+ # 初始化唤醒按键
+ self.talk_key = ExtInt(ExtInt.GPIO19, ExtInt.IRQ_RISING_FALLING, ExtInt.PULL_PU, self.on_talk_key_click, 50)
+
+ # 初始化 led; write(1) 灭; write(0) 亮
+ self.wifi_red_led = Led(33)
+ self.wifi_green_led = Led(32)
+ self.power_red_led = Led(39)
+ self.power_green_led = Led(38)
+ self.lte_red_led = Led(23)
+ self.lte_green_led = Led(24)
+ self.led_power_pin = Pin(Pin.GPIO27, Pin.OUT, Pin.PULL_DISABLE, 0)
+
+ # 初始化充电管理
+ self.charge_manager = ChargeManager()
+
+ # 初始化音频管理
+ self.audio_manager = AudioManager()
+ self.audio_manager.set_kws_cb(self.on_keyword_spotting)
+ self.audio_manager.set_vad_cb(self.on_voice_activity_detection)
+
+ # 初始化网络管理
+ self.net_manager = NetManager()
+
+ # 初始化任务调度器
+ self.task_manager = TaskManager()
+
+ # 初始化协议
+ self.__protocol = WebSocketClient()
+ self.__protocol.set_callback(
+ audio_message_handler=self.on_audio_message,
+ json_message_handler=self.on_json_message
+ )
+
+ self.__working_thread = None
+ self.__record_thread = None
+ self.__record_thread_stop_event = Event()
+ self.__voice_activity_event = Event()
+ self.__keyword_spotting_event = Event()
+```
+
+### AI 对话中断逻辑
+
+```python
+class Application(object):
+ def __chat_process(self):
+ self.start_vad()
+ try:
+ with self.__protocol:
+ self.power_red_led.on()
+ self.__protocol.hello()
+ self.__protocol.wakeword_detected("小智")
+ is_listen_flag = False
+ while True:
+ data = self.audio_manager.opus_read()
+ if self.__voice_activity_event.is_set():
+ # 有人声
+ if not is_listen_flag:
+ self.__protocol.listen("start")
+ is_listen_flag = True
+ self.__protocol.send(data)
+ # logger.debug("send opus data to server")
+ else:
+ if is_listen_flag:
+ self.__protocol.listen("stop")
+ is_listen_flag = False
+ if not self.__protocol.is_state_ok():
+ break
+ # logger.debug("read opus data length: {}".format(len(data)))
+ except Exception as e:
+ logger.debug("working thread handler got Exception: {}".format(repr(e)))
+ finally:
+ self.power_red_led.blink(250, 250)
+ self.stop_vad()
+
+```
+
+### 音频管理
+
+统一管理设备的音频输入输出、编解码、语音识别相关功能(关键词识别 KWS 和语音活动检测 VAD),并提供回调接口供上层应用使用。
+
+```python
+class AudioManager(object):
+
+ def __init__(self, channel=0, volume=11, pa_number=29):
+ self.aud = audio.Audio(channel) # 初始化音频播放通道
+ self.aud.set_pa(pa_number)
+ self.aud.setVolume(volume) # 设置音量
+ self.aud.setCallback(self.audio_cb)
+ self.rec = audio.Record(channel)
+ self.__skip = 0
+
+ # ========== 音频文件 ====================
+
+ def audio_cb(self, event):
+ if event == 0:
+ # logger.info('audio play start.')
+ pass
+ elif event == 7:
+ # logger.info('audio play finish.')
+ pass
+ else:
+ pass
+
+ def play(self, file):
+ self.aud.play(0, 1, file)
+
+ # ========= opus ====================
+
+ def open_opus(self):
+ self.pcm = audio.Audio.PCM(0, 1, 16000, 2, 1, 15) # 5 -> 25
+ self.opus = Opus(self.pcm, 0, 6000) # 6000 ~ 128000
+
+ def close_opus(self):
+ self.opus.close()
+ self.pcm.close()
+ del self.opus
+ del self.pcm
+
+ def opus_read(self):
+ return self.opus.read(60)
+
+ def opus_write(self, data):
+ return self.opus.write(data)
+
+ # ========= vad & kws ====================
+
+ def set_kws_cb(self, cb):
+ self.rec.ovkws_set_callback(cb)
+
+ def set_vad_cb(self, cb):
+ def wrapper(state):
+ if self.__skip != 2:
+ self.__skip += 1
+ return
+ return cb(state)
+ self.rec.vad_set_callback(wrapper)
+
+ def end_cb(self, para):
+ if(para[0] == "stream"):
+ if(para[2] == 1):
+ pass
+ elif (para[2] == 3):
+ pass
+ else:
+ pass
+ else:
+ pass
+
+ def start_kws(self):
+ self.rec.ovkws_start("_xiao_zhi_xiao_zhi", 0.7)
+
+ def stop_kws(self):
+ self.rec.ovkws_stop()
+
+ def start_vad(self):
+ self.__skip = 0
+ self.rec.vad_start()
+
+ def stop_vad(self):
+ self.rec.vad_stop()
+```
+
diff --git a/smtp_quectel.py b/smtp_quectel.py
index 9dd8cada93aa34858647e51ddb41c9481519cc32..b56b45f666ffd8913710052cb431ac8f7b73c90a 100644
Binary files a/smtp_quectel.py and b/smtp_quectel.py differ