Skip to content

Commit b568e46

Browse files
committed
Merge branch 'main' into watcher-en
* main: (44 commits) Add session_id to websocket message chore: 更新 .gitignore 文件 (78#591) fix unused variable warning Fix Initialize() Lilygo T-CameraPlus-S3 关闭延时关机以及削平电池百分比 (78#598) Add server AEC option lilygo-t-cameraplus-s3 add pmic (78#586) fixbug: button driver cannot be in stack memory Default realtime chat for esp-box-3, lichuang-dev Double click BOOT to switch 4G/Wi-Fi Default press time to 0 Bump to 1.6.2 Add CEREG to board JSON for 4G LBS to fix weather location Upgrade component versions Use English output log 解决部分esp32-s3-touch-lcd-3.5开机黑屏不显示的问题 (78#581) Upgrade components Adjust LCD display Remove warnings 【需求】双网络类型通过长按boot切换网络 (78#520) ... # Conflicts: # main/Kconfig.projbuild # main/boards/common/wifi_board.cc # main/protocols/websocket_protocol.cc
2 parents 487d6f0 + 45c62f5 commit b568e46

File tree

94 files changed

+5320
-513
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

94 files changed

+5320
-513
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,5 @@ dependencies.lock
1010
.env
1111
releases/
1212
main/assets/lang_config.h
13-
.DS_Store
13+
.DS_Store
14+
.cache

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# CMakeLists in this exact order for cmake to work correctly
55
cmake_minimum_required(VERSION 3.16)
66

7-
set(PROJECT_VER "1.5.9")
7+
set(PROJECT_VER "1.6.2")
88

99
# Add this line to disable the specific warning
1010
add_compile_options(-Wno-missing-field-initializers)

docs/websocket.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
2. **建立 WebSocket 连接**
1515
- 当设备需要开始语音会话时(例如用户唤醒、手动按键触发等),调用 `OpenAudioChannel()`
16-
- 根据编译配置获取 WebSocket URL`CONFIG_WEBSOCKET_URL`
16+
- 根据配置获取 WebSocket URL
1717
- 设置若干请求头(`Authorization`, `Protocol-Version`, `Device-Id`, `Client-Id`
1818
- 调用 `Connect()` 与服务器建立 WebSocket 连接
1919

main/CMakeLists.txt

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ set(SOURCES "audio_codecs/audio_codec.cc"
22
"audio_codecs/no_audio_codec.cc"
33
"audio_codecs/box_audio_codec.cc"
44
"audio_codecs/es8311_audio_codec.cc"
5+
"audio_codecs/es8374_audio_codec.cc"
56
"audio_codecs/es8388_audio_codec.cc"
67
"led/single_led.cc"
78
"led/circular_strip.cc"
@@ -10,6 +11,8 @@ set(SOURCES "audio_codecs/audio_codec.cc"
1011
"display/lcd_display.cc"
1112
"display/oled_display.cc"
1213
"protocols/protocol.cc"
14+
"protocols/mqtt_protocol.cc"
15+
"protocols/websocket_protocol.cc"
1316
"iot/thing.cc"
1417
"iot/thing_manager.cc"
1518
"system_info.cc"
@@ -108,6 +111,10 @@ elseif(CONFIG_BOARD_TYPE_LILYGO_T_CIRCLE_S3)
108111
set(BOARD_TYPE "lilygo-t-circle-s3")
109112
elseif(CONFIG_BOARD_TYPE_LILYGO_T_CAMERAPLUS_S3)
110113
set(BOARD_TYPE "lilygo-t-cameraplus-s3")
114+
elseif(CONFIG_BOARD_TYPE_LILYGO_T_DISPLAY_S3_PRO_MVSRLORA)
115+
set(BOARD_TYPE "lilygo-t-display-s3-pro-mvsrlora")
116+
elseif(CONFIG_BOARD_TYPE_LILYGO_T_DISPLAY_S3_PRO_MVSRLORA_NO_BATTERY)
117+
set(BOARD_TYPE "lilygo-t-display-s3-pro-mvsrlora")
111118
elseif(CONFIG_BOARD_TYPE_MOVECALL_MOJI_ESP32S3)
112119
set(BOARD_TYPE "movecall-moji-esp32s3")
113120
elseif(CONFIG_BOARD_TYPE_MOVECALL_CUICAN_ESP32S3)
@@ -116,6 +123,12 @@ elseif(CONFIG_BOARD_TYPE_ATK_DNESP32S3)
116123
set(BOARD_TYPE "atk-dnesp32s3")
117124
elseif(CONFIG_BOARD_TYPE_ATK_DNESP32S3_BOX)
118125
set(BOARD_TYPE "atk-dnesp32s3-box")
126+
elseif(CONFIG_BOARD_TYPE_ATK_DNESP32S3_BOX0)
127+
set(BOARD_TYPE "atk-dnesp32s3-box0")
128+
elseif(CONFIG_BOARD_TYPE_ATK_DNESP32S3M_WIFI)
129+
set(BOARD_TYPE "atk-dnesp32s3m-wifi")
130+
elseif(CONFIG_BOARD_TYPE_ATK_DNESP32S3M_4G)
131+
set(BOARD_TYPE "atk-dnesp32s3m-4g")
119132
elseif(CONFIG_BOARD_TYPE_DU_CHATX)
120133
set(BOARD_TYPE "du-chatx")
121134
elseif(CONFIG_BOARD_TYPE_ESP32S3_Taiji_Pi)
@@ -136,23 +149,23 @@ elseif(CONFIG_BOARD_TYPE_SENSECAP_WATCHER)
136149
set(BOARD_TYPE "sensecap-watcher")
137150
elseif(CONFIG_BOARD_TYPE_DOIT_S3_AIBOX)
138151
set(BOARD_TYPE "doit-s3-aibox")
152+
elseif(CONFIG_BOARD_TYPE_MIXGO_NOVA)
153+
set(BOARD_TYPE "mixgo-nova")
139154
elseif(CONFIG_BOARD_TYPE_ESP32_CGC)
140155
set(BOARD_TYPE "esp32-cgc")
156+
elseif(CONFIG_BOARD_TYPE_ESP_S3_LCD_EV_Board)
157+
set(BOARD_TYPE "esp-s3-lcd-ev-board")
141158
endif()
142159
file(GLOB BOARD_SOURCES
143160
${CMAKE_CURRENT_SOURCE_DIR}/boards/${BOARD_TYPE}/*.cc
144161
${CMAKE_CURRENT_SOURCE_DIR}/boards/${BOARD_TYPE}/*.c
145162
)
146163
list(APPEND SOURCES ${BOARD_SOURCES})
147164

148-
if(CONFIG_CONNECTION_TYPE_MQTT_UDP)
149-
list(APPEND SOURCES "protocols/mqtt_protocol.cc")
150-
elseif(CONFIG_CONNECTION_TYPE_WEBSOCKET)
151-
list(APPEND SOURCES "protocols/websocket_protocol.cc")
152-
endif()
153-
154165
if(CONFIG_USE_AUDIO_PROCESSOR)
155-
list(APPEND SOURCES "audio_processing/audio_processor.cc")
166+
list(APPEND SOURCES "audio_processing/afe_audio_processor.cc")
167+
else()
168+
list(APPEND SOURCES "audio_processing/dummy_audio_processor.cc")
156169
endif()
157170
if(CONFIG_USE_WAKE_WORD_DETECT)
158171
list(APPEND SOURCES "audio_processing/wake_word_detect.cc")

main/Kconfig.projbuild

Lines changed: 152 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
menu "Xiaozhi Assistant"
22

3-
config OTA_VERSION_URL
4-
string "OTA Version URL"
3+
config OTA_URL
4+
string "Default OTA URL"
55
default "https://api.tenclass.net/xiaozhi/ota/"
66
help
7-
The application will access this URL to check for updates.
7+
The application will access this URL to check for new firmwares and server address.
88

99

1010
choice
11-
prompt "Language Selection"
11+
prompt "语言选择"
1212
default LANGUAGE_ZH_CN
1313
help
1414
Select device display language
@@ -23,39 +23,143 @@ choice
2323
bool "Japanese"
2424
endchoice
2525

26-
27-
choice CONNECTION_TYPE
28-
prompt "Connection Type"
29-
default CONNECTION_TYPE_MQTT_UDP
30-
help
31-
网络数据传输协议
32-
config CONNECTION_TYPE_MQTT_UDP
33-
bool "MQTT + UDP"
34-
config CONNECTION_TYPE_WEBSOCKET
35-
bool "Websocket"
36-
endchoice
37-
38-
config WEBSOCKET_URL
39-
depends on CONNECTION_TYPE_WEBSOCKET
40-
string "Websocket URL"
41-
default "wss://api.tenclass.net/xiaozhi/v1/"
42-
help
43-
Communication with the server through websocket after wake up.
44-
45-
config WEBSOCKET_ACCESS_TOKEN
46-
depends on CONNECTION_TYPE_WEBSOCKET
47-
string "Websocket Access Token"
48-
default "test-token"
49-
help
50-
Access token for websocket communication.
51-
5226
choice BOARD_TYPE
5327
prompt "Board Type"
54-
default BOARD_TYPE_SENSECAP_WATCHER
28+
default BOARD_TYPE_BREAD_COMPACT_WIFI
5529
help
5630
Board type. 开发板类型
31+
config BOARD_TYPE_BREAD_COMPACT_WIFI
32+
bool "面包板新版接线(WiFi)"
33+
config BOARD_TYPE_BREAD_COMPACT_WIFI_LCD
34+
bool "面包板新版接线(WiFi)+ LCD"
35+
config BOARD_TYPE_BREAD_COMPACT_ML307
36+
bool "面包板新版接线(ML307 AT)"
37+
config BOARD_TYPE_BREAD_COMPACT_ESP32
38+
bool "面包板(WiFi) ESP32 DevKit"
39+
config BOARD_TYPE_BREAD_COMPACT_ESP32_LCD
40+
bool "面包板(WiFi+ LCD) ESP32 DevKit"
41+
config BOARD_TYPE_ESP32_CGC
42+
bool "ESP32 CGC"
43+
config BOARD_TYPE_ESP_BOX_3
44+
bool "ESP BOX 3"
45+
config BOARD_TYPE_ESP_BOX
46+
bool "ESP BOX"
47+
config BOARD_TYPE_ESP_BOX_LITE
48+
bool "ESP BOX Lite"
49+
config BOARD_TYPE_KEVIN_BOX_1
50+
bool "Kevin Box 1"
51+
config BOARD_TYPE_KEVIN_BOX_2
52+
bool "Kevin Box 2"
53+
config BOARD_TYPE_KEVIN_C3
54+
bool "Kevin C3"
55+
config BOARD_TYPE_KEVIN_SP_V3_DEV
56+
bool "Kevin SP V3开发板"
57+
config BOARD_TYPE_KEVIN_SP_V4_DEV
58+
bool "Kevin SP V4开发板"
59+
config BOARD_TYPE_KEVIN_YUYING_313LCD
60+
bool "鱼鹰科技3.13LCD开发板"
61+
config BOARD_TYPE_LICHUANG_DEV
62+
bool "立创·实战派ESP32-S3开发板"
63+
config BOARD_TYPE_LICHUANG_C3_DEV
64+
bool "立创·实战派ESP32-C3开发板"
65+
config BOARD_TYPE_DF_K10
66+
bool "DFRobot 行空板 k10"
67+
config BOARD_TYPE_MAGICLICK_2P4
68+
bool "神奇按钮 Magiclick_2.4"
69+
config BOARD_TYPE_MAGICLICK_2P5
70+
bool "神奇按钮 Magiclick_2.5"
71+
config BOARD_TYPE_MAGICLICK_C3
72+
bool "神奇按钮 Magiclick_C3"
73+
config BOARD_TYPE_MAGICLICK_C3_V2
74+
bool "神奇按钮 Magiclick_C3_v2"
75+
config BOARD_TYPE_M5STACK_CORE_S3
76+
bool "M5Stack CoreS3"
77+
config BOARD_TYPE_ATOMS3_ECHO_BASE
78+
bool "AtomS3 + Echo Base"
79+
config BOARD_TYPE_ATOMS3R_ECHO_BASE
80+
bool "AtomS3R + Echo Base"
81+
config BOARD_TYPE_ATOMS3R_CAM_M12_ECHO_BASE
82+
bool "AtomS3R CAM/M12 + Echo Base"
83+
config BOARD_TYPE_ATOMMATRIX_ECHO_BASE
84+
bool "AtomMatrix + Echo Base"
85+
config BOARD_TYPE_XMINI_C3
86+
bool "虾哥 Mini C3"
87+
config BOARD_TYPE_ESP32S3_KORVO2_V3
88+
bool "ESP32S3_KORVO2_V3开发板"
89+
config BOARD_TYPE_ESP_SPARKBOT
90+
bool "ESP-SparkBot开发板"
91+
config BOARD_TYPE_ESP_SPOT_S3
92+
bool "ESP-Spot-S3"
93+
config BOARD_TYPE_ESP32S3_Touch_AMOLED_1_8
94+
bool "Waveshare ESP32-S3-Touch-AMOLED-1.8"
95+
config BOARD_TYPE_ESP32S3_Touch_LCD_1_85C
96+
bool "Waveshare ESP32-S3-Touch-LCD-1.85C"
97+
config BOARD_TYPE_ESP32S3_Touch_LCD_1_85
98+
bool "Waveshare ESP32-S3-Touch-LCD-1.85"
99+
config BOARD_TYPE_ESP32S3_Touch_LCD_1_46
100+
bool "Waveshare ESP32-S3-Touch-LCD-1.46"
101+
config BOARD_TYPE_ESP32S3_Touch_LCD_3_5
102+
bool "Waveshare ESP32-S3-Touch-LCD-3.5"
103+
config BOARD_TYPE_TUDOUZI
104+
bool "土豆子"
105+
config BOARD_TYPE_LILYGO_T_CIRCLE_S3
106+
bool "LILYGO T-Circle-S3"
107+
config BOARD_TYPE_LILYGO_T_CAMERAPLUS_S3
108+
bool "LILYGO T-CameraPlus-S3"
109+
config BOARD_TYPE_LILYGO_T_DISPLAY_S3_PRO_MVSRLORA
110+
bool "LILYGO T-Display-S3-Pro-MVSRLora"
111+
config BOARD_TYPE_LILYGO_T_DISPLAY_S3_PRO_MVSRLORA_NO_BATTERY
112+
bool "LILYGO T-Display-S3-Pro-MVSRLora_No_Battery"
113+
config BOARD_TYPE_MOVECALL_MOJI_ESP32S3
114+
bool "Movecall Moji 小智AI衍生版"
115+
config BOARD_TYPE_MOVECALL_CUICAN_ESP32S3
116+
bool "Movecall CuiCan 璀璨·AI吊坠"
117+
config BOARD_TYPE_ATK_DNESP32S3
118+
bool "正点原子DNESP32S3开发板"
119+
config BOARD_TYPE_ATK_DNESP32S3_BOX
120+
bool "正点原子DNESP32S3-BOX"
121+
config BOARD_TYPE_ATK_DNESP32S3_BOX0
122+
bool "正点原子DNESP32S3-BOX0"
123+
config BOARD_TYPE_ATK_DNESP32S3M_WIFI
124+
bool "正点原子DNESP32S3M-WIFI"
125+
config BOARD_TYPE_ATK_DNESP32S3M_4G
126+
bool "正点原子DNESP32S3M-4G"
127+
config BOARD_TYPE_DU_CHATX
128+
bool "嘟嘟开发板CHATX(wifi)"
129+
config BOARD_TYPE_ESP32S3_Taiji_Pi
130+
bool "太极小派esp32s3"
131+
config BOARD_TYPE_XINGZHI_Cube_0_85TFT_WIFI
132+
bool "无名科技星智0.85(WIFI)"
133+
config BOARD_TYPE_XINGZHI_Cube_0_85TFT_ML307
134+
bool "无名科技星智0.85(ML307)"
135+
config BOARD_TYPE_XINGZHI_Cube_0_96OLED_WIFI
136+
bool "无名科技星智0.96(WIFI)"
137+
config BOARD_TYPE_XINGZHI_Cube_0_96OLED_ML307
138+
bool "无名科技星智0.96(ML307)"
139+
config BOARD_TYPE_XINGZHI_Cube_1_54TFT_WIFI
140+
bool "无名科技星智1.54(WIFI)"
141+
config BOARD_TYPE_XINGZHI_Cube_1_54TFT_ML307
142+
bool "无名科技星智1.54(ML307)"
57143
config BOARD_TYPE_SENSECAP_WATCHER
58144
bool "SenseCAP Watcher"
145+
config BOARD_TYPE_DOIT_S3_AIBOX
146+
bool "四博智联AI陪伴盒子"
147+
config BOARD_TYPE_MIXGO_NOVA
148+
bool "元控·青春"
149+
config BOARD_TYPE_ESP_S3_LCD_EV_Board
150+
bool "乐鑫ESP S3 LCD EV Board开发板"
151+
endchoice
152+
153+
choice ESP_S3_LCD_EV_Board_Version_TYPE
154+
depends on BOARD_TYPE_ESP_S3_LCD_EV_Board
155+
prompt "EV_BOARD Type"
156+
default ESP_S3_LCD_EV_Board_1p4
157+
help
158+
开发板硬件版本型号选择
159+
config ESP_S3_LCD_EV_Board_1p4
160+
bool "乐鑫ESP32_S3_LCD_EV_Board-MB_V1.4"
161+
config ESP_S3_LCD_EV_Board_1p5
162+
bool "乐鑫ESP32_S3_LCD_EV_Board-MB_V1.5"
59163
endchoice
60164

61165
choice DISPLAY_OLED_TYPE
@@ -125,30 +229,37 @@ choice DISPLAY_ESP32S3_KORVO2_V3
125229
endchoice
126230

127231
config USE_WECHAT_MESSAGE_STYLE
128-
bool "Use WeChat chat interface style"
232+
bool "使用微信聊天界面风格"
129233
default n
130234
help
131-
Use WeChat chat interface style
235+
使用微信聊天界面风格
132236

133237
config USE_WAKE_WORD_DETECT
134-
bool "Enable wake word detection"
238+
bool "启用唤醒词检测"
135239
default y
136240
depends on IDF_TARGET_ESP32S3 && SPIRAM
137241
help
138-
Requires ESP32 S3 and AFE support
242+
需要 ESP32 S3 AFE 支持
139243

140244
config USE_AUDIO_PROCESSOR
141-
bool "Enable audio noise reduction and gain processing"
245+
bool "启用音频降噪、增益处理"
142246
default y
143247
depends on IDF_TARGET_ESP32S3 && SPIRAM
144248
help
145-
Requires ESP32 S3 and AFE support
249+
需要 ESP32 S3 AFE 支持
146250

147-
config USE_REALTIME_CHAT
148-
bool "Enable real-time conversation mode with barge-in (requires AEC support)"
251+
config USE_DEVICE_AEC
252+
bool "在通话过程中启用设备端 AEC"
149253
default n
150254
depends on USE_AUDIO_PROCESSOR && (BOARD_TYPE_ESP_BOX_3 || BOARD_TYPE_ESP_BOX || BOARD_TYPE_ESP_BOX_LITE || BOARD_TYPE_LICHUANG_DEV || BOARD_TYPE_ESP32S3_KORVO2_V3)
151255
help
152-
Requires ESP32 S3 and AEC to be enabled. Due to insufficient performance, it is not recommended to enable it at the same time as the WeChat chat interface style.
153-
256+
因为性能不够,不建议和微信聊天界面风格同时开启
257+
258+
config USE_SERVER_AEC
259+
bool "在通话过程中启用服务器端 AEC"
260+
default n
261+
depends on USE_AUDIO_PROCESSOR
262+
help
263+
启用服务器端 AEC,需要服务器支持
264+
154265
endmenu

0 commit comments

Comments
 (0)