说明
当复刻完ESP-AI之后,我们还是一头雾水,不知道怎么和ESP-AI说话,那么这篇文章将让你茅塞顿开,ESP-AI支持多种唤醒,能满足不同需求
按键唤醒
在目前版本中,官方推荐的是天问语音唤醒模块,既然推荐天问,为什么还要按键唤醒?那是因为,经过实测,天问对电量消耗巨大,并且价格昂贵,虽然好用,但性价比并不高 言归正传,那么按键唤醒我们该怎样做?
接线
按键模块一共有3个引脚,将按键模块的VCC接到esp32的GND,将按键模块的OUT接到esp32的10号引脚
修改客户端配置文件
将以下代码粘贴到Arduino ide 中,记住将wifi 配置,服务配置改为自己的,然后将唤醒方案改为custom,改完之后编译就可以了,最后按上键就可以唤醒了,以下为示例代码
#include <esp-ai.h>ESP_AI esp_ai;// 定义按键引脚const int buttonPin = 10;bool lastButtonState = HIGH; // 用于记录上一次按键状态void setup() {Serial.begin(115200);bool debug = true;// [必 填] wifi 配置: { wifi 账号, wifi 密码 } 注意:要用双引号!ESP_AI_wifi_config wifi_config = { "Xiaomi_FANFAN", "yangfan0522", "ESP-AI" };//ESP_AI_server_config server_config = { }; // 如果你使用的是开发者平台,这留空即可// [必 填] 服务配置: { 服务IP, 服务端口, "请求参数,用多个参数&号分割" }ESP_AI_server_config server_config = { "", , "&token=123456" };// [必 填] 离线唤醒方案:{ 方案, 识别阈值 }, "edge_impulse" | "diy",为 "diy" 时可调用 esp_ai.wakeUp() 方法进行唤醒ESP_AI_wake_up_config wake_up_config = {};strcpy(wake_up_config.wake_up_scheme, "custom"); // 唤醒方案strcpy(wake_up_config.str, "start");// [可留空] 麦克风引脚配置:{ bck_io_num, ws_io_num, data_in_num }ESP_AI_i2s_config_mic i2s_config_mic = { 4, 5, 6 };// [可留空] 扬声器引脚配置:{ bck_io_num, ws_io_num, data_in_num, 采样率 }ESP_AI_i2s_config_speaker i2s_config_speaker = { 16, 17, 15, 16000 };// [可留空] 音量调节配置:{ 输入引脚,输入最大值(1024|4096),默认音量(0-1) }ESP_AI_volume_config volume_config = { 34, 4096, 1 };// 开始运行 ESP-AIesp_ai.begin({debug, wifi_config, server_config, wake_up_config, volume_config, i2s_config_mic, i2s_config_speaker});// 设置按键引脚为输入模式pinMode(buttonPin, INPUT_PULLUP);}void loop() {esp_ai.loop();// 检测按键是否按下bool buttonState = digitalRead(buttonPin);if (buttonState == LOW && lastButtonState == HIGH) {esp_ai.wakeUp();}lastButtonState = buttonState;}#include <esp-ai.h> ESP_AI esp_ai; // 定义按键引脚 const int buttonPin = 10; bool lastButtonState = HIGH; // 用于记录上一次按键状态 void setup() { Serial.begin(115200); bool debug = true; // [必 填] wifi 配置: { wifi 账号, wifi 密码 } 注意:要用双引号! ESP_AI_wifi_config wifi_config = { "Xiaomi_FANFAN", "yangfan0522", "ESP-AI" }; //ESP_AI_server_config server_config = { }; // 如果你使用的是开发者平台,这留空即可 // [必 填] 服务配置: { 服务IP, 服务端口, "请求参数,用多个参数&号分割" } ESP_AI_server_config server_config = { "", , "&token=123456" }; // [必 填] 离线唤醒方案:{ 方案, 识别阈值 }, "edge_impulse" | "diy",为 "diy" 时可调用 esp_ai.wakeUp() 方法进行唤醒 ESP_AI_wake_up_config wake_up_config = {}; strcpy(wake_up_config.wake_up_scheme, "custom"); // 唤醒方案 strcpy(wake_up_config.str, "start"); // [可留空] 麦克风引脚配置:{ bck_io_num, ws_io_num, data_in_num } ESP_AI_i2s_config_mic i2s_config_mic = { 4, 5, 6 }; // [可留空] 扬声器引脚配置:{ bck_io_num, ws_io_num, data_in_num, 采样率 } ESP_AI_i2s_config_speaker i2s_config_speaker = { 16, 17, 15, 16000 }; // [可留空] 音量调节配置:{ 输入引脚,输入最大值(1024|4096),默认音量(0-1) } ESP_AI_volume_config volume_config = { 34, 4096, 1 }; // 开始运行 ESP-AI esp_ai.begin({debug, wifi_config, server_config, wake_up_config, volume_config, i2s_config_mic, i2s_config_speaker}); // 设置按键引脚为输入模式 pinMode(buttonPin, INPUT_PULLUP); } void loop() { esp_ai.loop(); // 检测按键是否按下 bool buttonState = digitalRead(buttonPin); if (buttonState == LOW && lastButtonState == HIGH) { esp_ai.wakeUp(); } lastButtonState = buttonState; }#include <esp-ai.h> ESP_AI esp_ai; // 定义按键引脚 const int buttonPin = 10; bool lastButtonState = HIGH; // 用于记录上一次按键状态 void setup() { Serial.begin(115200); bool debug = true; // [必 填] wifi 配置: { wifi 账号, wifi 密码 } 注意:要用双引号! ESP_AI_wifi_config wifi_config = { "Xiaomi_FANFAN", "yangfan0522", "ESP-AI" }; //ESP_AI_server_config server_config = { }; // 如果你使用的是开发者平台,这留空即可 // [必 填] 服务配置: { 服务IP, 服务端口, "请求参数,用多个参数&号分割" } ESP_AI_server_config server_config = { "", , "&token=123456" }; // [必 填] 离线唤醒方案:{ 方案, 识别阈值 }, "edge_impulse" | "diy",为 "diy" 时可调用 esp_ai.wakeUp() 方法进行唤醒 ESP_AI_wake_up_config wake_up_config = {}; strcpy(wake_up_config.wake_up_scheme, "custom"); // 唤醒方案 strcpy(wake_up_config.str, "start"); // [可留空] 麦克风引脚配置:{ bck_io_num, ws_io_num, data_in_num } ESP_AI_i2s_config_mic i2s_config_mic = { 4, 5, 6 }; // [可留空] 扬声器引脚配置:{ bck_io_num, ws_io_num, data_in_num, 采样率 } ESP_AI_i2s_config_speaker i2s_config_speaker = { 16, 17, 15, 16000 }; // [可留空] 音量调节配置:{ 输入引脚,输入最大值(1024|4096),默认音量(0-1) } ESP_AI_volume_config volume_config = { 34, 4096, 1 }; // 开始运行 ESP-AI esp_ai.begin({debug, wifi_config, server_config, wake_up_config, volume_config, i2s_config_mic, i2s_config_speaker}); // 设置按键引脚为输入模式 pinMode(buttonPin, INPUT_PULLUP); } void loop() { esp_ai.loop(); // 检测按键是否按下 bool buttonState = digitalRead(buttonPin); if (buttonState == LOW && lastButtonState == HIGH) { esp_ai.wakeUp(); } lastButtonState = buttonState; }