From 4a5aa794baa5dbf99b1b80d0e387e25ccd3bafd4 Mon Sep 17 00:00:00 2001 From: xysun Date: Tue, 12 Sep 2023 17:15:12 +0800 Subject: [PATCH] Update Readme --- README.md | 10 +++++----- lib/esp32s3/libwakenet.a | Bin 650012 -> 650436 bytes 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 51f6c63..8169eca 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ ESP-SR framework includes the following modules: * [Audio Front-end AFE](https://docs.espressif.com/projects/esp-sr/en/latest/esp32s3/audio_front_end/README.html) * [Wake Word Engine WakeNet](https://docs.espressif.com/projects/esp-sr/en/latest/esp32s3/wake_word_engine/README.html) * [Speech Command Word Recognition MultiNet](https://docs.espressif.com/projects/esp-sr/en/latest/esp32s3/speech_command_recognition/README.html) -* Speech Synthesis (only supports Chinese language) +* [Speech Synthesis](https://docs.espressif.com/projects/esp-sr/en/latest/esp32s3/speech_synthesis/readme.html) These algorithms are provided in the form of a component, so they can be integrated into your projects with minimum effort. @@ -23,15 +23,15 @@ The new algorithms will no longer support ESP32 chips. ## Wake Word Engine -Espressif wake word engine **WakeNet** is specially designed to provide a high performance and low memory footprint wake word detection algorithm for users, which enables devices always listen to wake words, such as “Alexa”, “Hi,lexin” and “Hi,ESP”. You can refer to **Model loading method** to build your project. +Espressif wake word engine **WakeNet** is specially designed to provide a high performance and low memory footprint wake word detection algorithm for users, which enables devices always listen to wake words, such as “Alexa”, “Hi,lexin” and “Hi,ESP”. -Currently, Espressif has not only provided an official wake word "Hi,Lexin","Hi,ESP" to the 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**. +Currently, Espressif has not only provided an official wake word "Hi,Lexin","Hi,ESP" to the 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](https://docs.espressif.com/projects/esp-sr/en/latest/esp32s3/wake_word_engine/ESP_Wake_Words_Customization.html). ## Speech Command Recognition -Espressif's speech command recognition model **MultiNet** 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** to build your project. +Espressif's speech command recognition model **MultiNet** 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. -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). +Currently, Espressif **MultiNet** supports up to 300 Chinese or English speech commands, such as “打开空调” (Turn on the air conditioner) and “打开卧室灯” (Turn on the bedroom light). ## Audio Front End diff --git a/lib/esp32s3/libwakenet.a b/lib/esp32s3/libwakenet.a index 2b902201fe2fdd8bb6b753a233e50b5b5172813d..b578cd19616a99791e7898455b90f07eaa850c12 100644 GIT binary patch delta 30387 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