mirror of
https://github.com/espressif/esp-sr.git
synced 2025-09-15 15:28:44 +08:00
release esp-sr v1.9.4
This commit is contained in:
parent
1714e211a9
commit
b6a9615ec9
@ -99,8 +99,6 @@ before_script:
|
||||
artifacts:
|
||||
when: always
|
||||
paths:
|
||||
- "**/build*/size.json"
|
||||
- "**/build*/build_log.txt"
|
||||
- "**/build*/*.bin"
|
||||
# upload to s3 server to save the artifacts size
|
||||
- "**/build*/*.map"
|
||||
|
||||
@ -4,6 +4,10 @@
|
||||
- Available storage is less than the remaining flash space on IDF v5.0.
|
||||
If you can not map model partition successfully, please check the left free storage by `spi_flash_mmap_get_free_pages(ESP_PARTITION_MMAP_DATA)` or update IDF to v5.1 or later.
|
||||
|
||||
## 1.9.4
|
||||
- Fix bugs when using C++ to compile
|
||||
- Add more new wake words
|
||||
|
||||
## 1.9.3
|
||||
- Fix nsnet2 crash
|
||||
- Add esp32p4 ci test
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
version: "1.9.3"
|
||||
version: "1.9.4"
|
||||
description: esp_sr provides basic algorithms for Speech Recognition applications
|
||||
url: https://github.com/espressif/esp-sr
|
||||
dependencies:
|
||||
|
||||
@ -113,10 +113,12 @@ typedef struct {
|
||||
.memory_alloc_mode = AFE_MEMORY_ALLOC_INTERNAL_PSRAM_BALANCE, \
|
||||
.afe_linear_gain = 1.0, \
|
||||
.agc_mode = AFE_MN_PEAK_AGC_MODE_2, \
|
||||
.pcm_config.total_ch_num = 2, \
|
||||
.pcm_config.mic_num = 1, \
|
||||
.pcm_config.ref_num = 1, \
|
||||
.pcm_config.sample_rate = 16000, \
|
||||
.pcm_config = { \
|
||||
.total_ch_num = 2, \
|
||||
.mic_num = 1, \
|
||||
.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_ns_mode = NS_MODE_SSP, \
|
||||
@ -142,10 +144,12 @@ typedef struct {
|
||||
.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, \
|
||||
.pcm_config.mic_num = 2, \
|
||||
.pcm_config.ref_num = 1, \
|
||||
.pcm_config.sample_rate = 16000, \
|
||||
.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_ns_mode = NS_MODE_SSP, \
|
||||
@ -155,4 +159,4 @@ typedef struct {
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@ -198,7 +198,7 @@ typedef void (*esp_mn_iface_op_print_active_speech_commands)(model_iface_data_t
|
||||
* @param model_data The model object to query
|
||||
* @param str The input string
|
||||
*/
|
||||
typedef int (*esp_mn_iface_op_check_speech_command)(model_iface_data_t *model_data, char *str);
|
||||
typedef int (*esp_mn_iface_op_check_speech_command)(model_iface_data_t *model_data, const char *str);
|
||||
|
||||
typedef struct {
|
||||
esp_mn_iface_op_create_t create;
|
||||
|
||||
@ -15,6 +15,6 @@ void flite_g2p_result_print_string(flite_g2p_result *result, int map_phonemes);
|
||||
|
||||
char *flite_g2p_result_get_string(flite_g2p_result *result, int map_phonemes);
|
||||
|
||||
char *flite_g2p(char *graphemes, int map_phonemes);
|
||||
char *flite_g2p(const char *graphemes, int map_phonemes);
|
||||
|
||||
#endif
|
||||
@ -115,10 +115,12 @@ typedef struct {
|
||||
.memory_alloc_mode = AFE_MEMORY_ALLOC_INTERNAL_PSRAM_BALANCE, \
|
||||
.afe_linear_gain = 1.0, \
|
||||
.agc_mode = AFE_MN_PEAK_AGC_MODE_2, \
|
||||
.pcm_config.total_ch_num = 2, \
|
||||
.pcm_config.mic_num = 1, \
|
||||
.pcm_config.ref_num = 1, \
|
||||
.pcm_config.sample_rate = 16000, \
|
||||
.pcm_config = { \
|
||||
.total_ch_num = 2, \
|
||||
.mic_num = 1, \
|
||||
.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_ns_mode = NS_MODE_SSP, \
|
||||
@ -145,10 +147,12 @@ typedef struct {
|
||||
.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 = 2, \
|
||||
.pcm_config.mic_num = 1, \
|
||||
.pcm_config.ref_num = 1, \
|
||||
.pcm_config.sample_rate = 16000, \
|
||||
.pcm_config = { \
|
||||
.total_ch_num = 2, \
|
||||
.mic_num = 1, \
|
||||
.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_ns_mode = NS_MODE_SSP, \
|
||||
@ -175,10 +179,12 @@ typedef struct {
|
||||
.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, \
|
||||
.pcm_config.mic_num = 2, \
|
||||
.pcm_config.ref_num = 1, \
|
||||
.pcm_config.sample_rate = 16000, \
|
||||
.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_ns_mode = NS_MODE_SSP, \
|
||||
|
||||
@ -112,7 +112,7 @@ typedef afe_fetch_result_t* (*esp_afe_sr_iface_op_fetch_t)(esp_afe_sr_data_t *af
|
||||
* @brief reset ringbuf of AFE.
|
||||
*
|
||||
* @param afe The AFE_SR object to query
|
||||
* @return -1: fail, 0: success
|
||||
* @return -1: fail, 1: success
|
||||
*/
|
||||
typedef int (*esp_afe_sr_iface_op_reset_buffer_t)(esp_afe_sr_data_t *afe);
|
||||
|
||||
@ -122,7 +122,7 @@ typedef int (*esp_afe_sr_iface_op_reset_buffer_t)(esp_afe_sr_data_t *afe);
|
||||
*
|
||||
* @param afe The AFE_SR object to query
|
||||
* @param wakenet_word The wakenet word, should be DEFAULT_WAKE_WORD or EXTRA_WAKE_WORD
|
||||
* @return 0: fail, 1: success
|
||||
* @return -1: fail, 1: success
|
||||
*/
|
||||
typedef int (*esp_afe_sr_iface_op_set_wakenet_t)(esp_afe_sr_data_t *afe, char* model_name);
|
||||
|
||||
@ -130,7 +130,7 @@ typedef int (*esp_afe_sr_iface_op_set_wakenet_t)(esp_afe_sr_data_t *afe, char* m
|
||||
* @brief Disable wakenet model.
|
||||
*
|
||||
* @param afe The AFE_SR object to query
|
||||
* @return 0: fail, 1: success
|
||||
* @return -1: fail, 0: disabled, 1: enabled
|
||||
*/
|
||||
typedef int (*esp_afe_sr_iface_op_disable_wakenet_t)(esp_afe_sr_data_t *afe);
|
||||
|
||||
@ -138,7 +138,7 @@ typedef int (*esp_afe_sr_iface_op_disable_wakenet_t)(esp_afe_sr_data_t *afe);
|
||||
* @brief Enable wakenet model.
|
||||
*
|
||||
* @param afe The AFE_SR object to query
|
||||
* @return 0: fail, 1: success
|
||||
* @return -1: fail, 0: disabled, 1: enabled
|
||||
*/
|
||||
typedef int (*esp_afe_sr_iface_op_enable_wakenet_t)(esp_afe_sr_data_t *afe);
|
||||
|
||||
@ -146,7 +146,7 @@ typedef int (*esp_afe_sr_iface_op_enable_wakenet_t)(esp_afe_sr_data_t *afe);
|
||||
* @brief Disable AEC algorithm.
|
||||
*
|
||||
* @param afe The AFE_SR object to query
|
||||
* @return 0: fail, 1: success
|
||||
* @return -1: fail, 0: disabled, 1: enabled
|
||||
*/
|
||||
typedef int (*esp_afe_sr_iface_op_disable_aec_t)(esp_afe_sr_data_t *afe);
|
||||
|
||||
@ -154,7 +154,7 @@ typedef int (*esp_afe_sr_iface_op_disable_aec_t)(esp_afe_sr_data_t *afe);
|
||||
* @brief Enable AEC algorithm.
|
||||
*
|
||||
* @param afe The AFE_SR object to query
|
||||
* @return 0: fail, 1: success
|
||||
* @return -1: fail, 0: disabled, 1: enabled
|
||||
*/
|
||||
typedef int (*esp_afe_sr_iface_op_enable_aec_t)(esp_afe_sr_data_t *afe);
|
||||
|
||||
@ -162,7 +162,7 @@ typedef int (*esp_afe_sr_iface_op_enable_aec_t)(esp_afe_sr_data_t *afe);
|
||||
* @brief Disable SE algorithm.
|
||||
*
|
||||
* @param afe The AFE_SR object to query
|
||||
* @return 0: fail, 1: success
|
||||
* @return -1: fail, 0: disabled, 1: enabled
|
||||
*/
|
||||
typedef int (*esp_afe_sr_iface_op_disable_se_t)(esp_afe_sr_data_t *afe);
|
||||
|
||||
@ -170,7 +170,7 @@ typedef int (*esp_afe_sr_iface_op_disable_se_t)(esp_afe_sr_data_t *afe);
|
||||
* @brief Enable SE algorithm.
|
||||
*
|
||||
* @param afe The AFE_SR object to query
|
||||
* @return 0: fail, 1: success
|
||||
* @return -1: fail, 0: disabled, 1: enabled
|
||||
*/
|
||||
typedef int (*esp_afe_sr_iface_op_enable_se_t)(esp_afe_sr_data_t *afe);
|
||||
|
||||
|
||||
@ -198,7 +198,7 @@ typedef void (*esp_mn_iface_op_print_active_speech_commands)(model_iface_data_t
|
||||
* @param model_data The model object to query
|
||||
* @param str The input string
|
||||
*/
|
||||
typedef int (*esp_mn_iface_op_check_speech_command)(model_iface_data_t *model_data, char *str);
|
||||
typedef int (*esp_mn_iface_op_check_speech_command)(model_iface_data_t *model_data, const char *str);
|
||||
|
||||
typedef struct {
|
||||
esp_mn_iface_op_create_t create;
|
||||
|
||||
@ -9,12 +9,12 @@ typedef struct {
|
||||
|
||||
void flite_g2p_result_free(flite_g2p_result *result);
|
||||
|
||||
flite_g2p_result *flite_g2p_get_result(char *grapheme);
|
||||
flite_g2p_result *flite_g2p_get_result(const char *grapheme);
|
||||
|
||||
void flite_g2p_result_print_string(flite_g2p_result *result, int map_phonemes);
|
||||
|
||||
char *flite_g2p_result_get_string(flite_g2p_result *result, int map_phonemes);
|
||||
|
||||
char *flite_g2p(char *graphemes, int map_phonemes);
|
||||
char *flite_g2p(const char *graphemes, int map_phonemes);
|
||||
|
||||
#endif
|
||||
@ -112,7 +112,7 @@ typedef afe_fetch_result_t* (*esp_afe_sr_iface_op_fetch_t)(esp_afe_sr_data_t *af
|
||||
* @brief reset ringbuf of AFE.
|
||||
*
|
||||
* @param afe The AFE_SR object to query
|
||||
* @return -1: fail, 0: success
|
||||
* @return -1: fail, 1: success
|
||||
*/
|
||||
typedef int (*esp_afe_sr_iface_op_reset_buffer_t)(esp_afe_sr_data_t *afe);
|
||||
|
||||
@ -122,7 +122,7 @@ typedef int (*esp_afe_sr_iface_op_reset_buffer_t)(esp_afe_sr_data_t *afe);
|
||||
*
|
||||
* @param afe The AFE_SR object to query
|
||||
* @param wakenet_word The wakenet word, should be DEFAULT_WAKE_WORD or EXTRA_WAKE_WORD
|
||||
* @return 0: fail, 1: success
|
||||
* @return -1: fail, 1: success
|
||||
*/
|
||||
typedef int (*esp_afe_sr_iface_op_set_wakenet_t)(esp_afe_sr_data_t *afe, char* model_name);
|
||||
|
||||
@ -130,7 +130,7 @@ typedef int (*esp_afe_sr_iface_op_set_wakenet_t)(esp_afe_sr_data_t *afe, char* m
|
||||
* @brief Disable wakenet model.
|
||||
*
|
||||
* @param afe The AFE_SR object to query
|
||||
* @return 0: fail, 1: success
|
||||
* @return -1: fail, 0: disabled, 1: enabled
|
||||
*/
|
||||
typedef int (*esp_afe_sr_iface_op_disable_wakenet_t)(esp_afe_sr_data_t *afe);
|
||||
|
||||
@ -138,7 +138,7 @@ typedef int (*esp_afe_sr_iface_op_disable_wakenet_t)(esp_afe_sr_data_t *afe);
|
||||
* @brief Enable wakenet model.
|
||||
*
|
||||
* @param afe The AFE_SR object to query
|
||||
* @return 0: fail, 1: success
|
||||
* @return -1: fail, 0: disabled, 1: enabled
|
||||
*/
|
||||
typedef int (*esp_afe_sr_iface_op_enable_wakenet_t)(esp_afe_sr_data_t *afe);
|
||||
|
||||
@ -146,7 +146,7 @@ typedef int (*esp_afe_sr_iface_op_enable_wakenet_t)(esp_afe_sr_data_t *afe);
|
||||
* @brief Disable AEC algorithm.
|
||||
*
|
||||
* @param afe The AFE_SR object to query
|
||||
* @return 0: fail, 1: success
|
||||
* @return -1: fail, 0: disabled, 1: enabled
|
||||
*/
|
||||
typedef int (*esp_afe_sr_iface_op_disable_aec_t)(esp_afe_sr_data_t *afe);
|
||||
|
||||
@ -154,7 +154,7 @@ typedef int (*esp_afe_sr_iface_op_disable_aec_t)(esp_afe_sr_data_t *afe);
|
||||
* @brief Enable AEC algorithm.
|
||||
*
|
||||
* @param afe The AFE_SR object to query
|
||||
* @return 0: fail, 1: success
|
||||
* @return -1: fail, 0: disabled, 1: enabled
|
||||
*/
|
||||
typedef int (*esp_afe_sr_iface_op_enable_aec_t)(esp_afe_sr_data_t *afe);
|
||||
|
||||
@ -162,7 +162,7 @@ typedef int (*esp_afe_sr_iface_op_enable_aec_t)(esp_afe_sr_data_t *afe);
|
||||
* @brief Disable SE algorithm.
|
||||
*
|
||||
* @param afe The AFE_SR object to query
|
||||
* @return 0: fail, 1: success
|
||||
* @return -1: fail, 0: disabled, 1: enabled
|
||||
*/
|
||||
typedef int (*esp_afe_sr_iface_op_disable_se_t)(esp_afe_sr_data_t *afe);
|
||||
|
||||
@ -170,7 +170,7 @@ typedef int (*esp_afe_sr_iface_op_disable_se_t)(esp_afe_sr_data_t *afe);
|
||||
* @brief Enable SE algorithm.
|
||||
*
|
||||
* @param afe The AFE_SR object to query
|
||||
* @return 0: fail, 1: success
|
||||
* @return -1: fail, 0: disabled, 1: enabled
|
||||
*/
|
||||
typedef int (*esp_afe_sr_iface_op_enable_se_t)(esp_afe_sr_data_t *afe);
|
||||
|
||||
|
||||
@ -198,7 +198,7 @@ typedef void (*esp_mn_iface_op_print_active_speech_commands)(model_iface_data_t
|
||||
* @param model_data The model object to query
|
||||
* @param str The input string
|
||||
*/
|
||||
typedef int (*esp_mn_iface_op_check_speech_command)(model_iface_data_t *model_data, char *str);
|
||||
typedef int (*esp_mn_iface_op_check_speech_command)(model_iface_data_t *model_data, const char *str);
|
||||
|
||||
typedef struct {
|
||||
esp_mn_iface_op_create_t create;
|
||||
|
||||
@ -9,12 +9,12 @@ typedef struct {
|
||||
|
||||
void flite_g2p_result_free(flite_g2p_result *result);
|
||||
|
||||
flite_g2p_result *flite_g2p_get_result(char *grapheme);
|
||||
flite_g2p_result *flite_g2p_get_result(const char *grapheme);
|
||||
|
||||
void flite_g2p_result_print_string(flite_g2p_result *result, int map_phonemes);
|
||||
|
||||
char *flite_g2p_result_get_string(flite_g2p_result *result, int map_phonemes);
|
||||
|
||||
char *flite_g2p(char *graphemes, int map_phonemes);
|
||||
char *flite_g2p(const char *graphemes, int map_phonemes);
|
||||
|
||||
#endif
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -79,7 +79,7 @@ esp_err_t esp_mn_commands_clear(void)
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
esp_mn_node_t *esp_mn_command_search(char *string)
|
||||
esp_mn_node_t *esp_mn_command_search(const char *string)
|
||||
{
|
||||
esp_mn_node_t *temp = esp_mn_root;
|
||||
if(NULL == esp_mn_root) {
|
||||
@ -95,7 +95,7 @@ esp_mn_node_t *esp_mn_command_search(char *string)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
esp_err_t esp_mn_commands_add(int command_id, char *string)
|
||||
esp_err_t esp_mn_commands_add(int command_id, const char *string)
|
||||
{
|
||||
if (NULL == esp_mn_root || esp_mn_model_handle == NULL || esp_mn_model_data == NULL) {
|
||||
ESP_LOGE(TAG, "Please create mn model first.\n");
|
||||
@ -156,7 +156,7 @@ esp_err_t esp_mn_commands_add(int command_id, char *string)
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
esp_err_t esp_mn_commands_phoneme_add(int command_id, char *string, char *phonemes)
|
||||
esp_err_t esp_mn_commands_phoneme_add(int command_id, const char *string, const char *phonemes)
|
||||
{
|
||||
if (NULL == esp_mn_root || esp_mn_model_handle == NULL || esp_mn_model_data == NULL) {
|
||||
ESP_LOGE(TAG, "Please create mn model first.\n");
|
||||
@ -214,7 +214,7 @@ esp_err_t esp_mn_commands_phoneme_add(int command_id, char *string, char *phonem
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
esp_err_t esp_mn_commands_modify(char *old_string, char *new_string)
|
||||
esp_err_t esp_mn_commands_modify(const char *old_string, const char *new_string)
|
||||
{
|
||||
#ifdef CONFIG_SR_MN_EN_MULTINET7_QUANT
|
||||
char *phonemes = flite_g2p(new_string, 1);
|
||||
@ -257,7 +257,7 @@ esp_err_t esp_mn_commands_modify(char *old_string, char *new_string)
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
esp_err_t esp_mn_commands_remove(char *string)
|
||||
esp_err_t esp_mn_commands_remove(const char *string)
|
||||
{
|
||||
esp_mn_node_t *temp = esp_mn_root;
|
||||
ESP_RETURN_ON_FALSE(NULL != esp_mn_root, ESP_ERR_INVALID_STATE, TAG, "The mn commands is not initialized");
|
||||
@ -374,7 +374,7 @@ void esp_mn_active_commands_print(void)
|
||||
ESP_LOGI(TAG, "---------------------------------------------------------\n");
|
||||
}
|
||||
|
||||
esp_mn_phrase_t *esp_mn_phrase_alloc(int command_id, char *string)
|
||||
esp_mn_phrase_t *esp_mn_phrase_alloc(int command_id, const char *string)
|
||||
{
|
||||
|
||||
int string_len = strlen(string);
|
||||
|
||||
@ -57,7 +57,7 @@ esp_err_t esp_mn_commands_free(void);
|
||||
* - ESP_OK Success
|
||||
* - ESP_ERR_INVALID_STATE Fail
|
||||
*/
|
||||
esp_err_t esp_mn_commands_add(int command_id, char *string);
|
||||
esp_err_t esp_mn_commands_add(int command_id, const char *string);
|
||||
|
||||
/**
|
||||
* @brief Add one speech commands with command string, command phonemes and command ID
|
||||
@ -71,7 +71,7 @@ esp_err_t esp_mn_commands_add(int command_id, char *string);
|
||||
* - ESP_OK Success
|
||||
* - ESP_ERR_INVALID_STATE Fail
|
||||
*/
|
||||
esp_err_t esp_mn_commands_phoneme_add(int command_id, char *string, char *phonemes);
|
||||
esp_err_t esp_mn_commands_phoneme_add(int command_id, const char *string, const char *phonemes);
|
||||
|
||||
/**
|
||||
* @brief Modify one speech commands with new command string
|
||||
@ -83,7 +83,7 @@ esp_err_t esp_mn_commands_phoneme_add(int command_id, char *string, char *phonem
|
||||
* - ESP_OK Success
|
||||
* - ESP_ERR_INVALID_STATE Fail
|
||||
*/
|
||||
esp_err_t esp_mn_commands_modify(char *old_string, char *new_string);
|
||||
esp_err_t esp_mn_commands_modify(const char *old_string, const char *new_string);
|
||||
|
||||
/**
|
||||
* @brief Remove one speech commands by command string
|
||||
@ -94,7 +94,7 @@ esp_err_t esp_mn_commands_modify(char *old_string, char *new_string);
|
||||
* - ESP_OK Success
|
||||
* - ESP_ERR_INVALID_STATE Fail
|
||||
*/
|
||||
esp_err_t esp_mn_commands_remove(char *string);
|
||||
esp_err_t esp_mn_commands_remove(const char *string);
|
||||
|
||||
/**
|
||||
* @brief Clear all speech commands in linked list
|
||||
@ -157,7 +157,7 @@ esp_mn_error_t *esp_mn_commands_update();
|
||||
*
|
||||
* @return the pointer of esp_mn_phrase_t
|
||||
*/
|
||||
esp_mn_phrase_t *esp_mn_phrase_alloc(int command_id, char *string);
|
||||
esp_mn_phrase_t *esp_mn_phrase_alloc(int command_id, const char *string);
|
||||
|
||||
/**
|
||||
* @brief Free esp_mn_phrase_t pointer.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user