diff --git a/Lib/MIC_Driver/MIC_Speech.c b/Lib/MIC_Driver/MIC_Speech.c new file mode 100644 index 0000000..a5e55e6 --- /dev/null +++ b/Lib/MIC_Driver/MIC_Speech.c @@ -0,0 +1,240 @@ +#include "MIC_Speech.h" + +#include "driver/gpio.h" +#include "driver/i2s_std.h" +#include "driver/i2s_tdm.h" +#include "soc/soc_caps.h" +#include "esp_err.h" +#include "esp_log.h" + +#include "esp_wn_iface.h" +#include "esp_wn_models.h" +#include "esp_afe_sr_models.h" +#include "esp_mn_iface.h" +#include "esp_mn_models.h" + +#define I2S_CHANNEL_NUM 1 + +static const char *TAG = "App/Speech"; + +static i2s_chan_handle_t rx_handle = NULL; // I2S rx channel handler +static AppSpeech MIC_Speech; +bool play_Music_Flag = 0; +uint8_t LCD_Backlight_original = 0; + + +static esp_err_t i2s_init(i2s_port_t i2s_num, uint32_t sample_rate, int channel_format, int bits_per_chan) +{ + esp_err_t ret_val = ESP_OK; + + i2s_chan_config_t chan_cfg = I2S_CHANNEL_DEFAULT_CONFIG(i2s_num, I2S_ROLE_MASTER); + + ret_val |= i2s_new_channel(&chan_cfg, NULL, &rx_handle); + i2s_std_config_t std_cfg = I2S_CONFIG_DEFAULT(16000, I2S_SLOT_MODE_MONO, I2S_DATA_BIT_WIDTH_32BIT); + // std_cfg.slot_cfg.slot_mask = I2S_STD_SLOT_LEFT; + std_cfg.slot_cfg.slot_mask = I2S_STD_SLOT_RIGHT; + // std_cfg.clk_cfg.mclk_multiple = EXAMPLE_MCLK_MULTIPLE; //The default is I2S_MCLK_MULTIPLE_256. If not using 24-bit data width, 256 should be enough + ret_val |= i2s_channel_init_std_mode(rx_handle, &std_cfg); + ret_val |= i2s_channel_enable(rx_handle); + + return ret_val; +} + +static void feed_handler(AppSpeech *self) +{ + esp_afe_sr_data_t *afe_data = self->afe_data; + int audio_chunksize = self->afe_handle->get_feed_chunksize(afe_data); + int nch = self->afe_handle->get_channel_num(afe_data); + (void)nch; + size_t samp_len = audio_chunksize; + size_t samp_len_bytes = samp_len * I2S_CHANNEL_NUM * sizeof(int32_t); + int32_t *i2s_buff = (int32_t *)malloc(samp_len_bytes); + assert(i2s_buff); + size_t bytes_read; + // FILE *fp = fopen("/sdcard/out", "a+"); + // if (fp == NULL) ESP_LOGE(TAG,"can not open file\n"); + + while (true) + { + i2s_channel_read(rx_handle, i2s_buff, samp_len_bytes, &bytes_read, portMAX_DELAY); + + for (int i = 0; i < samp_len; ++i) + { + i2s_buff[i] = i2s_buff[i] >> 14; // 32:8 is the significant bit, 8:0 is the low 8 bits, all 0, the AFE input is 16 bits of voice data, the 29:13 bit is to amplify the voice signal. + } + // FatfsComboWrite(i2s_buff, audio_chunksize * I2S_CHANNEL_NUM * sizeof(int16_t), 1, fp); + + self->afe_handle->feed(afe_data, (int16_t *)i2s_buff); + } + self->afe_handle->destroy(afe_data); + if (i2s_buff) { + free(i2s_buff); + i2s_buff = NULL; + } + vTaskDelete(NULL); +} + +static void detect_hander(AppSpeech *self) +{ + esp_afe_sr_data_t *afe_data = self->afe_data; + int afe_chunksize = self->afe_handle->get_fetch_chunksize(afe_data); +#if defined(CONFIG_SR_MN_CN_MULTINET5_RECOGNITION_QUANT8) || defined(CONFIG_SR_MN_CN_MULTINET6_QUANT) || defined(CONFIG_SR_MN_CN_MULTINET6_AC_QUANT) + char *mn_name = esp_srmodel_filter(self->models, ESP_MN_PREFIX, ESP_MN_CHINESE); +#else + char *mn_name = esp_srmodel_filter(self->models, ESP_MN_PREFIX, ESP_MN_ENGLISH); +#endif // CONFIG_IDF_TARGET_ESP32S3 + ESP_LOGI(TAG, "multinet:%s\n", mn_name); + esp_mn_iface_t *multinet = esp_mn_handle_from_name(mn_name); + model_iface_data_t *model_data = multinet->create(mn_name, 6000); + esp_mn_commands_update_from_sdkconfig(multinet, model_data); // Add speech commands from sdkconfig + int mu_chunksize = multinet->get_samp_chunksize(model_data); + assert(mu_chunksize == afe_chunksize); + + // FILE *fp = fopen("/sdcard/out", "w"); + // if (fp == NULL) ESP_LOGE(TAG,"can not open file\n"); + + //print active speech commands + multinet->print_active_speech_commands(model_data); + ESP_LOGI(TAG, "Ready"); + + self->detected = false; + + while (true) + { + afe_fetch_result_t* res = self->afe_handle->fetch(afe_data); + if (!res || res->ret_value == ESP_FAIL) { + ESP_LOGE(TAG, "fetch error!\n"); + break; + } + + if (res->wakeup_state == WAKENET_DETECTED) { + ESP_LOGI(TAG, "WAKEWORD DETECTED\n"); + multinet->clean(model_data); // clean all status of multinet + LCD_Backlight_original = LCD_Backlight; + } else if (res->wakeup_state == WAKENET_CHANNEL_VERIFIED) { + ESP_LOGI(TAG, "AFE_FETCH_CHANNEL_VERIFIED, channel index: %d\n", res->trigger_channel_id); + ESP_LOGI(TAG, ">>> Say your command <<<"); + self->detected = true; + self->afe_handle->disable_wakenet(afe_data); + LCD_Backlight = 35; + + } + + if (self->detected) { + esp_mn_state_t mn_state = multinet->detect(model_data, res->data); + + if (mn_state == ESP_MN_STATE_DETECTING) { + self->command = COMMAND_NOT_DETECTED; + continue; + } else if (mn_state == ESP_MN_STATE_DETECTED) { + esp_mn_results_t *mn_result = multinet->get_results(model_data); + // for (int i = 0; i < mn_result->num; i++) { + // ESP_LOGI(TAG, "TOP %d, command_id: %d, phrase_id: %d, string:%s prob: %f\n", + // i+1, mn_result->command_id[i], mn_result->phrase_id[i], mn_result->string, mn_result->prob[i]); + // } + ESP_LOGI(TAG, "TOP %d, command_id: %d, phrase_id: %d, string:%s prob: %f\n", + 1, mn_result->command_id[0], mn_result->phrase_id[0], mn_result->string, mn_result->prob[0]); + switch (mn_result->command_id[0]) { + case 0: + LCD_Backlight = 100; + break; + case 1: + LCD_Backlight = 30; + break; + case 2: + LCD_Backlight = 0; + break; + case 3: + LCD_Backlight = 100; + break; + case 4: + play_Music_Flag = 1; + break; + default: printf("Unknown Command!\r\n"); break; + } + self->command = (command_word_t)mn_result->command_id[0]; + // self->afe_handle->enable_wakenet(afe_data); + // self->detected = false; + + self->afe_handle->disable_wakenet(afe_data); + self->detected = true; + ESP_LOGI(TAG, ">>> Say your command <<<"); + self->command = COMMAND_TIMEOUT; + } else if (mn_state == ESP_MN_STATE_TIMEOUT) { + esp_mn_results_t *mn_result = multinet->get_results(model_data); + ESP_LOGI(TAG, "timeout, string:%s\n", mn_result->string); + self->command = COMMAND_TIMEOUT; + self->afe_handle->enable_wakenet(afe_data); + self->detected = false; + ESP_LOGI(TAG, ">>> Waiting to be waken up <<<"); + LCD_Backlight = LCD_Backlight_original; + if(play_Music_Flag){ + play_Music_Flag = 0; + if(ACTIVE_TRACK_CNT) + _lv_demo_music_resume(); + else + printf("No MP3 file found in SD card!\r\n"); + } + } + } + } + if (model_data) { + multinet->destroy(model_data); + model_data = NULL; + } + self->afe_handle->destroy(afe_data); + vTaskDelete(NULL); +} + + +void MIC_Speech_init() +{ + + MIC_Speech.afe_handle = &ESP_AFE_SR_HANDLE; + + MIC_Speech.detected = false; + MIC_Speech.command = COMMAND_TIMEOUT; + MIC_Speech.models = esp_srmodel_init("model"); // 这边配置为SD卡当中的文件路径 + i2s_init(I2S_NUM_1, 16000, 2, 32); + // sd_card_mount("/sdcard"); + afe_config_t afe_config = { + .aec_init = true, + .se_init = true, + .vad_init = true, + .wakenet_init = true, + .voice_communication_init = false, + .voice_communication_agc_init = false, + .voice_communication_agc_gain = 15, + .vad_mode = VAD_MODE_3, + .wakenet_model_name = NULL, + .wakenet_model_name_2 = NULL, + .wakenet_mode = DET_MODE_2CH_90, + .afe_mode = SR_MODE_LOW_COST, + .afe_perferred_core = 0, + .afe_perferred_priority = 5, + .afe_ringbuf_size = 50, + .memory_alloc_mode = AFE_MEMORY_ALLOC_MORE_PSRAM, + .afe_linear_gain = 1.0, + .agc_mode = AFE_MN_PEAK_AGC_MODE_2, + .pcm_config = { + .total_ch_num = 3, + .mic_num = 2, + .ref_num = 1, + .sample_rate = 16000, + }, + .debug_init = false, + .debug_hook = {{AFE_DEBUG_HOOK_MASE_TASK_IN, NULL}, {AFE_DEBUG_HOOK_FETCH_TASK_IN, NULL}}, + }; + afe_config.aec_init = false; + afe_config.se_init = false; + afe_config.vad_init = false; + afe_config.afe_ringbuf_size = 10; + afe_config.pcm_config.total_ch_num = 2; + afe_config.pcm_config.mic_num = 1; + afe_config.pcm_config.ref_num = 1; + afe_config.pcm_config.sample_rate = 16000; + afe_config.wakenet_model_name = esp_srmodel_filter(MIC_Speech.models, ESP_WN_PREFIX, NULL); + MIC_Speech.afe_data = MIC_Speech.afe_handle->create_from_config(&afe_config); + xTaskCreatePinnedToCore((TaskFunction_t)feed_handler, "App/SR/Feed", 4 * 1024, &MIC_Speech, 5, NULL, 1); + xTaskCreatePinnedToCore((TaskFunction_t)detect_hander, "App/SR/Detect", 5 * 1024, &MIC_Speech, 5, NULL, 1); +} diff --git a/Lib/MIC_Driver/MIC_Speech.h b/Lib/MIC_Driver/MIC_Speech.h new file mode 100644 index 0000000..edce05d --- /dev/null +++ b/Lib/MIC_Driver/MIC_Speech.h @@ -0,0 +1,47 @@ +#pragma once + +#include "esp_afe_sr_iface.h" +#include "esp_process_sdkconfig.h" +#include "model_path.h" +#include "ST77916.h" +#include "LVGL_Music.h" + +#define I2S_CONFIG_DEFAULT(sample_rate, channel_fmt, bits_per_chan) { \ + .clk_cfg = I2S_STD_CLK_DEFAULT_CONFIG(sample_rate), \ + .slot_cfg = I2S_STD_PHILIPS_SLOT_DEFAULT_CONFIG(bits_per_chan, channel_fmt), \ + .gpio_cfg = { \ + .mclk = GPIO_NUM_NC, \ + .bclk = GPIO_NUM_15, \ + .ws = GPIO_NUM_2, \ + .dout = GPIO_NUM_NC, \ + .din = GPIO_NUM_39, \ + .invert_flags = { \ + .mclk_inv = false, \ + .bclk_inv = false, \ + .ws_inv = false, \ + }, \ + }, \ + } +typedef enum +{ + COMMAND_TIMEOUT = -2, + COMMAND_NOT_DETECTED = -1, + + COMMAND_ID1 = 0, + COMMAND_ID2 = 1, + COMMAND_ID3 = 2, + COMMAND_ID4 = 3, + COMMAND_ID5 = 4, + COMMAND_ID6 = 5, +} command_word_t; + +typedef struct { + const esp_afe_sr_iface_t *afe_handle; + esp_afe_sr_data_t *afe_data; + srmodel_list_t *models; + bool detected; + command_word_t command; +} AppSpeech; + +void MIC_Speech_init(); + diff --git a/Lib/PWR_Key/PWR_Key.c b/Lib/PWR_Key/PWR_Key.c new file mode 100644 index 0000000..b7f9566 --- /dev/null +++ b/Lib/PWR_Key/PWR_Key.c @@ -0,0 +1,58 @@ +#include "PWR_Key.h" + +static uint8_t BAT_State = 0; // 电池/电源状态标志 +static uint8_t Device_State = 0; // 设备状态标志 +static uint16_t Long_Press = 0; // 按键按下持续时间计数器 + + +void PWR_Loop(void) +{ + if(BAT_State){ + if(!gpio_get_level(PWR_KEY_Input_PIN)){ + if(BAT_State == 2){ + Long_Press ++; + if(Long_Press >= Device_Sleep_Time){ + if(Long_Press >= Device_Sleep_Time && Long_Press < Device_Restart_Time) + Device_State = 1; + else if(Long_Press >= Device_Restart_Time && Long_Press < Device_Shutdown_Time) + Device_State = 2; + else if(Long_Press >= Device_Shutdown_Time) + Shutdown(); + } + } + } + else{ + if(BAT_State == 1) + BAT_State = 2; + Long_Press = 0; + } + } +} +void Fall_Asleep(void) +{ + +} +void Restart(void) +{ + +} +void Shutdown(void) +{ + gpio_set_level(PWR_Control_PIN, false); + LCD_Backlight = 0; +} +void configure_GPIO(int pin, gpio_mode_t Mode) +{ + gpio_reset_pin(pin); + gpio_set_direction(pin, Mode); +} +void PWR_Init(void) { + configure_GPIO(PWR_KEY_Input_PIN, GPIO_MODE_INPUT); + configure_GPIO(PWR_Control_PIN, GPIO_MODE_OUTPUT); + gpio_set_level(PWR_Control_PIN, false); + vTaskDelay(100); + if(!gpio_get_level(PWR_KEY_Input_PIN)) { + BAT_State = 1; + gpio_set_level(PWR_Control_PIN, true); + } +} diff --git a/Lib/PWR_Key/PWR_Key.h b/Lib/PWR_Key/PWR_Key.h new file mode 100644 index 0000000..24fcdfd --- /dev/null +++ b/Lib/PWR_Key/PWR_Key.h @@ -0,0 +1,16 @@ +#pragma once +#include "ST77916.h" + +#define PWR_KEY_Input_PIN 6 // 电源按键输入引脚(GPIO6) +#define PWR_Control_PIN 7 // 电源控制输出引脚(GPIO7) + +#define Device_Sleep_Time 10 // 进入睡眠模式的按键时长阈值 +#define Device_Restart_Time 15 // 重启设备的按键时长阈值 +#define Device_Shutdown_Time 20 // 关机操作的按键时长阈值 + +void Fall_Asleep(void); +void Shutdown(void); +void Restart(void); + +void PWR_Init(void); +void PWR_Loop(void); \ No newline at end of file diff --git a/Util/tools/tools.c b/Util/tools/tools.c new file mode 100644 index 0000000..238fcb9 --- /dev/null +++ b/Util/tools/tools.c @@ -0,0 +1,26 @@ +// +// Created by misaki on 2025/8/28. +// +#include +#include +#include +#include + +void print_sys_memory(void) +{ + size_t internal = heap_caps_get_free_size(MALLOC_CAP_INTERNAL); + size_t spiram = heap_caps_get_free_size(MALLOC_CAP_SPIRAM); + printf("Internal(内部): %zu kB, SPIRAM(外部): %zu kB\n", internal/1024, spiram/1024); +} + +void print_sys_memory_task(void* pvParameters) +{ + while(1) { + print_sys_memory(); + vTaskDelay(pdMS_TO_TICKS(1000)); // 每1秒打印一次 + } +} + +void create_print_sys_memory_task() { + xTaskCreatePinnedToCore(print_sys_memory_task, "print_sys_memory", 1024, NULL, 2, NULL, 0); +} diff --git a/Util/tools/tools.h b/Util/tools/tools.h new file mode 100644 index 0000000..c56bab7 --- /dev/null +++ b/Util/tools/tools.h @@ -0,0 +1,19 @@ +// +// Created by misaki on 2025/8/28. +// + +/** + * @brief 杂项工具类,存放一些工具函数 + */ + + +#ifndef BIONIC_SPHERE_TOOLS_H +#define BIONIC_SPHERE_TOOLS_H + +// 打印系统内存使用情况 +void print_sys_memory(void); + +// 创建一个定时任务,每x秒打印一次系统内存使用情况 +void create_print_sys_memory_task(); + +#endif //BIONIC_SPHERE_TOOLS_H \ No newline at end of file diff --git a/main/Bionic_sphere.c b/main/Bionic_sphere.c index b686970..3ea2c9a 100644 --- a/main/Bionic_sphere.c +++ b/main/Bionic_sphere.c @@ -27,7 +27,13 @@ void app_main(void) // lcd_touch_lvgl_test(); - gif_test(); + // gif_test(); + + // pwr_key_test(); + + // mic_speech_test(); + + mic_speech_and_gif_and_music_test(); ESP_GOTO(err); err: ESP_LOGI("app_main", "app_main error"); diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt index ee38ef7..2001a87 100644 --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt @@ -4,6 +4,7 @@ idf_component_register(SRCS "Bionic_sphere.c" "../test/audio_test/audio_test.c" # 测试用例 "../test/gif_displat_test/gif_test.c" # 测试用例 "../Util/general_err_handle/err_handle.c" # 错误处理库 + "../Util/tools/tools.c" # 工具库 "../Lib/I2C_Driver/I2C_Driver.c" # IIC底层驱动库 "../Lib/QMI8658/QMI8658.c" # IMU驱动库 "../Lib/BAT_Driver/BAT_Driver.c" # 电池adc驱动库 @@ -12,19 +13,22 @@ idf_component_register(SRCS "Bionic_sphere.c" "../Lib/PCF85063/PCF85063.c" # RTC驱动库 "../Lib/EXIO/TCA9554PWR.c" # IO拓展库 "../Lib/Audio_Driver/PCM5101.c" # 音频驱动库(播放) - "../Lib/Display/LCD_Driver/ST77916.c" - "../Lib/Display/LCD_Driver/esp_lcd_st77916/esp_lcd_st77916.c" - "../Lib/Display/LVGL_Driver/LVGL_Driver.c" - "../Lib/Display/LVGL_UI/LVGL_Music.c" - "../Lib/Display/LVGL_UI/LVGL_Example.c" - "../Lib/Display/Touch_Driver/CST816.c" - "../Lib/Display/Touch_Driver/esp_lcd_touch/esp_lcd_touch.c" + "../Lib/Display/LCD_Driver/ST77916.c" # LCD驱动库 + "../Lib/Display/LCD_Driver/esp_lcd_st77916/esp_lcd_st77916.c" # LCD驱动库 + "../Lib/Display/LVGL_Driver/LVGL_Driver.c" # LVGL驱动库 + "../Lib/Display/LVGL_UI/LVGL_Music.c" # LVGL UI库 + "../Lib/Display/LVGL_UI/LVGL_Example.c" # LVGL UI库 + "../Lib/Display/Touch_Driver/CST816.c" # 触摸屏驱动库 + "../Lib/Display/Touch_Driver/esp_lcd_touch/esp_lcd_touch.c" # 触摸屏驱动库 + "../Lib/PWR_Key/PWR_Key.c" # PWR按键驱动库 + "../Lib/MIC_Driver/MIC_Speech.c" # 录音驱动库 INCLUDE_DIRS "." "../test/driver_test" "../test/EXIO_Test" "../test/audio_test" "../test/gif_displat_test" "../Util/general_err_handle" + "../Util/tools" "../Lib/I2C_Driver" "../Lib/QMI8658" "../Lib/BAT_Driver" @@ -40,6 +44,8 @@ idf_component_register(SRCS "Bionic_sphere.c" "../Lib/Display/LVGL_UI" "../Lib/Display/Touch_Driver" "../Lib/Display/Touch_Driver/esp_lcd_touch" + "../Lib/PWR_Key" + "../Lib/MIC_Driver" PRIV_REQUIRES # 私有依赖 driver bt diff --git a/partitions.csv b/partitions.csv index e979119..8374a63 100644 --- a/partitions.csv +++ b/partitions.csv @@ -13,7 +13,7 @@ nvs, data, nvs, , 0x6000, otadata, data, ota, , 0x2000, phy_init, data, phy, , 0x1000, -ota_0, app, ota_0, , 6M, -ota_1, app, ota_1, , 6M, -storage, data, spiffs, , 3M, +ota_0, app, ota_0, , 4M, +ota_1, app, ota_1, , 4M, +model, data, , , 6000K coredump, data, coredump,, 64K, \ No newline at end of file diff --git a/sdkconfig b/sdkconfig index c883bd1..87cd8f7 100644 --- a/sdkconfig +++ b/sdkconfig @@ -546,7 +546,7 @@ CONFIG_AFE_INTERFACE_V1=y # CONFIG_USE_NSNET is not set CONFIG_USE_WAKENET=y # CONFIG_SR_WN_WN8_ALEXA is not set -CONFIG_SR_WN_WN9_HILEXIN=y +# CONFIG_SR_WN_WN9_HILEXIN is not set # CONFIG_SR_WN_WN9_XIAOAITONGXUE is not set # CONFIG_SR_WN_WN9_ALEXA is not set # CONFIG_SR_WN_WN9_HIESP is not set @@ -556,7 +556,7 @@ CONFIG_SR_WN_WN9_HILEXIN=y # CONFIG_SR_WN_WN9_COMPUTER_TTS is not set # CONFIG_SR_WN_WN9_HEYWILLOW_TTS is not set # CONFIG_SR_WN_WN9_SOPHIA_TTS is not set -# CONFIG_SR_WN_WN9_NIHAOXIAOXIN_TTS is not set +CONFIG_SR_WN_WN9_NIHAOXIAOXIN_TTS=y # CONFIG_SR_WN_WN9_XIAOMEITONGXUE_TTS is not set # CONFIG_SR_WN_WN9_HIXIAOXING_TTS is not set # CONFIG_SR_WN_WN9_MYCROFT_TTS is not set @@ -578,8 +578,8 @@ CONFIG_SR_WN_WN9_HILEXIN=y # CONFIG_SR_WN_LOAD_MULIT_WORD is not set CONFIG_USE_MULTINET=y # CONFIG_SR_MN_CN_NONE is not set -# CONFIG_SR_MN_CN_MULTINET5_RECOGNITION_QUANT8 is not set -CONFIG_SR_MN_CN_MULTINET6_QUANT=y +CONFIG_SR_MN_CN_MULTINET5_RECOGNITION_QUANT8=y +# CONFIG_SR_MN_CN_MULTINET6_QUANT is not set # CONFIG_SR_MN_CN_MULTINET6_AC_QUANT is not set # CONFIG_SR_MN_CN_MULTINET7_QUANT is not set # CONFIG_SR_MN_CN_MULTINET7_AC_QUANT is not set @@ -587,6 +587,211 @@ CONFIG_SR_MN_EN_NONE=y # CONFIG_SR_MN_EN_MULTINET5_SINGLE_RECOGNITION_QUANT8 is not set # CONFIG_SR_MN_EN_MULTINET6_QUANT is not set # CONFIG_SR_MN_EN_MULTINET7_QUANT is not set + +# +# Add Chinese speech commands +# +CONFIG_CN_SPEECH_COMMAND_ID0="da kai kong tiao" +CONFIG_CN_SPEECH_COMMAND_ID1="guan bi kong tiao" +CONFIG_CN_SPEECH_COMMAND_ID2="zeng da feng su" +CONFIG_CN_SPEECH_COMMAND_ID3="jian xiao feng su" +CONFIG_CN_SPEECH_COMMAND_ID4="sheng gao yi du" +CONFIG_CN_SPEECH_COMMAND_ID5="jiang di yi du" +CONFIG_CN_SPEECH_COMMAND_ID6="zhi re mo shi" +CONFIG_CN_SPEECH_COMMAND_ID7="zhi leng mo shi" +CONFIG_CN_SPEECH_COMMAND_ID8="song feng mo shi" +CONFIG_CN_SPEECH_COMMAND_ID9="jie neng mo shi" +CONFIG_CN_SPEECH_COMMAND_ID10="chu shi mo shi" +CONFIG_CN_SPEECH_COMMAND_ID11="jian kang mo shi" +CONFIG_CN_SPEECH_COMMAND_ID12="shui mian mo shi" +CONFIG_CN_SPEECH_COMMAND_ID13="da kai lan ya" +CONFIG_CN_SPEECH_COMMAND_ID14="guan bi lan ya" +CONFIG_CN_SPEECH_COMMAND_ID15="kai shi bo fang" +CONFIG_CN_SPEECH_COMMAND_ID16="zan ting bo fang" +CONFIG_CN_SPEECH_COMMAND_ID17="ding shi yi xiao shi" +CONFIG_CN_SPEECH_COMMAND_ID18="da kai dian deng" +CONFIG_CN_SPEECH_COMMAND_ID19="guan bi dian deng" +CONFIG_CN_SPEECH_COMMAND_ID20="" +CONFIG_CN_SPEECH_COMMAND_ID21="" +CONFIG_CN_SPEECH_COMMAND_ID22="" +CONFIG_CN_SPEECH_COMMAND_ID23="" +CONFIG_CN_SPEECH_COMMAND_ID24="" +CONFIG_CN_SPEECH_COMMAND_ID25="" +CONFIG_CN_SPEECH_COMMAND_ID26="" +CONFIG_CN_SPEECH_COMMAND_ID27="" +CONFIG_CN_SPEECH_COMMAND_ID28="" +CONFIG_CN_SPEECH_COMMAND_ID29="" +CONFIG_CN_SPEECH_COMMAND_ID30="" +CONFIG_CN_SPEECH_COMMAND_ID31="" +CONFIG_CN_SPEECH_COMMAND_ID32="" +CONFIG_CN_SPEECH_COMMAND_ID33="" +CONFIG_CN_SPEECH_COMMAND_ID34="" +CONFIG_CN_SPEECH_COMMAND_ID35="" +CONFIG_CN_SPEECH_COMMAND_ID36="" +CONFIG_CN_SPEECH_COMMAND_ID37="" +CONFIG_CN_SPEECH_COMMAND_ID38="" +CONFIG_CN_SPEECH_COMMAND_ID39="" +CONFIG_CN_SPEECH_COMMAND_ID40="" +CONFIG_CN_SPEECH_COMMAND_ID41="" +CONFIG_CN_SPEECH_COMMAND_ID42="" +CONFIG_CN_SPEECH_COMMAND_ID43="" +CONFIG_CN_SPEECH_COMMAND_ID44="" +CONFIG_CN_SPEECH_COMMAND_ID45="" +CONFIG_CN_SPEECH_COMMAND_ID46="" +CONFIG_CN_SPEECH_COMMAND_ID47="" +CONFIG_CN_SPEECH_COMMAND_ID48="" +CONFIG_CN_SPEECH_COMMAND_ID49="" +CONFIG_CN_SPEECH_COMMAND_ID50="" +CONFIG_CN_SPEECH_COMMAND_ID51="" +CONFIG_CN_SPEECH_COMMAND_ID52="" +CONFIG_CN_SPEECH_COMMAND_ID53="" +CONFIG_CN_SPEECH_COMMAND_ID54="" +CONFIG_CN_SPEECH_COMMAND_ID55="" +CONFIG_CN_SPEECH_COMMAND_ID56="" +CONFIG_CN_SPEECH_COMMAND_ID57="" +CONFIG_CN_SPEECH_COMMAND_ID58="" +CONFIG_CN_SPEECH_COMMAND_ID59="" +CONFIG_CN_SPEECH_COMMAND_ID60="" +CONFIG_CN_SPEECH_COMMAND_ID61="" +CONFIG_CN_SPEECH_COMMAND_ID62="" +CONFIG_CN_SPEECH_COMMAND_ID63="" +CONFIG_CN_SPEECH_COMMAND_ID64="" +CONFIG_CN_SPEECH_COMMAND_ID65="" +CONFIG_CN_SPEECH_COMMAND_ID66="" +CONFIG_CN_SPEECH_COMMAND_ID67="" +CONFIG_CN_SPEECH_COMMAND_ID68="" +CONFIG_CN_SPEECH_COMMAND_ID69="" +CONFIG_CN_SPEECH_COMMAND_ID70="" +CONFIG_CN_SPEECH_COMMAND_ID71="" +CONFIG_CN_SPEECH_COMMAND_ID72="" +CONFIG_CN_SPEECH_COMMAND_ID73="" +CONFIG_CN_SPEECH_COMMAND_ID74="" +CONFIG_CN_SPEECH_COMMAND_ID75="" +CONFIG_CN_SPEECH_COMMAND_ID76="" +CONFIG_CN_SPEECH_COMMAND_ID77="" +CONFIG_CN_SPEECH_COMMAND_ID78="" +CONFIG_CN_SPEECH_COMMAND_ID79="" +CONFIG_CN_SPEECH_COMMAND_ID80="" +CONFIG_CN_SPEECH_COMMAND_ID81="" +CONFIG_CN_SPEECH_COMMAND_ID82="" +CONFIG_CN_SPEECH_COMMAND_ID83="" +CONFIG_CN_SPEECH_COMMAND_ID84="" +CONFIG_CN_SPEECH_COMMAND_ID85="" +CONFIG_CN_SPEECH_COMMAND_ID86="" +CONFIG_CN_SPEECH_COMMAND_ID87="" +CONFIG_CN_SPEECH_COMMAND_ID88="" +CONFIG_CN_SPEECH_COMMAND_ID89="" +CONFIG_CN_SPEECH_COMMAND_ID90="" +CONFIG_CN_SPEECH_COMMAND_ID91="" +CONFIG_CN_SPEECH_COMMAND_ID92="" +CONFIG_CN_SPEECH_COMMAND_ID93="" +CONFIG_CN_SPEECH_COMMAND_ID94="" +CONFIG_CN_SPEECH_COMMAND_ID95="" +CONFIG_CN_SPEECH_COMMAND_ID96="" +CONFIG_CN_SPEECH_COMMAND_ID97="" +CONFIG_CN_SPEECH_COMMAND_ID98="" +CONFIG_CN_SPEECH_COMMAND_ID99="" +CONFIG_CN_SPEECH_COMMAND_ID100="" +CONFIG_CN_SPEECH_COMMAND_ID101="" +CONFIG_CN_SPEECH_COMMAND_ID102="" +CONFIG_CN_SPEECH_COMMAND_ID103="" +CONFIG_CN_SPEECH_COMMAND_ID104="" +CONFIG_CN_SPEECH_COMMAND_ID105="" +CONFIG_CN_SPEECH_COMMAND_ID106="" +CONFIG_CN_SPEECH_COMMAND_ID107="" +CONFIG_CN_SPEECH_COMMAND_ID108="" +CONFIG_CN_SPEECH_COMMAND_ID109="" +CONFIG_CN_SPEECH_COMMAND_ID110="" +CONFIG_CN_SPEECH_COMMAND_ID111="" +CONFIG_CN_SPEECH_COMMAND_ID112="" +CONFIG_CN_SPEECH_COMMAND_ID113="" +CONFIG_CN_SPEECH_COMMAND_ID114="" +CONFIG_CN_SPEECH_COMMAND_ID115="" +CONFIG_CN_SPEECH_COMMAND_ID116="" +CONFIG_CN_SPEECH_COMMAND_ID117="" +CONFIG_CN_SPEECH_COMMAND_ID118="" +CONFIG_CN_SPEECH_COMMAND_ID119="" +CONFIG_CN_SPEECH_COMMAND_ID120="" +CONFIG_CN_SPEECH_COMMAND_ID121="" +CONFIG_CN_SPEECH_COMMAND_ID122="" +CONFIG_CN_SPEECH_COMMAND_ID123="" +CONFIG_CN_SPEECH_COMMAND_ID124="" +CONFIG_CN_SPEECH_COMMAND_ID125="" +CONFIG_CN_SPEECH_COMMAND_ID126="" +CONFIG_CN_SPEECH_COMMAND_ID127="" +CONFIG_CN_SPEECH_COMMAND_ID128="" +CONFIG_CN_SPEECH_COMMAND_ID129="" +CONFIG_CN_SPEECH_COMMAND_ID130="" +CONFIG_CN_SPEECH_COMMAND_ID131="" +CONFIG_CN_SPEECH_COMMAND_ID132="" +CONFIG_CN_SPEECH_COMMAND_ID133="" +CONFIG_CN_SPEECH_COMMAND_ID134="" +CONFIG_CN_SPEECH_COMMAND_ID135="" +CONFIG_CN_SPEECH_COMMAND_ID136="" +CONFIG_CN_SPEECH_COMMAND_ID137="" +CONFIG_CN_SPEECH_COMMAND_ID138="" +CONFIG_CN_SPEECH_COMMAND_ID139="" +CONFIG_CN_SPEECH_COMMAND_ID140="" +CONFIG_CN_SPEECH_COMMAND_ID141="" +CONFIG_CN_SPEECH_COMMAND_ID142="" +CONFIG_CN_SPEECH_COMMAND_ID143="" +CONFIG_CN_SPEECH_COMMAND_ID144="" +CONFIG_CN_SPEECH_COMMAND_ID145="" +CONFIG_CN_SPEECH_COMMAND_ID146="" +CONFIG_CN_SPEECH_COMMAND_ID147="" +CONFIG_CN_SPEECH_COMMAND_ID148="" +CONFIG_CN_SPEECH_COMMAND_ID149="" +CONFIG_CN_SPEECH_COMMAND_ID150="" +CONFIG_CN_SPEECH_COMMAND_ID151="" +CONFIG_CN_SPEECH_COMMAND_ID152="" +CONFIG_CN_SPEECH_COMMAND_ID153="" +CONFIG_CN_SPEECH_COMMAND_ID154="" +CONFIG_CN_SPEECH_COMMAND_ID155="" +CONFIG_CN_SPEECH_COMMAND_ID156="" +CONFIG_CN_SPEECH_COMMAND_ID157="" +CONFIG_CN_SPEECH_COMMAND_ID158="" +CONFIG_CN_SPEECH_COMMAND_ID159="" +CONFIG_CN_SPEECH_COMMAND_ID160="" +CONFIG_CN_SPEECH_COMMAND_ID161="" +CONFIG_CN_SPEECH_COMMAND_ID162="" +CONFIG_CN_SPEECH_COMMAND_ID163="" +CONFIG_CN_SPEECH_COMMAND_ID164="" +CONFIG_CN_SPEECH_COMMAND_ID165="" +CONFIG_CN_SPEECH_COMMAND_ID166="" +CONFIG_CN_SPEECH_COMMAND_ID167="" +CONFIG_CN_SPEECH_COMMAND_ID168="" +CONFIG_CN_SPEECH_COMMAND_ID169="" +CONFIG_CN_SPEECH_COMMAND_ID170="" +CONFIG_CN_SPEECH_COMMAND_ID171="" +CONFIG_CN_SPEECH_COMMAND_ID172="" +CONFIG_CN_SPEECH_COMMAND_ID173="" +CONFIG_CN_SPEECH_COMMAND_ID174="" +CONFIG_CN_SPEECH_COMMAND_ID175="" +CONFIG_CN_SPEECH_COMMAND_ID176="" +CONFIG_CN_SPEECH_COMMAND_ID177="" +CONFIG_CN_SPEECH_COMMAND_ID178="" +CONFIG_CN_SPEECH_COMMAND_ID179="" +CONFIG_CN_SPEECH_COMMAND_ID180="" +CONFIG_CN_SPEECH_COMMAND_ID181="" +CONFIG_CN_SPEECH_COMMAND_ID182="" +CONFIG_CN_SPEECH_COMMAND_ID183="" +CONFIG_CN_SPEECH_COMMAND_ID184="" +CONFIG_CN_SPEECH_COMMAND_ID185="" +CONFIG_CN_SPEECH_COMMAND_ID186="" +CONFIG_CN_SPEECH_COMMAND_ID187="" +CONFIG_CN_SPEECH_COMMAND_ID188="" +CONFIG_CN_SPEECH_COMMAND_ID189="" +CONFIG_CN_SPEECH_COMMAND_ID190="" +CONFIG_CN_SPEECH_COMMAND_ID191="" +CONFIG_CN_SPEECH_COMMAND_ID192="" +CONFIG_CN_SPEECH_COMMAND_ID193="" +CONFIG_CN_SPEECH_COMMAND_ID194="" +CONFIG_CN_SPEECH_COMMAND_ID195="" +CONFIG_CN_SPEECH_COMMAND_ID196="" +CONFIG_CN_SPEECH_COMMAND_ID197="" +CONFIG_CN_SPEECH_COMMAND_ID198="" +CONFIG_CN_SPEECH_COMMAND_ID199="" +# end of Add Chinese speech commands # end of ESP Speech Recognition # @@ -2549,7 +2754,16 @@ CONFIG_LV_ASSERT_HANDLER_INCLUDE="assert.h" # # Others # -# CONFIG_LV_USE_PERF_MONITOR is not set +CONFIG_LV_USE_PERF_MONITOR=y +# CONFIG_LV_PERF_MONITOR_ALIGN_TOP_LEFT is not set +# CONFIG_LV_PERF_MONITOR_ALIGN_TOP_MID is not set +# CONFIG_LV_PERF_MONITOR_ALIGN_TOP_RIGHT is not set +# CONFIG_LV_PERF_MONITOR_ALIGN_BOTTOM_LEFT is not set +# CONFIG_LV_PERF_MONITOR_ALIGN_BOTTOM_MID is not set +# CONFIG_LV_PERF_MONITOR_ALIGN_BOTTOM_RIGHT is not set +# CONFIG_LV_PERF_MONITOR_ALIGN_LEFT_MID is not set +# CONFIG_LV_PERF_MONITOR_ALIGN_RIGHT_MID is not set +CONFIG_LV_PERF_MONITOR_ALIGN_CENTER=y # CONFIG_LV_USE_REFR_DEBUG is not set # CONFIG_LV_SPRINTF_CUSTOM is not set # CONFIG_LV_SPRINTF_USE_FLOAT is not set diff --git a/sdkconfig.old b/sdkconfig.old index 148dfc7..60f097c 100644 --- a/sdkconfig.old +++ b/sdkconfig.old @@ -544,42 +544,11 @@ CONFIG_MODEL_IN_FLASH=y CONFIG_USE_AFE=y CONFIG_AFE_INTERFACE_V1=y # CONFIG_USE_NSNET is not set -CONFIG_USE_WAKENET=y -# CONFIG_SR_WN_WN8_ALEXA is not set -CONFIG_SR_WN_WN9_HILEXIN=y -# CONFIG_SR_WN_WN9_XIAOAITONGXUE is not set -# CONFIG_SR_WN_WN9_ALEXA is not set -# CONFIG_SR_WN_WN9_HIESP is not set -# CONFIG_SR_WN_WN9_HIMFIVE is not set -# CONFIG_SR_WN_WN9_NIHAOXIAOZHI_TTS is not set -# CONFIG_SR_WN_WN9_JARVIS_TTS is not set -# CONFIG_SR_WN_WN9_COMPUTER_TTS is not set -# CONFIG_SR_WN_WN9_HEYWILLOW_TTS is not set -# CONFIG_SR_WN_WN9_SOPHIA_TTS is not set -# CONFIG_SR_WN_WN9_NIHAOXIAOXIN_TTS is not set -# CONFIG_SR_WN_WN9_XIAOMEITONGXUE_TTS is not set -# CONFIG_SR_WN_WN9_HIXIAOXING_TTS is not set -# CONFIG_SR_WN_WN9_MYCROFT_TTS is not set -# CONFIG_SR_WN_WN9_HEYPRINTER_TTS is not set -# CONFIG_SR_WN_WN9_XIAOLONGXIAOLONG_TTS is not set -# CONFIG_SR_WN_WN9_MIAOMIAOTONGXUE_TTS is not set -# CONFIG_SR_WN_WN9_HIJOY_TTS is not set -# CONFIG_SR_WN_WN9_HILILI_TTS is not set -# CONFIG_SR_WN_WN9_HITELLY_TTS is not set -# CONFIG_SR_WN_WN9_HEYWANDA_TTS is not set -# CONFIG_SR_WN_WN9_HIMIAOMIAO_TTS is not set -# CONFIG_SR_WN_WN9_XIAOBINXIAOBIN_TTS is not set -# CONFIG_SR_WN_WN9_HAIXIAOWU_TTS is not set -# CONFIG_SR_WN_WN9_ASTROLABE_TTS is not set -# CONFIG_SR_WN_WN9_XIAOYAXIAOYA_TTS2 is not set -# CONFIG_SR_WN_WN9_HIJASON_TTS2 is not set -# CONFIG_SR_WN_WN9_LINAIBAN_TTS2 is not set -# CONFIG_SR_WN_WN9_CUSTOMWORD is not set -# CONFIG_SR_WN_LOAD_MULIT_WORD is not set +# CONFIG_USE_WAKENET is not set CONFIG_USE_MULTINET=y # CONFIG_SR_MN_CN_NONE is not set -# CONFIG_SR_MN_CN_MULTINET5_RECOGNITION_QUANT8 is not set -CONFIG_SR_MN_CN_MULTINET6_QUANT=y +CONFIG_SR_MN_CN_MULTINET5_RECOGNITION_QUANT8=y +# CONFIG_SR_MN_CN_MULTINET6_QUANT is not set # CONFIG_SR_MN_CN_MULTINET6_AC_QUANT is not set # CONFIG_SR_MN_CN_MULTINET7_QUANT is not set # CONFIG_SR_MN_CN_MULTINET7_AC_QUANT is not set @@ -587,6 +556,211 @@ CONFIG_SR_MN_EN_NONE=y # CONFIG_SR_MN_EN_MULTINET5_SINGLE_RECOGNITION_QUANT8 is not set # CONFIG_SR_MN_EN_MULTINET6_QUANT is not set # CONFIG_SR_MN_EN_MULTINET7_QUANT is not set + +# +# Add Chinese speech commands +# +CONFIG_CN_SPEECH_COMMAND_ID0="da kai kong tiao" +CONFIG_CN_SPEECH_COMMAND_ID1="guan bi kong tiao" +CONFIG_CN_SPEECH_COMMAND_ID2="zeng da feng su" +CONFIG_CN_SPEECH_COMMAND_ID3="jian xiao feng su" +CONFIG_CN_SPEECH_COMMAND_ID4="sheng gao yi du" +CONFIG_CN_SPEECH_COMMAND_ID5="jiang di yi du" +CONFIG_CN_SPEECH_COMMAND_ID6="zhi re mo shi" +CONFIG_CN_SPEECH_COMMAND_ID7="zhi leng mo shi" +CONFIG_CN_SPEECH_COMMAND_ID8="song feng mo shi" +CONFIG_CN_SPEECH_COMMAND_ID9="jie neng mo shi" +CONFIG_CN_SPEECH_COMMAND_ID10="chu shi mo shi" +CONFIG_CN_SPEECH_COMMAND_ID11="jian kang mo shi" +CONFIG_CN_SPEECH_COMMAND_ID12="shui mian mo shi" +CONFIG_CN_SPEECH_COMMAND_ID13="da kai lan ya" +CONFIG_CN_SPEECH_COMMAND_ID14="guan bi lan ya" +CONFIG_CN_SPEECH_COMMAND_ID15="kai shi bo fang" +CONFIG_CN_SPEECH_COMMAND_ID16="zan ting bo fang" +CONFIG_CN_SPEECH_COMMAND_ID17="ding shi yi xiao shi" +CONFIG_CN_SPEECH_COMMAND_ID18="da kai dian deng" +CONFIG_CN_SPEECH_COMMAND_ID19="guan bi dian deng" +CONFIG_CN_SPEECH_COMMAND_ID20="" +CONFIG_CN_SPEECH_COMMAND_ID21="" +CONFIG_CN_SPEECH_COMMAND_ID22="" +CONFIG_CN_SPEECH_COMMAND_ID23="" +CONFIG_CN_SPEECH_COMMAND_ID24="" +CONFIG_CN_SPEECH_COMMAND_ID25="" +CONFIG_CN_SPEECH_COMMAND_ID26="" +CONFIG_CN_SPEECH_COMMAND_ID27="" +CONFIG_CN_SPEECH_COMMAND_ID28="" +CONFIG_CN_SPEECH_COMMAND_ID29="" +CONFIG_CN_SPEECH_COMMAND_ID30="" +CONFIG_CN_SPEECH_COMMAND_ID31="" +CONFIG_CN_SPEECH_COMMAND_ID32="" +CONFIG_CN_SPEECH_COMMAND_ID33="" +CONFIG_CN_SPEECH_COMMAND_ID34="" +CONFIG_CN_SPEECH_COMMAND_ID35="" +CONFIG_CN_SPEECH_COMMAND_ID36="" +CONFIG_CN_SPEECH_COMMAND_ID37="" +CONFIG_CN_SPEECH_COMMAND_ID38="" +CONFIG_CN_SPEECH_COMMAND_ID39="" +CONFIG_CN_SPEECH_COMMAND_ID40="" +CONFIG_CN_SPEECH_COMMAND_ID41="" +CONFIG_CN_SPEECH_COMMAND_ID42="" +CONFIG_CN_SPEECH_COMMAND_ID43="" +CONFIG_CN_SPEECH_COMMAND_ID44="" +CONFIG_CN_SPEECH_COMMAND_ID45="" +CONFIG_CN_SPEECH_COMMAND_ID46="" +CONFIG_CN_SPEECH_COMMAND_ID47="" +CONFIG_CN_SPEECH_COMMAND_ID48="" +CONFIG_CN_SPEECH_COMMAND_ID49="" +CONFIG_CN_SPEECH_COMMAND_ID50="" +CONFIG_CN_SPEECH_COMMAND_ID51="" +CONFIG_CN_SPEECH_COMMAND_ID52="" +CONFIG_CN_SPEECH_COMMAND_ID53="" +CONFIG_CN_SPEECH_COMMAND_ID54="" +CONFIG_CN_SPEECH_COMMAND_ID55="" +CONFIG_CN_SPEECH_COMMAND_ID56="" +CONFIG_CN_SPEECH_COMMAND_ID57="" +CONFIG_CN_SPEECH_COMMAND_ID58="" +CONFIG_CN_SPEECH_COMMAND_ID59="" +CONFIG_CN_SPEECH_COMMAND_ID60="" +CONFIG_CN_SPEECH_COMMAND_ID61="" +CONFIG_CN_SPEECH_COMMAND_ID62="" +CONFIG_CN_SPEECH_COMMAND_ID63="" +CONFIG_CN_SPEECH_COMMAND_ID64="" +CONFIG_CN_SPEECH_COMMAND_ID65="" +CONFIG_CN_SPEECH_COMMAND_ID66="" +CONFIG_CN_SPEECH_COMMAND_ID67="" +CONFIG_CN_SPEECH_COMMAND_ID68="" +CONFIG_CN_SPEECH_COMMAND_ID69="" +CONFIG_CN_SPEECH_COMMAND_ID70="" +CONFIG_CN_SPEECH_COMMAND_ID71="" +CONFIG_CN_SPEECH_COMMAND_ID72="" +CONFIG_CN_SPEECH_COMMAND_ID73="" +CONFIG_CN_SPEECH_COMMAND_ID74="" +CONFIG_CN_SPEECH_COMMAND_ID75="" +CONFIG_CN_SPEECH_COMMAND_ID76="" +CONFIG_CN_SPEECH_COMMAND_ID77="" +CONFIG_CN_SPEECH_COMMAND_ID78="" +CONFIG_CN_SPEECH_COMMAND_ID79="" +CONFIG_CN_SPEECH_COMMAND_ID80="" +CONFIG_CN_SPEECH_COMMAND_ID81="" +CONFIG_CN_SPEECH_COMMAND_ID82="" +CONFIG_CN_SPEECH_COMMAND_ID83="" +CONFIG_CN_SPEECH_COMMAND_ID84="" +CONFIG_CN_SPEECH_COMMAND_ID85="" +CONFIG_CN_SPEECH_COMMAND_ID86="" +CONFIG_CN_SPEECH_COMMAND_ID87="" +CONFIG_CN_SPEECH_COMMAND_ID88="" +CONFIG_CN_SPEECH_COMMAND_ID89="" +CONFIG_CN_SPEECH_COMMAND_ID90="" +CONFIG_CN_SPEECH_COMMAND_ID91="" +CONFIG_CN_SPEECH_COMMAND_ID92="" +CONFIG_CN_SPEECH_COMMAND_ID93="" +CONFIG_CN_SPEECH_COMMAND_ID94="" +CONFIG_CN_SPEECH_COMMAND_ID95="" +CONFIG_CN_SPEECH_COMMAND_ID96="" +CONFIG_CN_SPEECH_COMMAND_ID97="" +CONFIG_CN_SPEECH_COMMAND_ID98="" +CONFIG_CN_SPEECH_COMMAND_ID99="" +CONFIG_CN_SPEECH_COMMAND_ID100="" +CONFIG_CN_SPEECH_COMMAND_ID101="" +CONFIG_CN_SPEECH_COMMAND_ID102="" +CONFIG_CN_SPEECH_COMMAND_ID103="" +CONFIG_CN_SPEECH_COMMAND_ID104="" +CONFIG_CN_SPEECH_COMMAND_ID105="" +CONFIG_CN_SPEECH_COMMAND_ID106="" +CONFIG_CN_SPEECH_COMMAND_ID107="" +CONFIG_CN_SPEECH_COMMAND_ID108="" +CONFIG_CN_SPEECH_COMMAND_ID109="" +CONFIG_CN_SPEECH_COMMAND_ID110="" +CONFIG_CN_SPEECH_COMMAND_ID111="" +CONFIG_CN_SPEECH_COMMAND_ID112="" +CONFIG_CN_SPEECH_COMMAND_ID113="" +CONFIG_CN_SPEECH_COMMAND_ID114="" +CONFIG_CN_SPEECH_COMMAND_ID115="" +CONFIG_CN_SPEECH_COMMAND_ID116="" +CONFIG_CN_SPEECH_COMMAND_ID117="" +CONFIG_CN_SPEECH_COMMAND_ID118="" +CONFIG_CN_SPEECH_COMMAND_ID119="" +CONFIG_CN_SPEECH_COMMAND_ID120="" +CONFIG_CN_SPEECH_COMMAND_ID121="" +CONFIG_CN_SPEECH_COMMAND_ID122="" +CONFIG_CN_SPEECH_COMMAND_ID123="" +CONFIG_CN_SPEECH_COMMAND_ID124="" +CONFIG_CN_SPEECH_COMMAND_ID125="" +CONFIG_CN_SPEECH_COMMAND_ID126="" +CONFIG_CN_SPEECH_COMMAND_ID127="" +CONFIG_CN_SPEECH_COMMAND_ID128="" +CONFIG_CN_SPEECH_COMMAND_ID129="" +CONFIG_CN_SPEECH_COMMAND_ID130="" +CONFIG_CN_SPEECH_COMMAND_ID131="" +CONFIG_CN_SPEECH_COMMAND_ID132="" +CONFIG_CN_SPEECH_COMMAND_ID133="" +CONFIG_CN_SPEECH_COMMAND_ID134="" +CONFIG_CN_SPEECH_COMMAND_ID135="" +CONFIG_CN_SPEECH_COMMAND_ID136="" +CONFIG_CN_SPEECH_COMMAND_ID137="" +CONFIG_CN_SPEECH_COMMAND_ID138="" +CONFIG_CN_SPEECH_COMMAND_ID139="" +CONFIG_CN_SPEECH_COMMAND_ID140="" +CONFIG_CN_SPEECH_COMMAND_ID141="" +CONFIG_CN_SPEECH_COMMAND_ID142="" +CONFIG_CN_SPEECH_COMMAND_ID143="" +CONFIG_CN_SPEECH_COMMAND_ID144="" +CONFIG_CN_SPEECH_COMMAND_ID145="" +CONFIG_CN_SPEECH_COMMAND_ID146="" +CONFIG_CN_SPEECH_COMMAND_ID147="" +CONFIG_CN_SPEECH_COMMAND_ID148="" +CONFIG_CN_SPEECH_COMMAND_ID149="" +CONFIG_CN_SPEECH_COMMAND_ID150="" +CONFIG_CN_SPEECH_COMMAND_ID151="" +CONFIG_CN_SPEECH_COMMAND_ID152="" +CONFIG_CN_SPEECH_COMMAND_ID153="" +CONFIG_CN_SPEECH_COMMAND_ID154="" +CONFIG_CN_SPEECH_COMMAND_ID155="" +CONFIG_CN_SPEECH_COMMAND_ID156="" +CONFIG_CN_SPEECH_COMMAND_ID157="" +CONFIG_CN_SPEECH_COMMAND_ID158="" +CONFIG_CN_SPEECH_COMMAND_ID159="" +CONFIG_CN_SPEECH_COMMAND_ID160="" +CONFIG_CN_SPEECH_COMMAND_ID161="" +CONFIG_CN_SPEECH_COMMAND_ID162="" +CONFIG_CN_SPEECH_COMMAND_ID163="" +CONFIG_CN_SPEECH_COMMAND_ID164="" +CONFIG_CN_SPEECH_COMMAND_ID165="" +CONFIG_CN_SPEECH_COMMAND_ID166="" +CONFIG_CN_SPEECH_COMMAND_ID167="" +CONFIG_CN_SPEECH_COMMAND_ID168="" +CONFIG_CN_SPEECH_COMMAND_ID169="" +CONFIG_CN_SPEECH_COMMAND_ID170="" +CONFIG_CN_SPEECH_COMMAND_ID171="" +CONFIG_CN_SPEECH_COMMAND_ID172="" +CONFIG_CN_SPEECH_COMMAND_ID173="" +CONFIG_CN_SPEECH_COMMAND_ID174="" +CONFIG_CN_SPEECH_COMMAND_ID175="" +CONFIG_CN_SPEECH_COMMAND_ID176="" +CONFIG_CN_SPEECH_COMMAND_ID177="" +CONFIG_CN_SPEECH_COMMAND_ID178="" +CONFIG_CN_SPEECH_COMMAND_ID179="" +CONFIG_CN_SPEECH_COMMAND_ID180="" +CONFIG_CN_SPEECH_COMMAND_ID181="" +CONFIG_CN_SPEECH_COMMAND_ID182="" +CONFIG_CN_SPEECH_COMMAND_ID183="" +CONFIG_CN_SPEECH_COMMAND_ID184="" +CONFIG_CN_SPEECH_COMMAND_ID185="" +CONFIG_CN_SPEECH_COMMAND_ID186="" +CONFIG_CN_SPEECH_COMMAND_ID187="" +CONFIG_CN_SPEECH_COMMAND_ID188="" +CONFIG_CN_SPEECH_COMMAND_ID189="" +CONFIG_CN_SPEECH_COMMAND_ID190="" +CONFIG_CN_SPEECH_COMMAND_ID191="" +CONFIG_CN_SPEECH_COMMAND_ID192="" +CONFIG_CN_SPEECH_COMMAND_ID193="" +CONFIG_CN_SPEECH_COMMAND_ID194="" +CONFIG_CN_SPEECH_COMMAND_ID195="" +CONFIG_CN_SPEECH_COMMAND_ID196="" +CONFIG_CN_SPEECH_COMMAND_ID197="" +CONFIG_CN_SPEECH_COMMAND_ID198="" +CONFIG_CN_SPEECH_COMMAND_ID199="" +# end of Add Chinese speech commands # end of ESP Speech Recognition # @@ -2484,9 +2658,8 @@ CONFIG_LV_COLOR_CHROMA_KEY_HEX=0x00FF00 # # Memory settings # -# CONFIG_LV_MEM_CUSTOM is not set -CONFIG_LV_MEM_SIZE_KILOBYTES=128 -CONFIG_LV_MEM_ADDR=0x0 +CONFIG_LV_MEM_CUSTOM=y +CONFIG_LV_MEM_CUSTOM_INCLUDE="stdlib.h" CONFIG_LV_MEM_BUF_MAX_NUM=16 # CONFIG_LV_MEMCPY_MEMSET_STD is not set # end of Memory settings @@ -2550,8 +2723,16 @@ CONFIG_LV_ASSERT_HANDLER_INCLUDE="assert.h" # # Others # -# CONFIG_LV_USE_PERF_MONITOR is not set -# CONFIG_LV_USE_MEM_MONITOR is not set +CONFIG_LV_USE_PERF_MONITOR=y +# CONFIG_LV_PERF_MONITOR_ALIGN_TOP_LEFT is not set +# CONFIG_LV_PERF_MONITOR_ALIGN_TOP_MID is not set +# CONFIG_LV_PERF_MONITOR_ALIGN_TOP_RIGHT is not set +# CONFIG_LV_PERF_MONITOR_ALIGN_BOTTOM_LEFT is not set +# CONFIG_LV_PERF_MONITOR_ALIGN_BOTTOM_MID is not set +# CONFIG_LV_PERF_MONITOR_ALIGN_BOTTOM_RIGHT is not set +# CONFIG_LV_PERF_MONITOR_ALIGN_LEFT_MID is not set +# CONFIG_LV_PERF_MONITOR_ALIGN_RIGHT_MID is not set +CONFIG_LV_PERF_MONITOR_ALIGN_CENTER=y # CONFIG_LV_USE_REFR_DEBUG is not set # CONFIG_LV_SPRINTF_CUSTOM is not set # CONFIG_LV_SPRINTF_USE_FLOAT is not set diff --git a/test/audio_test/audio_test.c b/test/audio_test/audio_test.c index b539086..1733965 100644 --- a/test/audio_test/audio_test.c +++ b/test/audio_test/audio_test.c @@ -100,12 +100,13 @@ void test_play_one(const char *dir, const char *file) Music_pause(); ESP_LOGI(TEST_TAG, "测试结束,停止播放"); } - +#include "tools.h" /*------------------------------------------------- * 测试入口 *------------------------------------------------*/ void run_audio_test(void) { + create_print_sys_memory_task(); /* 1. 初始化外设 */ ESP_LOGI(TEST_TAG, "=== 音频测试开始 ==="); SD_Init(); // 挂载 SD 卡 diff --git a/test/driver_test/drivers_test.c b/test/driver_test/drivers_test.c index 4c0bf75..cbd5f01 100644 --- a/test/driver_test/drivers_test.c +++ b/test/driver_test/drivers_test.c @@ -3,7 +3,7 @@ // #include - +#include "tools.h" #include "I2C_Driver.h" #include "QMI8658.h" @@ -249,4 +249,79 @@ void lcd_touch_lvgl_test(void) void gif_test(void) { gif_display_test(); +} + + +#include "PWR_Key.h" +static void pwr_task(void *arg) +{ + while (true) { + PWR_Loop(); // 电源键扫描 + vTaskDelay(pdMS_TO_TICKS(100)); // 让出 CPU,防止 WDT + } +} +void pwr_key_test(void) +{ + ESP_LOGI("PWR_KEY_TEST", "正在创建内存使用信息打印任务"); + create_print_sys_memory_task(); + + PWR_Init(); // 电源键初始化 + I2C_Init(); + LCD_Init(); // 屏幕初始化 + LVGL_Init(); + + + /* 创建独立任务 */ + xTaskCreate(pwr_task, "pwr_task", 2048, NULL, 5, NULL); + + /* 主任务到这里就可以退出,进入 idle,WDT 不会再触发 */ + ESP_LOGI("PWR_KEY_TEST", "pwr_key_test task created"); + + while (1) { + // raise the task priority of LVGL and/or reduce the handler period can improve the performance + vTaskDelay(pdMS_TO_TICKS(10)); + // The task running lv_timer_handler should have lower priority than that running `lv_tick_inc` + lv_timer_handler(); + } +} + + +#include "MIC_Speech.h" +void mic_speech_test(void) +{ + I2C_Init(); + LCD_Init(); // 屏幕初始化 + SD_Init(); // 初始化 SD 卡以方便读出模型文件 + LVGL_Init(); + MIC_Speech_init(); + + + while (1) { + print_sys_memory(); + // raise the task priority of LVGL and/or reduce the handler period can improve the performance + vTaskDelay(pdMS_TO_TICKS(100)); + // The task running lv_timer_handler should have lower priority than that running `lv_tick_inc` + lv_timer_handler(); + } + +} + + +void mic_speech_and_gif_and_music_test(void) +{ + I2C_Init(); + LCD_Init(); // 屏幕初始化 + SD_Init(); // 初始化 SD 卡以方便读出模型文件 + LVGL_Init(); + gif_display_test_1(); + MIC_Speech_init(); + + + while (1) { + print_sys_memory(); + // raise the task priority of LVGL and/or reduce the handler period can improve the performance + vTaskDelay(pdMS_TO_TICKS(100)); + // The task running lv_timer_handler should have lower priority than that running `lv_tick_inc` + lv_timer_handler(); + } } \ No newline at end of file diff --git a/test/driver_test/drivers_test.h b/test/driver_test/drivers_test.h index 702ee6c..7ec07ca 100644 --- a/test/driver_test/drivers_test.h +++ b/test/driver_test/drivers_test.h @@ -32,5 +32,14 @@ void lcd_touch_lvgl_test(void); // GIF测试 void gif_test(void); +// PWR按键测试 +void pwr_key_test(void); + +// 语音识别测试 +void mic_speech_test(void); + +// 语音识别+GIF+音乐测试 +void mic_speech_and_gif_and_music_test(void); + #endif //BIONIC_SPHERE_DRIVERS_TEST_H \ No newline at end of file diff --git a/test/gif_displat_test/gif_test.c b/test/gif_displat_test/gif_test.c index a7213d4..50aaf1a 100644 --- a/test/gif_displat_test/gif_test.c +++ b/test/gif_displat_test/gif_test.c @@ -7,6 +7,7 @@ #include "SD_MMC.h" #include "I2C_Driver.h" #include "ST77916.h" +#include "tools.h" #include static const char *tTAG = "GIF_TEST"; @@ -153,6 +154,9 @@ void gif_display_test(void) { ESP_LOGI(tTAG, "======== GIF 显示测试开始 ========"); + ESP_LOGI(tTAG, "1. 创建系统内存打印任务..."); + create_print_sys_memory_task(); + /* 1. 初始化 SD 卡 */ ESP_LOGI(tTAG, "1. 初始化 SD 卡..."); SD_Init(); // 你的挂载函数 @@ -175,4 +179,10 @@ void gif_display_test(void) vTaskDelay(pdMS_TO_TICKS(10)); lv_timer_handler(); } +} + +void gif_display_test_1(void) { + ESP_LOGI(tTAG, "3. 开始显示 GIF..."); + + red_gif_test(); } \ No newline at end of file diff --git a/test/gif_displat_test/gif_test.h b/test/gif_displat_test/gif_test.h index 442845f..94ebf59 100644 --- a/test/gif_displat_test/gif_test.h +++ b/test/gif_displat_test/gif_test.h @@ -8,4 +8,6 @@ void gif_display_test(void); +void gif_display_test_1(void); + #endif //BIONIC_SPHERE_GIF_TEST_H \ No newline at end of file diff --git a/项目开发日志.md b/项目开发日志.md index 0b15140..96dc924 100644 --- a/项目开发日志.md +++ b/项目开发日志.md @@ -155,12 +155,22 @@ - [x] 3. 完成了gif的显示测试(使用lvgl当中的gif解码器),测试通过 -#### Day4 2025.8.26 +#### Day5 2025.8.26 ##### 主要目标:测试开发板官方提供的例程中的驱动能否使用 实际完成任务: - [x] 1. 优化了项目结构 -#### Day4 2025.8.27 +#### Day6 2025.8.27 ##### 主要目标:测试开发板官方提供的例程中的驱动能否使用 实际完成任务: -- [x] 1. 完成了SDMMC的超频,从20MHz提升到40MHz,测试通过 \ No newline at end of file +- [x] 1. 完成了SDMMC的超频,从20MHz提升到40MHz,测试通过 + +#### Day7 2025.8.27 +##### 主要目标:测试开发板官方提供的例程中的驱动能否使用 +实际完成任务: +- [x] 1. 完成了PWR按键相关的测试,测试通过 + +#### Day8 2025.9.1 +##### 主要目标:测试开发板官方提供的例程中的驱动能否使用 +实际完成任务: +- [x] 1. 完成了语言识别测试,测试基本通过,后续需要修改从sd卡导入模型以配合ota \ No newline at end of file