diff --git a/Kconfig.projbuild b/Kconfig.projbuild
index 5280a58..f5b8d7d 100644
--- a/Kconfig.projbuild
+++ b/Kconfig.projbuild
@@ -49,6 +49,7 @@ choice SR_WN_MODEL_SEL
config SR_WN_MODEL_WN5_QUANT
bool "WakeNet 5 (quantized with 16-bit)"
+ depends on IDF_TARGET_ESP32
config SR_WN_MODEL_WN7_QUANT
bool "WakeNet 7 (quantized with 16-bit)"
diff --git a/README.md b/README.md
index bf903b2..3fc9a1d 100644
--- a/README.md
+++ b/README.md
@@ -11,13 +11,13 @@ These algorithms are provided in the form of a component, so they can be integra
## Wake Word Engine
-Espressif wake word engine [WakeNet](docs/wake_word_engine/README.md) is specially designed to provide a high performance and low memory footprint wake word detection algorithm for users, which enables devices always listen wake words, such as “Alexa”, “天猫精灵” (Tian Mao Jing Ling) and “小爱同学” (Xiao Ai Tong Xue).
+Espressif wake word engine [WakeNet](docs/wake_word_engine/README.md) is specially designed to provide a high performance and low memory footprint wake word detection algorithm for users, which enables devices always listen wake words, such as “Alexa”, “天猫精灵” (Tian Mao Jing Ling) and “小爱同学” (Xiao Ai Tong Xue). You can refer to [Model loading method](./docs/flash_model/README.md) to build your project.
Currently, Espressif has not only provided an official wake word "Hi,Lexin","Hi,ESP" to public for free, but also allows customized wake words. For details on how to customize your own wake words, please see [Espressif Speech Wake Words Customization Process](docs/wake_word_engine/ESP_Wake_Words_Customization.md).
## Speech Command Recognition
-Espressif's speech command recognition model [MultiNet](docs/speech_command_recognition/README.md) is specially designed to provide a flexible off-line speech command recognition model. With this model, you can easily add your own speech commands, eliminating the need to train model again.
+Espressif's speech command recognition model [MultiNet](docs/speech_command_recognition/README.md) is specially designed to provide a flexible off-line speech command recognition model. With this model, you can easily add your own speech commands, eliminating the need to train model again. You can refer to [Model loading method](./docs/flash_model/README.md) to build your project.
Currently, Espressif **MultiNet** supports up to 200 Chinese or English speech commands, such as “打开空调” (Turn on the air conditioner) and “打开卧室灯” (Turn on the bedroom light).
diff --git a/docs/flash_model/README.md b/docs/flash_model/README.md
new file mode 100644
index 0000000..07dce1b
--- /dev/null
+++ b/docs/flash_model/README.md
@@ -0,0 +1,156 @@
+# Model loading method[[中文]](./README_CN.md)
+
+In esp-sr, both WakeNet and MultiNet will use a large amount of model data, and the model data is located in `ESP-SR_PATH/model/`.
+Currently esp-sr supports the following model loading methods:
+
+ESP32:
+
+- Load directly from Flash
+
+ESP32S3:
+
+- Load from Flash spiffs partition
+- Load from external SDCard
+
+So that on ESP32S3 you can:
+
+- Greatly reduce the size of the user application APP BIN
+- Convenient for users to perform OTA
+- Supports reading and changing models from SD card, which is more convenient and can reduce the size of module Flash used in the project
+- When the user is developing the code, when the modification does not involve the model, it can avoid flashing the model data every time, greatly reducing the flashing time and improving the development efficiency
+
+## 1. Model configuration introduction
+
+Run `idf.py menuconfig` navigate to `ESP Speech Recognition`:
+
+
+
+### 1.1 Net to use acceleration
+
+This option can configure the acceleration mode of the model, the user does not need to modify it, please keep the default configuration.
+
+### 1.2 model data path
+
+This option is only available on ESP32S3. It indicates the storage location of the model data. It supports the choice of `spiffs partition` or `SD Card`.
+
+- `spiffs partition` means that the model data is stored in the Flash spiffs partition, and the model data will be loaded from the Flash spiffs partition
+- `SD Card` means that the model data is stored in the SD card, and the model data will be loaded from the SD Card
+
+### 1.3 use wakenet
+
+This option is turned on by default. When the user only uses `AEC` or `BSS`, etc., and does not need to run `WakeNet` or `MultiNet`, please turn off this option, which will reduce the size of the project firmware in some cases.
+
+- Wake word engine
+
+ Wake word model engine selection.
+
+ ESP32 supports:
+
+ - WakeNet 5 (quantized with 16-bit)
+
+ ESP32S3 supports:
+
+ - WakeNet 7 (quantized with 16-bit)
+ - WakeNet 7 (quantized with 8-bit)
+ - WakeNet 8 (quantized with 16-bit)
+
+- Wake word name
+
+ Wake-up word selection, the wake-up words supported by each wake-up engine are different.
+
+For more details, please refer to [WakeNet](../wake_word_engine/README.md) .
+
+### 1.4 use multinet
+
+This option is turned on by default. When users only use WakeNet or other algorithm modules, please turn off this option, which will reduce the size of the project firmware in some cases.
+
+- langugae
+
+ Speech commands recognition language selection, ESP32 only supports Chinese, ESP32S3 supports Chinese or English.
+
+- speech commands recognition model
+
+ model selection.
+ ESP32 supports:
+
+ - chinese single recognition (MultiNet2)
+
+ ESP32S3 supports:
+
+ - chinese single recognition (MultiNet3)
+ - chinese continuous recognition (MultiNet3)
+ - chinese single recognition (MultiNet4)
+
+- Add speech commands
+
+Users add speech commands according to their needs.
+
+For more details, please refer to [MultiNet](../speech_command_recognition/README.md) .
+
+## 2. How to use
+
+After the user completes the above configuration choices, please refer to esp-skainet to initialize and use the application layer. Here is an introduction to the code implementation of model data loading in the project.
+
+### 2.1 Use ESP32
+
+When the user uses ESP32, since it only supports loading the model data directly from the Flash, the model data in the code will automatically read the required data from the Flash according to the address.
+
+### 2.2 Use ESP32S3
+
+#### 2.2.1 Model data in SPIFFS
+
+When the user configuration #1.2 model data storage location is `spiffs partition`, the user needs to:
+
+- Write a partition table:
+
+ ```
+ model, data, spiffs, , SIZE,
+ ```
+ Among them, `SIZE` can refer to the recommended size when the user uses 'idf.py build' to compile, for example:
+
+ ```
+ Recommended model partition size: 500K
+ ```
+
+- Initialize the spiffs partition
+
+ **Use the provided API**: User can use `srmodel_spiffs_init()` API to initialize spiffs.
+
+ **Write by yourself**: When users need to store other files in the spiffs partition at the same time, such as web pages, they can write the spiffs initialization function by themselves. Pay attention to the configuration of `esp_vfs_spiffs_conf`:
+
+ - base_path: The model storage `base_path` is `srmodel` and cannot be changed
+ - partition_label: The partition label of the model is `model`, which needs to be consistent with the `Name` in the above partition table
+
+After completing the above configuration, the project will automatically generate `model.bin` after the project is compiled, and flash it to the spiffs partition.
+
+**Note: After the user changes the model, be sure to run `idf.py clean` before compiling again.**
+
+#### 2.2.1 Model data in SD Card
+
+When the user configuration #1.2 model data storage location is `SD Card`, the user needs to:
+
+- Manually move model data
+
+ Move the model to SDCard. After the user completes the above configuration, you can compile first. After compiling, copy the files in the `ESP-SR_PATH/model/target/` directory to the root directory of the SD card.
+
+- Custom model path
+
+ If the user wants to place the model in the specified folder, he can modify the `get_model_base_path()` function by himself, located in `ESP-SR_PATH/model/model_path.c`.
+ For example, if the specified folder is `espmodel` in the SD card directory, the function can be modified to:
+
+ ```
+ char *get_model_base_path(void)
+ {
+ #if defined CONFIG_MODEL_IN_SDCARD
+ return "sdcard/espmodel";
+ #elif defined CONFIG_MODEL_IN_SPIFFS
+ return "srmodel";
+ #else
+ return NULL;
+ #endif
+ }
+ ```
+
+- Initialize the SD card
+
+ The user needs to initialize the SD card to enable the system to record the SD card. The user can directly call `sd_card_mount("/sdcard")` to initialize the SD card that supports the development board if use esp-skainet. Otherwise, you need to write it yourself.
\ No newline at end of file
diff --git a/docs/flash_model/README_CN.md b/docs/flash_model/README_CN.md
new file mode 100644
index 0000000..1796d25
--- /dev/null
+++ b/docs/flash_model/README_CN.md
@@ -0,0 +1,154 @@
+# 模型加载方式[[English]](./README.md)
+
+在 esp-sr 中,WakeNet 和 MultiNet 均会使用到大量的模型数据,模型数据位于 `ESP-SR_PATH/model/` 中。
+目前 esp-sr 支持以下模型加载方式:
+
+ESP32:
+
+- 从 Flash 中直接加载
+
+ESP32S3:
+
+- 从 Flash spiffs 分区加载
+- 从外部 SDCard 加载
+
+从而在 ESP32S3 上可以:
+
+- 大大减小用户应用 APP BIN 的大小
+- 方便用户进行 OTA
+- 支持从 SD 卡读取和更换模型,更加便捷且可以缩减项目使用的模组 Flash 大小
+- 当用户进行开发时,当修改不涉及模型时,可以避免每次烧录模型数据,大大缩减烧录时间,提高开发效率
+
+## 1. 模型配置介绍
+
+运行 `idf.py menuconfig` 进入 `ESP Speech Recognition`:
+
+
+
+### 1.1 Net to use acceleration
+
+该选项可以配置模型的加速方式,用户无须修改,请保持默认配置。
+
+### 1.2 model data path
+
+该选项只在 ESP32S3 上可用,表示模型数据的存储位置,支持选择 `spiffs partition` 或 `SD Card`。
+
+- `spiffs partition` 表示模型数据存储在 Flash spiffs 分区中,模型数据将会从 Flash spiffs 分区中加载
+- `SD Card` 表示模型数据存储在 SD 卡中,模型数据将会从 SD Card 中加载
+
+### 1.3 use wakenet
+
+此选项默认打开,当用户只使用 AEC 或者 BSS 等,无须运行 WakeNet 或 MultiNet 时,请关闭次选项,将会在一些情况下减小工程固件的大小。
+
+- Wake word engine
+
+ 唤醒模型引擎选择。
+
+ ESP32 支持:
+
+ - WakeNet 5 (quantized with 16-bit)
+
+ ESP32S3 支持:
+
+ - WakeNet 7 (quantized with 16-bit)
+ - WakeNet 7 (quantized with 8-bit)
+ - WakeNet 8 (quantized with 16-bit)
+
+- Wake word name
+
+ 唤醒词选择,每个唤醒引擎支持的唤醒词有所不同,用户可以自行选择。
+
+更多细节请参考 [WakeNet](../wake_word_engine/README.md) 。
+
+### 1.4 use multinet
+
+此选项默认打开。当用户只使用 WakeNet 或者其他算法模块时,请关闭此选项,将会在一些情况下减小工程固件的大小。
+
+- langugae
+
+ 命令词识别语言选择,ESP32 只支持中文,ESP32S3 支持中文或英文。
+
+- speech commands recognition model
+
+ 命令词识别模型选择。
+ ESP32 支持:
+
+ - chinese single recognition (MultiNet2)
+
+ ESP32S3 支持:
+
+ - chinese single recognition (MultiNet3)
+ - chinese continuous recognition (MultiNet3)
+ - chinese single recognition (MultiNet4)
+
+- Add speech commands
+
+用户按照需求自定义添加命令词,具体请参考 [MultiNet](../speech_command_recognition/README.md) 。
+
+## 2. 模型使用
+
+当用户完成以上的配置选择后,应用层请参考 esp-skainet 进行初始化和使用。这里介绍一下模型数据加载在用户工程中的代码实现。
+
+### 2.1 使用 ESP32
+
+当用户使用 ESP32 时,由于只支持从 Flash 中直接加载模型数据,因此代码中模型数据会自动按照地址从 Flash 中读取所需数据。
+
+### 2.2 使用 ESP32S3
+
+#### 2.2.1 模型数据存储在 SPIFFS
+
+当用户配置 #1.2 模型数据存储位置是 `spiffs partition` 时,用户需要:
+
+- 编写分区表:
+
+ ```
+ model, data, spiffs, , SIZE,
+ ```
+ 其中 SIZE 可以参考在用户使用 'idf.py build' 编译时的推荐大小,例如:
+
+ ```
+ Recommended model partition size: 500K
+ ```
+- 初始化 spiffs 分区
+
+ **直接调用提供的 API**:用户可以直接调用 `srmodel_spiffs_init()` API 来初始化 spiffs。
+
+ **自行编写**:当用户需要在 spiffs 分区同时存放其他文件,如 web 网页时,可以自行编写 spiffs 初始化函数,需要注意 `esp_vfs_spiffs_conf`的配置:
+
+ - base_path:模型的存储 `base_path` 为 `srmodel`,不可更改
+ - partition_label:模型的分区 label 为 `model`,需要和 上述分区表中的 `Name` 保持一致
+
+完成上述配置后,模型会在工程编译完成后自动生成 `model.bin`,并在用户烧写时候烧写到 spiffs 分区。
+
+**注:当用户更改模型后,再次编译前请务必进行 `idf.py clean`**
+
+#### 2.2.1 模型存储在 SD Card
+
+当用户配置 #1.2 模型数据存储位置是 `SD Card` 时,用户需要:
+
+- 手动移动模型数据
+
+ 将模型移动到 SDCard 中,用户完成以上配置后,可以先进行编译,编译完成后将 `ESP-SR_PATH/model/target/` 目录下的文件拷贝至 SD 卡的根目录。
+
+- 自定义路径
+ 如果用户想将模型放置于指定文件夹,可以自己修改 `get_model_base_path()` 函数,位于 `ESP-SR_PATH/model/model_path.c`。
+ 比如,指定文件夹为 SD 卡目录中的 `espmodel`, 则可以修改该函数为:
+
+ ```
+ char *get_model_base_path(void)
+ {
+ #if defined CONFIG_MODEL_IN_SDCARD
+ return "sdcard/espmodel";
+ #elif defined CONFIG_MODEL_IN_SPIFFS
+ return "srmodel";
+ #else
+ return NULL;
+ #endif
+ }
+ ```
+
+- 初始化 SD 卡
+
+ 用户需要初始化 SD 卡,来使系统能够记载 SD 卡,如果用户使用 esp-skainet,可以直接调用 `sd_card_mount("/sdcard")` 来初始化其支持开发板的 SD 卡。否则,需要自己编写。
+
+完成以上操作后,便可以进行工程的烧录。
\ No newline at end of file
diff --git a/docs/img/model-1.png b/docs/img/model-1.png
new file mode 100644
index 0000000..913fe9b
Binary files /dev/null and b/docs/img/model-1.png differ