mirror of
https://github.com/espressif/esp-sr.git
synced 2025-09-15 15:28:44 +08:00
add doc for modifying commands
This commit is contained in:
parent
d14ed19756
commit
90e3cc24f4
@ -68,9 +68,8 @@ MultiNet5 customize speech commands
|
|||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
MultiNet5 use phonemes for English speech commands. For simplicity, we use characters to denote different phonemes. Please use :project_file:`tool/multinet_g2p.py` to do the convention.
|
MultiNet5 use phonemes for English speech commands. For simplicity, we use characters to denote different phonemes. Please use :project_file:`tool/multinet_g2p.py` to do the convention.
|
||||||
There are two methods to customize speech commands offline:
|
|
||||||
|
|
||||||
- Via ``menuconfig``
|
- Via ``menuconfig``
|
||||||
|
|
||||||
1. Navigate to ``idf.py menuconfig`` > ``ESP Speech Recognition`` > ``Add Chinese speech commands/Add English speech commands`` to add speech commands. For details, please refer to the example in ESP-Skainet.
|
1. Navigate to ``idf.py menuconfig`` > ``ESP Speech Recognition`` > ``Add Chinese speech commands/Add English speech commands`` to add speech commands. For details, please refer to the example in ESP-Skainet.
|
||||||
|
|
||||||
@ -86,19 +85,122 @@ There are two methods to customize speech commands offline:
|
|||||||
::
|
::
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Update the speech commands of MultiNet by menuconfig
|
* @brief Update the speech commands of MultiNet by menuconfig
|
||||||
|
*
|
||||||
|
* @param multinet The multinet handle
|
||||||
|
*
|
||||||
|
* @param model_data The model object to query
|
||||||
|
*
|
||||||
|
* @param langugae The language of MultiNet
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* - ESP_OK Success
|
||||||
|
* - ESP_ERR_INVALID_STATE Fail
|
||||||
|
*/
|
||||||
|
esp_err_t esp_mn_commands_update_from_sdkconfig(esp_mn_iface_t *multinet, const model_iface_data_t *model_data);
|
||||||
|
|
||||||
|
Customize speech commands via API calls
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
Alternatively, speech commands can be modified via API calls, this method works for both MultiNet5 and MultiNet6.
|
||||||
|
|
||||||
|
- Print active speech commands, this function will print out all speech commands that are active.
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Update the speech commands of MultiNet
|
||||||
|
*
|
||||||
|
* @Warning: Must be used after [add/remove/modify/clear] function,
|
||||||
|
* otherwise the language model of multinet can not be updated.
|
||||||
*
|
*
|
||||||
* @param multinet The multinet handle
|
* @param multinet The multinet handle
|
||||||
*
|
|
||||||
* @param model_data The model object to query
|
* @param model_data The model object to query
|
||||||
*
|
*
|
||||||
* @param langugae The language of MultiNet
|
* @return
|
||||||
|
* - NULL Success
|
||||||
|
* - others The list of error phrase which can not be parsed by multinet.
|
||||||
|
*/
|
||||||
|
esp_mn_error_t *esp_mn_commands_update();
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
The modifications will not be applied, thus not printed out, util you call ``esp_mn_commands_update()``.
|
||||||
|
|
||||||
|
- Apply new changes, the add/remove/modify/clear actions will not take effect util this function is called.
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Update the speech commands of MultiNet
|
||||||
|
*
|
||||||
|
* @Warning: Must be used after [add/remove/modify/clear] function,
|
||||||
|
* otherwise the language model of multinet can not be updated.
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* - NULL Success
|
||||||
|
* - others The list of error phrase which can not be parsed by multinet.
|
||||||
|
*/
|
||||||
|
esp_mn_error_t *esp_mn_commands_update();
|
||||||
|
|
||||||
|
|
||||||
|
- Add a new speech command, will return ``ESP_ERR_INVALID_STATE`` if the input string is not in the correct format.
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Add one speech commands with command string and command ID
|
||||||
|
*
|
||||||
|
* @param command_id The command ID
|
||||||
|
* @param string The command string of the speech commands
|
||||||
*
|
*
|
||||||
* @return
|
* @return
|
||||||
* - ESP_OK Success
|
* - ESP_OK Success
|
||||||
* - ESP_ERR_INVALID_STATE Fail
|
* - ESP_ERR_INVALID_STATE Fail
|
||||||
*/
|
*/
|
||||||
esp_err_t esp_mn_commands_update_from_sdkconfig(esp_mn_iface_t *multinet, const model_iface_data_t *model_data);
|
esp_err_t esp_mn_commands_add(int command_id, char *string);
|
||||||
|
|
||||||
|
- Remove a speech command, will return ``ESP_ERR_INVALID_STATE`` if the command does not exist.
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Remove one speech commands by command string
|
||||||
|
*
|
||||||
|
* @param string The command string of the speech commands
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* - ESP_OK Success
|
||||||
|
* - ESP_ERR_INVALID_STATE Fail
|
||||||
|
*/
|
||||||
|
esp_err_t esp_mn_commands_remove(char *string);
|
||||||
|
|
||||||
|
- Modify a speech command, will return ``ESP_ERR_INVALID_STATE`` if the command does not exist.
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Modify one speech commands with new command string
|
||||||
|
*
|
||||||
|
* @param old_string The old command string of the speech commands
|
||||||
|
* @param new_string The new command string of the speech commands
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* - ESP_OK Success
|
||||||
|
* - ESP_ERR_INVALID_STATE Fail
|
||||||
|
*/
|
||||||
|
esp_err_t esp_mn_commands_modify(char *old_string, char *new_string);
|
||||||
|
|
||||||
|
- Clear all speech commands.
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Clear all speech commands in linked list
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* - ESP_OK Success
|
||||||
|
* - ESP_ERR_INVALID_STATE Fail
|
||||||
|
*/
|
||||||
|
esp_err_t esp_mn_commands_clear(void);
|
||||||
|
|
||||||
Use MultiNet
|
Use MultiNet
|
||||||
------------
|
------------
|
||||||
|
|||||||
@ -110,6 +110,109 @@ MultiNet5 定义方法:
|
|||||||
esp_err_t esp_mn_commands_update_from_sdkconfig(esp_mn_iface_t *multinet, const model_iface_data_t *model_data);
|
esp_err_t esp_mn_commands_update_from_sdkconfig(esp_mn_iface_t *multinet, const model_iface_data_t *model_data);
|
||||||
|
|
||||||
|
|
||||||
|
通过调用API修改
|
||||||
|
~~~~~~~~~~~~~~~
|
||||||
|
指令还可以通过调用API修改,这种方法对于 MultiNet5 和 MultiNet6 都适用。
|
||||||
|
|
||||||
|
- 打印现有指令。
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Update the speech commands of MultiNet
|
||||||
|
*
|
||||||
|
* @Warning: Must be used after [add/remove/modify/clear] function,
|
||||||
|
* otherwise the language model of multinet can not be updated.
|
||||||
|
*
|
||||||
|
* @param multinet The multinet handle
|
||||||
|
* @param model_data The model object to query
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* - NULL Success
|
||||||
|
* - others The list of error phrase which can not be parsed by multinet.
|
||||||
|
*/
|
||||||
|
esp_mn_error_t *esp_mn_commands_update();
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
所有修改操作在调用 ``esp_mn_commands_update()`` 后才会被打印出来。
|
||||||
|
|
||||||
|
- 应用新的修改操作,所有添加、移除、修改及清空操作在调用后才会被应用。
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Update the speech commands of MultiNet
|
||||||
|
*
|
||||||
|
* @Warning: Must be used after [add/remove/modify/clear] function,
|
||||||
|
* otherwise the language model of multinet can not be updated.
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* - NULL Success
|
||||||
|
* - others The list of error phrase which can not be parsed by multinet.
|
||||||
|
*/
|
||||||
|
esp_mn_error_t *esp_mn_commands_update();
|
||||||
|
|
||||||
|
|
||||||
|
- 添加一条新指令,如果指令格式不正确则返回 ``ESP_ERR_INVALID_STATE``。
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Add one speech commands with command string and command ID
|
||||||
|
*
|
||||||
|
* @param command_id The command ID
|
||||||
|
* @param string The command string of the speech commands
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* - ESP_OK Success
|
||||||
|
* - ESP_ERR_INVALID_STATE Fail
|
||||||
|
*/
|
||||||
|
esp_err_t esp_mn_commands_add(int command_id, char *string);
|
||||||
|
|
||||||
|
- 移除一条指令,如果该指令不存在则返回 ``ESP_ERR_INVALID_STATE``。
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Remove one speech commands by command string
|
||||||
|
*
|
||||||
|
* @param string The command string of the speech commands
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* - ESP_OK Success
|
||||||
|
* - ESP_ERR_INVALID_STATE Fail
|
||||||
|
*/
|
||||||
|
esp_err_t esp_mn_commands_remove(char *string);
|
||||||
|
|
||||||
|
- 修改一条指令,如果该指令不存在则返回 ``ESP_ERR_INVALID_STATE``。
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Modify one speech commands with new command string
|
||||||
|
*
|
||||||
|
* @param old_string The old command string of the speech commands
|
||||||
|
* @param new_string The new command string of the speech commands
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* - ESP_OK Success
|
||||||
|
* - ESP_ERR_INVALID_STATE Fail
|
||||||
|
*/
|
||||||
|
esp_err_t esp_mn_commands_modify(char *old_string, char *new_string);
|
||||||
|
|
||||||
|
- 清空所有指令.
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Clear all speech commands in linked list
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* - ESP_OK Success
|
||||||
|
* - ESP_ERR_INVALID_STATE Fail
|
||||||
|
*/
|
||||||
|
esp_err_t esp_mn_commands_clear(void);
|
||||||
|
|
||||||
MultiNet 的使用
|
MultiNet 的使用
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user