feat(MN&WN): Support 200 speech commands; Support set threshold of each speech commands; Modify MN_CN v4.0 decoder

This commit is contained in:
Wang Wang Wang 2021-12-02 14:27:34 +08:00
parent 9a2de7121f
commit 26f3d212d3
16 changed files with 1583 additions and 41 deletions

File diff suppressed because it is too large Load Diff

View File

@ -18,13 +18,66 @@
#include "dl_lib_matrixq.h" #include "dl_lib_matrixq.h"
#include "dl_lib_matrixq8.h" #include "dl_lib_matrixq8.h"
#ifdef ESP_PLATFORM
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/queue.h"
#include "esp_system.h"
#include "esp_heap_caps.h"
#include "sdkconfig.h"
#define DL_SPIRAM_SUPPORT 1
#endif
#ifdef CONFIG_IDF_TARGET_ESP32S3
#include "esp32s3/rom/cache.h"
#endif
typedef int padding_state; typedef int padding_state;
// /**
// * @brief Allocate a chunk of memory which has the given capabilities.
// * Equivalent semantics to libc malloc(), for capability-aware memory.
// * In IDF, malloc(p) is equivalent to heap_caps_malloc(p, MALLOC_CAP_8BIT).
// *
// * @param size In bytes, of the amount of memory to allocate
// * @param caps Bitwise OR of MALLOC_CAP_* flags indicating the type of memory to be returned
// * MALLOC_CAP_SPIRAM: Memory must be in SPI RAM
// * MALLOC_CAP_INTERNAL: Memory must be internal; specifically it should not disappear when flash/spiram cache is switched off
// * MALLOC_CAP_DMA: Memory must be able to accessed by DMA
// * MALLOC_CAP_DEFAULT: Memory can be returned in a non-capability-specific memory allocation
// * @return Pointer to currently allocated heap memory
// **/
// void *heap_caps_malloc(size_t size, uint32_t caps);
/**
* @brief Allocate aligned memory from internal memory or external memory.
* if cnt*size > CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL, allocate memory from internal RAM
* else, allocate memory from PSRAM
*
* @param cnt Number of continuing chunks of memory to allocate
* @param size Size, in bytes, of a chunk of memory to allocate
* @param align Aligned size, in bits
* @return Pointer to currently allocated heap memory
*/
void *dl_lib_calloc(int cnt, int size, int align); void *dl_lib_calloc(int cnt, int size, int align);
/**
* @brief Always allocate aligned memory from external memory.
*
* @param cnt Number of continuing chunks of memory to allocate
* @param size Size, in bytes, of a chunk of memory to allocate
* @param align Aligned size, in bits
* @return Pointer to currently aligned heap memory
*/
void *dl_lib_calloc_psram(int cnt, int size, int align); void *dl_lib_calloc_psram(int cnt, int size, int align);
void dl_lib_free(void *d); /**
* @brief Free aligned memory allocated by `dl_lib_calloc` or `dl_lib_calloc_psram`
*
* @param prt Pointer to free
*/
void dl_lib_free(void *ptr);
/** /**
* @brief Does a fast version of the exp() operation on a floating point number. * @brief Does a fast version of the exp() operation on a floating point number.
* *

View File

@ -20,11 +20,12 @@
#include "dl_lib_conv_queue.h" #include "dl_lib_conv_queue.h"
#include "dl_lib_convq_queue.h" #include "dl_lib_convq_queue.h"
//[nch, n, c]
typedef struct { typedef struct {
int n; /*< the length of queue */ int n; /*< the length of queue */
int c; /*< the channel number of queue element*/ int c; /*< the number of queue element*/
int front; /*< the front(top) position of queue */ int front; /*< the front(top) position of queue */
int flag; /*< not used */ int nch; /*< the channel of queue */
int exponent; /*< The values in items should be multiplied by pow(2,exponent) int exponent; /*< The values in items should be multiplied by pow(2,exponent)
to get the real values */ to get the real values */
q8tp_t *itemq; /*< Pointer to item array */ q8tp_t *itemq; /*< Pointer to item array */
@ -34,11 +35,21 @@ typedef struct {
* @brief Allocate a fixed-point convolution queue * @brief Allocate a fixed-point convolution queue
* *
* @param n The length of queue * @param n The length of queue
* @param c The channel number of elements in the queue * @param c The number of elements in the queue
* @return The convolution queue, or NULL if out of memory * @return The convolution queue, or NULL if out of memory
*/ */
dl_convq8_queue_t *dl_convq8_queue_alloc(int n, int c); dl_convq8_queue_t *dl_convq8_queue_alloc(int n, int c);
/**
* @brief Allocate a fixed-point convolution queue
*
* @param n The length of queue
* @param c The number of elements in the queue
* @param c The channel of queue
* @return The convolution queue, or NULL if out of memory
*/
dl_convq8_queue_t *dl_convq8_queue_alloc_mc(int n, int c, int nch);
/** /**
* @brief Free a fixed-point convolution queue * @brief Free a fixed-point convolution queue
* *
@ -46,6 +57,13 @@ dl_convq8_queue_t *dl_convq8_queue_alloc(int n, int c);
*/ */
void dl_convq8_queue_free(dl_convq8_queue_t *cq); void dl_convq8_queue_free(dl_convq8_queue_t *cq);
/**
* @brief Set itemq of convolution queue to 0
*
* @param cq The fixed-point convolution queue to free
*/
void dl_convq8_queue_bzero(dl_convq8_queue_t *cqm);
/** /**
* @brief Insert the float-point element at the end of queue. * @brief Insert the float-point element at the end of queue.
* The precision of fixed-point numbers is described by the Qm.f notation, * The precision of fixed-point numbers is described by the Qm.f notation,
@ -66,6 +84,16 @@ void dl_convq8_queue_push_by_qmf(dl_convq8_queue_t *cq, fptp_t* item, int m_bit,
*/ */
q8tp_t *dl_get_queue_itemq8(dl_convq8_queue_t *cq, int offset); q8tp_t *dl_get_queue_itemq8(dl_convq8_queue_t *cq, int offset);
/**
* @brief Get the pointer of element in the queue by offset
*
* @param cq Input fixed-point convolution queue
* @param offset Offset from the front of the queue
* @param ch Channel index of queue
* @return Pointer of the element
*/
q8tp_t *dl_get_queue_itemq8_mc(dl_convq8_queue_t *cq, int offset, int ch);
/** /**
* @brief Fast and quantised implement for 1D atrous convolution (a.k.a. convolution with holes or dilated convolution) * @brief Fast and quantised implement for 1D atrous convolution (a.k.a. convolution with holes or dilated convolution)
* based on convolution queue. * based on convolution queue.
@ -120,7 +148,7 @@ void dl_dilation_layerq8_steps(dl_convq8_queue_t *in, dl_convq8_queue_t *out, in
dl_conv_queue_t *dl_convq8_queue_add(dl_convq8_queue_t *cq1, dl_convq8_queue_t *cq2); dl_conv_queue_t *dl_convq8_queue_add(dl_convq8_queue_t *cq1, dl_convq8_queue_t *cq2);
int8_t dl_sigmoid_lutq8(int in);
/** /**
* @brief Allocate a 8-bit fixed-point Multi-Channel convolution queue * @brief Allocate a 8-bit fixed-point Multi-Channel convolution queue
* *
@ -216,6 +244,8 @@ void dl_dilation_layerq8_mc_steps(dl_convq8_queue_t **in, dl_convq8_queue_t **ou
dl_matrix2dq8_t* gate_kernel, dl_matrix2dq8_t* gate_bias, dl_matrix2dq8_t* gate_kernel, dl_matrix2dq8_t* gate_bias,
int offset, int prenum); int offset, int prenum);
void dl_convq8_queue_mc_bzero(dl_convq8_queue_t **cqm, int nch);
void print_convq8(dl_convq8_queue_t *cq, int offset); void print_convq8(dl_convq8_queue_t *cq, int offset);
void print_convq(dl_convq_queue_t *cq, int offset); void print_convq(dl_convq_queue_t *cq, int offset);
#endif #endif

View File

@ -20,11 +20,12 @@
//fixed-point convolution FIFO queue. //fixed-point convolution FIFO queue.
//[nch, n, c]
typedef struct { typedef struct {
int n; /*< the length of queue */ int n; /*< the length of queue */
int c; /*< the channel number of queue element*/ int c; /*< the number of queue element*/
int front; /*< the front(top) position of queue */ int front; /*< the front(top) position of queue */
int flag; /*< not used */ int nch; /*< the multiple of queue*/
int exponent; /*< The values in items should be multiplied by pow(2,exponent) int exponent; /*< The values in items should be multiplied by pow(2,exponent)
to get the real values */ to get the real values */
qtp_t *itemq; /*< Pointer to item array */ qtp_t *itemq; /*< Pointer to item array */
@ -34,11 +35,41 @@ typedef struct {
* @brief Allocate a fixed-point convolution queue * @brief Allocate a fixed-point convolution queue
* *
* @param n The length of queue * @param n The length of queue
* @param c The channel number of elements in the queue * @param c The number of elements in the queue
* @return The convolution queue, or NULL if out of memory * @return The convolution queue, or NULL if out of memory
*/ */
dl_convq_queue_t *dl_convq_queue_alloc(int n, int c); dl_convq_queue_t *dl_convq_queue_alloc(int n, int c);
/**
* @brief Allocate a fixed-point convolution queue from PSRAM
*
* @param n The length of queue
* @param c The number of elements in the queue
* @return The convolution queue, or NULL if out of memory
*/
dl_convq_queue_t *dl_convq_queue_alloc_from_psram(int n, int c); dl_convq_queue_t *dl_convq_queue_alloc_from_psram(int n, int c);
/**
* @brief Allocate a fixed-point multi-channel convolution queue
*
* @param n The length of queue
* @param c The number of elements in the queue
* @param nch The channel of conv queue
* @return The convolution queue, or NULL if out of memory
*/
dl_convq_queue_t *dl_convq_queue_alloc_mc(int n, int c, int nch);
/**
* @brief Allocate a fixed-point multi-channel convolution queue from PSRAM
*
* @param n The length of queue
* @param c The number of elements in the queue
* @param nch The channel of conv queue
* @return The convolution queue, or NULL if out of memory
*/
dl_convq_queue_t *dl_convq_queue_alloc_mc_from_psram(int n, int c, int nch);
void dl_convq_to_matrix2dq(dl_convq_queue_t *cq, dl_matrix2dq_t* out, int row); void dl_convq_to_matrix2dq(dl_convq_queue_t *cq, dl_matrix2dq_t* out, int row);
/** /**
@ -48,6 +79,13 @@ void dl_convq_to_matrix2dq(dl_convq_queue_t *cq, dl_matrix2dq_t* out, int row);
*/ */
void dl_convq_queue_free(dl_convq_queue_t *cq); void dl_convq_queue_free(dl_convq_queue_t *cq);
/**
* @brief Set itemq of convolution queue to 0
*
* @param cq The fixed-point convolution queue point
*/
void dl_convq_queue_bzero(dl_convq_queue_t *cq);
/** /**
* @brief Move the front pointer of queue forward, * @brief Move the front pointer of queue forward,
the First(oldest) element become the last(newest) element, the First(oldest) element become the last(newest) element,
@ -89,6 +127,16 @@ dl_conv_queue_t *dl_queue_from_convq(dl_convq_queue_t *cq1);
*/ */
inline qtp_t *dl_get_queue_itemq(dl_convq_queue_t *cq, int last_num); inline qtp_t *dl_get_queue_itemq(dl_convq_queue_t *cq, int last_num);
/**
* @brief Get the pointer of element in the queue by offset
*
* @param cq Input fixed-point convolution queue
* @param offset Offset from the front of the queue
* @param ch Channel index of convolution queue
* @return Pointer of the element
*/
qtp_t *dl_get_queue_itemq_mc(dl_convq_queue_t *cq, int offset, int ch);
/** /**
* @brief Does a tanh operation on the one of element in the convolution queue. * @brief Does a tanh operation on the one of element in the convolution queue.
* Gets the pointer of element in the convolution queue by offset, and does a * Gets the pointer of element in the convolution queue by offset, and does a
@ -321,6 +369,7 @@ qtp_t *dl_dilation_layerq_mc_steps( dl_convq_queue_t **in,
void test_atrous_convq(int size, int rate, int in_channel, int out_channel); void test_atrous_convq(int size, int rate, int in_channel, int out_channel);
void test_lstm_convq(int size, int in_dim, int lstm_cell); void test_lstm_convq(int size, int in_dim, int lstm_cell);
void dl_nn_tanh_i16(dl_convq_queue_t **cqm, int offset, int nch); void dl_nn_tanh_i162(dl_convq_queue_t **cqm, int offset, int nch);
void dl_copy_queue_item_by_qmf(dl_convq_queue_t *cq, fptp_t* item, int m_bit, int f_bit, int offset, int ch);
void dl_convq_queue_mc_bzero(dl_convq_queue_t **cqm, int nch);
#endif #endif

View File

@ -14,10 +14,17 @@
#ifndef DL_LIB_MATRIX_H #ifndef DL_LIB_MATRIX_H
#define DL_LIB_MATRIX_H #define DL_LIB_MATRIX_H
#if CONFIG_BT_SHARE_MEM_REUSE #ifdef ESP_PLATFORM
#include "freertos/FreeRTOS.h" #include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/queue.h"
#include "esp_system.h"
#endif #endif
// #ifdef CONFIG_IDF_TARGET_ESP32S3
// #include "dl_tie728_bzero.h"
// #endif
typedef float fptp_t; typedef float fptp_t;
#if CONFIG_BT_SHARE_MEM_REUSE #if CONFIG_BT_SHARE_MEM_REUSE

View File

@ -16,6 +16,8 @@
#include <stdint.h> #include <stdint.h>
#include "dl_lib_matrix.h" #include "dl_lib_matrix.h"
#include "dl_lib.h"
#include "dl_lib_matrixq.h"
typedef int8_t q8tp_t; typedef int8_t q8tp_t;
@ -48,6 +50,15 @@ dl_matrix2dq8_t *dl_matrixq8_alloc(int w, int h);
* @param m Matrix to free * @param m Matrix to free
*/ */
void dl_matrixq8_free(dl_matrix2dq8_t *m); void dl_matrixq8_free(dl_matrix2dq8_t *m);
/**
* @brief Copy a quantized matrix
* Copy a quantized matrix from flash or iram/psram
*
* @param m Matrix to copy
*/
dl_matrix2dq8_t *dl_matrixq8_copy_to_psram(const dl_matrix2dq8_t *m);
/** /**
* @brief Convert a floating-point matrix to a quantized matrix * @brief Convert a floating-point matrix to a quantized matrix
* *

View File

@ -40,10 +40,17 @@ typedef int (*esp_mn_iface_op_get_samp_chunknum_t)(model_iface_data_t *model);
* @brief Set the detection threshold to manually abjust the probability * @brief Set the detection threshold to manually abjust the probability
* *
* @param model The model object to query * @param model The model object to query
* @param det_treshold The threshold to trigger speech commands, the range of det_threshold is 0.5~0.9999 * @param det_treshold The threshold to trigger speech commands, the range of det_threshold is 0.0~0.9999
*/ */
typedef int (*esp_mn_iface_op_set_det_threshold_t)(model_iface_data_t *model, float det_threshold); typedef int (*esp_mn_iface_op_set_det_threshold_t)(model_iface_data_t *model, float det_threshold);
/**
* @brief Set the detection threshold to manually abjust the probability
*
* @param model The model object to query
* @param speech_command_id The ID of speech command
* @param det_treshold The threshold to trigger speech commands, the range of det_threshold is 0.0~0.9999
*/
typedef int (*esp_mn_iface_op_set_command_det_threshold_t)(model_iface_data_t *model, int speech_command_id, float det_threshold);
/** /**
* @brief Get the sample rate of the samples to feed to the detect function * @brief Get the sample rate of the samples to feed to the detect function
* *
@ -74,7 +81,7 @@ typedef void (*esp_mn_iface_op_destroy_t)(model_iface_data_t *model);
* @brief Reset the speech commands recognition model * @brief Reset the speech commands recognition model
* *
*/ */
typedef void (*esp_mn_iface_op_reset_t)(model_iface_data_t *model, char *command_str, char *err_phrase_id); typedef void (*esp_mn_iface_op_reset_t)(model_iface_data_t *model_data, char *command_str, char *err_phrase_id);
typedef struct { typedef struct {
@ -83,6 +90,7 @@ typedef struct {
esp_mn_iface_op_get_samp_chunksize_t get_samp_chunksize; esp_mn_iface_op_get_samp_chunksize_t get_samp_chunksize;
esp_mn_iface_op_get_samp_chunknum_t get_samp_chunknum; esp_mn_iface_op_get_samp_chunknum_t get_samp_chunknum;
esp_mn_iface_op_set_det_threshold_t set_det_threshold; esp_mn_iface_op_set_det_threshold_t set_det_threshold;
esp_mn_iface_op_set_command_det_threshold_t set_command_det_threshold;
esp_mn_iface_op_detect_t detect; esp_mn_iface_op_detect_t detect;
esp_mn_iface_op_destroy_t destroy; esp_mn_iface_op_destroy_t destroy;
esp_mn_iface_op_reset_t reset; esp_mn_iface_op_reset_t reset;

View File

@ -9,8 +9,8 @@ typedef struct model_iface_data_t model_iface_data_t;
//The probability of being wake words is increased with increasing mode, //The probability of being wake words is increased with increasing mode,
//As a consequence also the false alarm rate goes up //As a consequence also the false alarm rate goes up
typedef enum { typedef enum {
DET_MODE_90 = 0, //Normal, response accuracy rate about 90% DET_MODE_90 = 0, // Normal
DET_MODE_95 = 1, //Aggressive, response accuracy rate about 95% DET_MODE_95 = 1, // Aggressive
DET_MODE_2CH_90 = 2, DET_MODE_2CH_90 = 2,
DET_MODE_2CH_95 = 3, DET_MODE_2CH_95 = 3,
DET_MODE_3CH_90 = 4, DET_MODE_3CH_90 = 4,
@ -129,6 +129,13 @@ typedef float (*esp_wn_iface_op_get_vol_gain_t)(model_iface_data_t *model, float
*/ */
typedef int (*esp_wn_iface_op_get_triggered_channel_t)(model_iface_data_t *model); typedef int (*esp_wn_iface_op_get_triggered_channel_t)(model_iface_data_t *model);
/**
* @brief Clean all states of model
*
* @param model The model object to query
*/
typedef void (*esp_wn_iface_op_clean_t)(model_iface_data_t *model);
/** /**
* @brief Destroy a speech recognition model * @brief Destroy a speech recognition model
* *
@ -152,5 +159,6 @@ typedef struct {
esp_wn_iface_op_get_triggered_channel_t get_triggered_channel; esp_wn_iface_op_get_triggered_channel_t get_triggered_channel;
esp_wn_iface_op_get_vol_gain_t get_vol_gain; esp_wn_iface_op_get_vol_gain_t get_vol_gain;
esp_wn_iface_op_detect_t detect; esp_wn_iface_op_detect_t detect;
esp_wn_iface_op_clean_t clean;
esp_wn_iface_op_destroy_t destroy; esp_wn_iface_op_destroy_t destroy;
} esp_wn_iface_t; } esp_wn_iface_t;

View File

@ -102,6 +102,106 @@
#define MN_SPEECH_COMMAND_ID97 CONFIG_CN_SPEECH_COMMAND_ID97 #define MN_SPEECH_COMMAND_ID97 CONFIG_CN_SPEECH_COMMAND_ID97
#define MN_SPEECH_COMMAND_ID98 CONFIG_CN_SPEECH_COMMAND_ID98 #define MN_SPEECH_COMMAND_ID98 CONFIG_CN_SPEECH_COMMAND_ID98
#define MN_SPEECH_COMMAND_ID99 CONFIG_CN_SPEECH_COMMAND_ID99 #define MN_SPEECH_COMMAND_ID99 CONFIG_CN_SPEECH_COMMAND_ID99
#define MN_SPEECH_COMMAND_ID100 CONFIG_CN_SPEECH_COMMAND_ID100
#define MN_SPEECH_COMMAND_ID101 CONFIG_CN_SPEECH_COMMAND_ID101
#define MN_SPEECH_COMMAND_ID102 CONFIG_CN_SPEECH_COMMAND_ID102
#define MN_SPEECH_COMMAND_ID103 CONFIG_CN_SPEECH_COMMAND_ID103
#define MN_SPEECH_COMMAND_ID104 CONFIG_CN_SPEECH_COMMAND_ID104
#define MN_SPEECH_COMMAND_ID105 CONFIG_CN_SPEECH_COMMAND_ID105
#define MN_SPEECH_COMMAND_ID106 CONFIG_CN_SPEECH_COMMAND_ID106
#define MN_SPEECH_COMMAND_ID107 CONFIG_CN_SPEECH_COMMAND_ID107
#define MN_SPEECH_COMMAND_ID108 CONFIG_CN_SPEECH_COMMAND_ID108
#define MN_SPEECH_COMMAND_ID109 CONFIG_CN_SPEECH_COMMAND_ID109
#define MN_SPEECH_COMMAND_ID110 CONFIG_CN_SPEECH_COMMAND_ID110
#define MN_SPEECH_COMMAND_ID111 CONFIG_CN_SPEECH_COMMAND_ID111
#define MN_SPEECH_COMMAND_ID112 CONFIG_CN_SPEECH_COMMAND_ID112
#define MN_SPEECH_COMMAND_ID113 CONFIG_CN_SPEECH_COMMAND_ID113
#define MN_SPEECH_COMMAND_ID114 CONFIG_CN_SPEECH_COMMAND_ID114
#define MN_SPEECH_COMMAND_ID115 CONFIG_CN_SPEECH_COMMAND_ID115
#define MN_SPEECH_COMMAND_ID116 CONFIG_CN_SPEECH_COMMAND_ID116
#define MN_SPEECH_COMMAND_ID117 CONFIG_CN_SPEECH_COMMAND_ID117
#define MN_SPEECH_COMMAND_ID118 CONFIG_CN_SPEECH_COMMAND_ID118
#define MN_SPEECH_COMMAND_ID119 CONFIG_CN_SPEECH_COMMAND_ID119
#define MN_SPEECH_COMMAND_ID120 CONFIG_CN_SPEECH_COMMAND_ID120
#define MN_SPEECH_COMMAND_ID121 CONFIG_CN_SPEECH_COMMAND_ID121
#define MN_SPEECH_COMMAND_ID122 CONFIG_CN_SPEECH_COMMAND_ID122
#define MN_SPEECH_COMMAND_ID123 CONFIG_CN_SPEECH_COMMAND_ID123
#define MN_SPEECH_COMMAND_ID124 CONFIG_CN_SPEECH_COMMAND_ID124
#define MN_SPEECH_COMMAND_ID125 CONFIG_CN_SPEECH_COMMAND_ID125
#define MN_SPEECH_COMMAND_ID126 CONFIG_CN_SPEECH_COMMAND_ID126
#define MN_SPEECH_COMMAND_ID127 CONFIG_CN_SPEECH_COMMAND_ID127
#define MN_SPEECH_COMMAND_ID128 CONFIG_CN_SPEECH_COMMAND_ID128
#define MN_SPEECH_COMMAND_ID129 CONFIG_CN_SPEECH_COMMAND_ID129
#define MN_SPEECH_COMMAND_ID130 CONFIG_CN_SPEECH_COMMAND_ID130
#define MN_SPEECH_COMMAND_ID131 CONFIG_CN_SPEECH_COMMAND_ID131
#define MN_SPEECH_COMMAND_ID132 CONFIG_CN_SPEECH_COMMAND_ID132
#define MN_SPEECH_COMMAND_ID133 CONFIG_CN_SPEECH_COMMAND_ID133
#define MN_SPEECH_COMMAND_ID134 CONFIG_CN_SPEECH_COMMAND_ID134
#define MN_SPEECH_COMMAND_ID135 CONFIG_CN_SPEECH_COMMAND_ID135
#define MN_SPEECH_COMMAND_ID136 CONFIG_CN_SPEECH_COMMAND_ID136
#define MN_SPEECH_COMMAND_ID137 CONFIG_CN_SPEECH_COMMAND_ID137
#define MN_SPEECH_COMMAND_ID138 CONFIG_CN_SPEECH_COMMAND_ID138
#define MN_SPEECH_COMMAND_ID139 CONFIG_CN_SPEECH_COMMAND_ID139
#define MN_SPEECH_COMMAND_ID140 CONFIG_CN_SPEECH_COMMAND_ID140
#define MN_SPEECH_COMMAND_ID141 CONFIG_CN_SPEECH_COMMAND_ID141
#define MN_SPEECH_COMMAND_ID142 CONFIG_CN_SPEECH_COMMAND_ID142
#define MN_SPEECH_COMMAND_ID143 CONFIG_CN_SPEECH_COMMAND_ID143
#define MN_SPEECH_COMMAND_ID144 CONFIG_CN_SPEECH_COMMAND_ID144
#define MN_SPEECH_COMMAND_ID145 CONFIG_CN_SPEECH_COMMAND_ID145
#define MN_SPEECH_COMMAND_ID146 CONFIG_CN_SPEECH_COMMAND_ID146
#define MN_SPEECH_COMMAND_ID147 CONFIG_CN_SPEECH_COMMAND_ID147
#define MN_SPEECH_COMMAND_ID148 CONFIG_CN_SPEECH_COMMAND_ID148
#define MN_SPEECH_COMMAND_ID149 CONFIG_CN_SPEECH_COMMAND_ID149
#define MN_SPEECH_COMMAND_ID150 CONFIG_CN_SPEECH_COMMAND_ID150
#define MN_SPEECH_COMMAND_ID151 CONFIG_CN_SPEECH_COMMAND_ID151
#define MN_SPEECH_COMMAND_ID152 CONFIG_CN_SPEECH_COMMAND_ID152
#define MN_SPEECH_COMMAND_ID153 CONFIG_CN_SPEECH_COMMAND_ID153
#define MN_SPEECH_COMMAND_ID154 CONFIG_CN_SPEECH_COMMAND_ID154
#define MN_SPEECH_COMMAND_ID155 CONFIG_CN_SPEECH_COMMAND_ID155
#define MN_SPEECH_COMMAND_ID156 CONFIG_CN_SPEECH_COMMAND_ID156
#define MN_SPEECH_COMMAND_ID157 CONFIG_CN_SPEECH_COMMAND_ID157
#define MN_SPEECH_COMMAND_ID158 CONFIG_CN_SPEECH_COMMAND_ID158
#define MN_SPEECH_COMMAND_ID159 CONFIG_CN_SPEECH_COMMAND_ID159
#define MN_SPEECH_COMMAND_ID160 CONFIG_CN_SPEECH_COMMAND_ID160
#define MN_SPEECH_COMMAND_ID161 CONFIG_CN_SPEECH_COMMAND_ID161
#define MN_SPEECH_COMMAND_ID162 CONFIG_CN_SPEECH_COMMAND_ID162
#define MN_SPEECH_COMMAND_ID163 CONFIG_CN_SPEECH_COMMAND_ID163
#define MN_SPEECH_COMMAND_ID164 CONFIG_CN_SPEECH_COMMAND_ID164
#define MN_SPEECH_COMMAND_ID165 CONFIG_CN_SPEECH_COMMAND_ID165
#define MN_SPEECH_COMMAND_ID166 CONFIG_CN_SPEECH_COMMAND_ID166
#define MN_SPEECH_COMMAND_ID167 CONFIG_CN_SPEECH_COMMAND_ID167
#define MN_SPEECH_COMMAND_ID168 CONFIG_CN_SPEECH_COMMAND_ID168
#define MN_SPEECH_COMMAND_ID169 CONFIG_CN_SPEECH_COMMAND_ID169
#define MN_SPEECH_COMMAND_ID170 CONFIG_CN_SPEECH_COMMAND_ID170
#define MN_SPEECH_COMMAND_ID171 CONFIG_CN_SPEECH_COMMAND_ID171
#define MN_SPEECH_COMMAND_ID172 CONFIG_CN_SPEECH_COMMAND_ID172
#define MN_SPEECH_COMMAND_ID173 CONFIG_CN_SPEECH_COMMAND_ID173
#define MN_SPEECH_COMMAND_ID174 CONFIG_CN_SPEECH_COMMAND_ID174
#define MN_SPEECH_COMMAND_ID175 CONFIG_CN_SPEECH_COMMAND_ID175
#define MN_SPEECH_COMMAND_ID176 CONFIG_CN_SPEECH_COMMAND_ID176
#define MN_SPEECH_COMMAND_ID177 CONFIG_CN_SPEECH_COMMAND_ID177
#define MN_SPEECH_COMMAND_ID178 CONFIG_CN_SPEECH_COMMAND_ID178
#define MN_SPEECH_COMMAND_ID179 CONFIG_CN_SPEECH_COMMAND_ID179
#define MN_SPEECH_COMMAND_ID180 CONFIG_CN_SPEECH_COMMAND_ID180
#define MN_SPEECH_COMMAND_ID181 CONFIG_CN_SPEECH_COMMAND_ID181
#define MN_SPEECH_COMMAND_ID182 CONFIG_CN_SPEECH_COMMAND_ID182
#define MN_SPEECH_COMMAND_ID183 CONFIG_CN_SPEECH_COMMAND_ID183
#define MN_SPEECH_COMMAND_ID184 CONFIG_CN_SPEECH_COMMAND_ID184
#define MN_SPEECH_COMMAND_ID185 CONFIG_CN_SPEECH_COMMAND_ID185
#define MN_SPEECH_COMMAND_ID186 CONFIG_CN_SPEECH_COMMAND_ID186
#define MN_SPEECH_COMMAND_ID187 CONFIG_CN_SPEECH_COMMAND_ID187
#define MN_SPEECH_COMMAND_ID188 CONFIG_CN_SPEECH_COMMAND_ID188
#define MN_SPEECH_COMMAND_ID189 CONFIG_CN_SPEECH_COMMAND_ID189
#define MN_SPEECH_COMMAND_ID190 CONFIG_CN_SPEECH_COMMAND_ID190
#define MN_SPEECH_COMMAND_ID191 CONFIG_CN_SPEECH_COMMAND_ID191
#define MN_SPEECH_COMMAND_ID192 CONFIG_CN_SPEECH_COMMAND_ID192
#define MN_SPEECH_COMMAND_ID193 CONFIG_CN_SPEECH_COMMAND_ID193
#define MN_SPEECH_COMMAND_ID194 CONFIG_CN_SPEECH_COMMAND_ID194
#define MN_SPEECH_COMMAND_ID195 CONFIG_CN_SPEECH_COMMAND_ID195
#define MN_SPEECH_COMMAND_ID196 CONFIG_CN_SPEECH_COMMAND_ID196
#define MN_SPEECH_COMMAND_ID197 CONFIG_CN_SPEECH_COMMAND_ID197
#define MN_SPEECH_COMMAND_ID198 CONFIG_CN_SPEECH_COMMAND_ID198
#define MN_SPEECH_COMMAND_ID199 CONFIG_CN_SPEECH_COMMAND_ID199
#elif CONFIG_SR_MN_ENGLISH #elif CONFIG_SR_MN_ENGLISH
#define MN_SPEECH_COMMAND_ID0 CONFIG_EN_SPEECH_COMMAND_ID0 #define MN_SPEECH_COMMAND_ID0 CONFIG_EN_SPEECH_COMMAND_ID0
#define MN_SPEECH_COMMAND_ID1 CONFIG_EN_SPEECH_COMMAND_ID1 #define MN_SPEECH_COMMAND_ID1 CONFIG_EN_SPEECH_COMMAND_ID1
@ -203,6 +303,106 @@
#define MN_SPEECH_COMMAND_ID97 CONFIG_EN_SPEECH_COMMAND_ID97 #define MN_SPEECH_COMMAND_ID97 CONFIG_EN_SPEECH_COMMAND_ID97
#define MN_SPEECH_COMMAND_ID98 CONFIG_EN_SPEECH_COMMAND_ID98 #define MN_SPEECH_COMMAND_ID98 CONFIG_EN_SPEECH_COMMAND_ID98
#define MN_SPEECH_COMMAND_ID99 CONFIG_EN_SPEECH_COMMAND_ID99 #define MN_SPEECH_COMMAND_ID99 CONFIG_EN_SPEECH_COMMAND_ID99
#define MN_SPEECH_COMMAND_ID100 CONFIG_EN_SPEECH_COMMAND_ID100
#define MN_SPEECH_COMMAND_ID101 CONFIG_EN_SPEECH_COMMAND_ID101
#define MN_SPEECH_COMMAND_ID102 CONFIG_EN_SPEECH_COMMAND_ID102
#define MN_SPEECH_COMMAND_ID103 CONFIG_EN_SPEECH_COMMAND_ID103
#define MN_SPEECH_COMMAND_ID104 CONFIG_EN_SPEECH_COMMAND_ID104
#define MN_SPEECH_COMMAND_ID105 CONFIG_EN_SPEECH_COMMAND_ID105
#define MN_SPEECH_COMMAND_ID106 CONFIG_EN_SPEECH_COMMAND_ID106
#define MN_SPEECH_COMMAND_ID107 CONFIG_EN_SPEECH_COMMAND_ID107
#define MN_SPEECH_COMMAND_ID108 CONFIG_EN_SPEECH_COMMAND_ID108
#define MN_SPEECH_COMMAND_ID109 CONFIG_EN_SPEECH_COMMAND_ID109
#define MN_SPEECH_COMMAND_ID110 CONFIG_EN_SPEECH_COMMAND_ID110
#define MN_SPEECH_COMMAND_ID111 CONFIG_EN_SPEECH_COMMAND_ID111
#define MN_SPEECH_COMMAND_ID112 CONFIG_EN_SPEECH_COMMAND_ID112
#define MN_SPEECH_COMMAND_ID113 CONFIG_EN_SPEECH_COMMAND_ID113
#define MN_SPEECH_COMMAND_ID114 CONFIG_EN_SPEECH_COMMAND_ID114
#define MN_SPEECH_COMMAND_ID115 CONFIG_EN_SPEECH_COMMAND_ID115
#define MN_SPEECH_COMMAND_ID116 CONFIG_EN_SPEECH_COMMAND_ID116
#define MN_SPEECH_COMMAND_ID117 CONFIG_EN_SPEECH_COMMAND_ID117
#define MN_SPEECH_COMMAND_ID118 CONFIG_EN_SPEECH_COMMAND_ID118
#define MN_SPEECH_COMMAND_ID119 CONFIG_EN_SPEECH_COMMAND_ID119
#define MN_SPEECH_COMMAND_ID120 CONFIG_EN_SPEECH_COMMAND_ID120
#define MN_SPEECH_COMMAND_ID121 CONFIG_EN_SPEECH_COMMAND_ID121
#define MN_SPEECH_COMMAND_ID122 CONFIG_EN_SPEECH_COMMAND_ID122
#define MN_SPEECH_COMMAND_ID123 CONFIG_EN_SPEECH_COMMAND_ID123
#define MN_SPEECH_COMMAND_ID124 CONFIG_EN_SPEECH_COMMAND_ID124
#define MN_SPEECH_COMMAND_ID125 CONFIG_EN_SPEECH_COMMAND_ID125
#define MN_SPEECH_COMMAND_ID126 CONFIG_EN_SPEECH_COMMAND_ID126
#define MN_SPEECH_COMMAND_ID127 CONFIG_EN_SPEECH_COMMAND_ID127
#define MN_SPEECH_COMMAND_ID128 CONFIG_EN_SPEECH_COMMAND_ID128
#define MN_SPEECH_COMMAND_ID129 CONFIG_EN_SPEECH_COMMAND_ID129
#define MN_SPEECH_COMMAND_ID130 CONFIG_EN_SPEECH_COMMAND_ID130
#define MN_SPEECH_COMMAND_ID131 CONFIG_EN_SPEECH_COMMAND_ID131
#define MN_SPEECH_COMMAND_ID132 CONFIG_EN_SPEECH_COMMAND_ID132
#define MN_SPEECH_COMMAND_ID133 CONFIG_EN_SPEECH_COMMAND_ID133
#define MN_SPEECH_COMMAND_ID134 CONFIG_EN_SPEECH_COMMAND_ID134
#define MN_SPEECH_COMMAND_ID135 CONFIG_EN_SPEECH_COMMAND_ID135
#define MN_SPEECH_COMMAND_ID136 CONFIG_EN_SPEECH_COMMAND_ID136
#define MN_SPEECH_COMMAND_ID137 CONFIG_EN_SPEECH_COMMAND_ID137
#define MN_SPEECH_COMMAND_ID138 CONFIG_EN_SPEECH_COMMAND_ID138
#define MN_SPEECH_COMMAND_ID139 CONFIG_EN_SPEECH_COMMAND_ID139
#define MN_SPEECH_COMMAND_ID140 CONFIG_EN_SPEECH_COMMAND_ID140
#define MN_SPEECH_COMMAND_ID141 CONFIG_EN_SPEECH_COMMAND_ID141
#define MN_SPEECH_COMMAND_ID142 CONFIG_EN_SPEECH_COMMAND_ID142
#define MN_SPEECH_COMMAND_ID143 CONFIG_EN_SPEECH_COMMAND_ID143
#define MN_SPEECH_COMMAND_ID144 CONFIG_EN_SPEECH_COMMAND_ID144
#define MN_SPEECH_COMMAND_ID145 CONFIG_EN_SPEECH_COMMAND_ID145
#define MN_SPEECH_COMMAND_ID146 CONFIG_EN_SPEECH_COMMAND_ID146
#define MN_SPEECH_COMMAND_ID147 CONFIG_EN_SPEECH_COMMAND_ID147
#define MN_SPEECH_COMMAND_ID148 CONFIG_EN_SPEECH_COMMAND_ID148
#define MN_SPEECH_COMMAND_ID149 CONFIG_EN_SPEECH_COMMAND_ID149
#define MN_SPEECH_COMMAND_ID150 CONFIG_EN_SPEECH_COMMAND_ID150
#define MN_SPEECH_COMMAND_ID151 CONFIG_EN_SPEECH_COMMAND_ID151
#define MN_SPEECH_COMMAND_ID152 CONFIG_EN_SPEECH_COMMAND_ID152
#define MN_SPEECH_COMMAND_ID153 CONFIG_EN_SPEECH_COMMAND_ID153
#define MN_SPEECH_COMMAND_ID154 CONFIG_EN_SPEECH_COMMAND_ID154
#define MN_SPEECH_COMMAND_ID155 CONFIG_EN_SPEECH_COMMAND_ID155
#define MN_SPEECH_COMMAND_ID156 CONFIG_EN_SPEECH_COMMAND_ID156
#define MN_SPEECH_COMMAND_ID157 CONFIG_EN_SPEECH_COMMAND_ID157
#define MN_SPEECH_COMMAND_ID158 CONFIG_EN_SPEECH_COMMAND_ID158
#define MN_SPEECH_COMMAND_ID159 CONFIG_EN_SPEECH_COMMAND_ID159
#define MN_SPEECH_COMMAND_ID160 CONFIG_EN_SPEECH_COMMAND_ID160
#define MN_SPEECH_COMMAND_ID161 CONFIG_EN_SPEECH_COMMAND_ID161
#define MN_SPEECH_COMMAND_ID162 CONFIG_EN_SPEECH_COMMAND_ID162
#define MN_SPEECH_COMMAND_ID163 CONFIG_EN_SPEECH_COMMAND_ID163
#define MN_SPEECH_COMMAND_ID164 CONFIG_EN_SPEECH_COMMAND_ID164
#define MN_SPEECH_COMMAND_ID165 CONFIG_EN_SPEECH_COMMAND_ID165
#define MN_SPEECH_COMMAND_ID166 CONFIG_EN_SPEECH_COMMAND_ID166
#define MN_SPEECH_COMMAND_ID167 CONFIG_EN_SPEECH_COMMAND_ID167
#define MN_SPEECH_COMMAND_ID168 CONFIG_EN_SPEECH_COMMAND_ID168
#define MN_SPEECH_COMMAND_ID169 CONFIG_EN_SPEECH_COMMAND_ID169
#define MN_SPEECH_COMMAND_ID170 CONFIG_EN_SPEECH_COMMAND_ID170
#define MN_SPEECH_COMMAND_ID171 CONFIG_EN_SPEECH_COMMAND_ID171
#define MN_SPEECH_COMMAND_ID172 CONFIG_EN_SPEECH_COMMAND_ID172
#define MN_SPEECH_COMMAND_ID173 CONFIG_EN_SPEECH_COMMAND_ID173
#define MN_SPEECH_COMMAND_ID174 CONFIG_EN_SPEECH_COMMAND_ID174
#define MN_SPEECH_COMMAND_ID175 CONFIG_EN_SPEECH_COMMAND_ID175
#define MN_SPEECH_COMMAND_ID176 CONFIG_EN_SPEECH_COMMAND_ID176
#define MN_SPEECH_COMMAND_ID177 CONFIG_EN_SPEECH_COMMAND_ID177
#define MN_SPEECH_COMMAND_ID178 CONFIG_EN_SPEECH_COMMAND_ID178
#define MN_SPEECH_COMMAND_ID179 CONFIG_EN_SPEECH_COMMAND_ID179
#define MN_SPEECH_COMMAND_ID180 CONFIG_EN_SPEECH_COMMAND_ID180
#define MN_SPEECH_COMMAND_ID181 CONFIG_EN_SPEECH_COMMAND_ID181
#define MN_SPEECH_COMMAND_ID182 CONFIG_EN_SPEECH_COMMAND_ID182
#define MN_SPEECH_COMMAND_ID183 CONFIG_EN_SPEECH_COMMAND_ID183
#define MN_SPEECH_COMMAND_ID184 CONFIG_EN_SPEECH_COMMAND_ID184
#define MN_SPEECH_COMMAND_ID185 CONFIG_EN_SPEECH_COMMAND_ID185
#define MN_SPEECH_COMMAND_ID186 CONFIG_EN_SPEECH_COMMAND_ID186
#define MN_SPEECH_COMMAND_ID187 CONFIG_EN_SPEECH_COMMAND_ID187
#define MN_SPEECH_COMMAND_ID188 CONFIG_EN_SPEECH_COMMAND_ID188
#define MN_SPEECH_COMMAND_ID189 CONFIG_EN_SPEECH_COMMAND_ID189
#define MN_SPEECH_COMMAND_ID190 CONFIG_EN_SPEECH_COMMAND_ID190
#define MN_SPEECH_COMMAND_ID191 CONFIG_EN_SPEECH_COMMAND_ID191
#define MN_SPEECH_COMMAND_ID192 CONFIG_EN_SPEECH_COMMAND_ID192
#define MN_SPEECH_COMMAND_ID193 CONFIG_EN_SPEECH_COMMAND_ID193
#define MN_SPEECH_COMMAND_ID194 CONFIG_EN_SPEECH_COMMAND_ID194
#define MN_SPEECH_COMMAND_ID195 CONFIG_EN_SPEECH_COMMAND_ID195
#define MN_SPEECH_COMMAND_ID196 CONFIG_EN_SPEECH_COMMAND_ID196
#define MN_SPEECH_COMMAND_ID197 CONFIG_EN_SPEECH_COMMAND_ID197
#define MN_SPEECH_COMMAND_ID198 CONFIG_EN_SPEECH_COMMAND_ID198
#define MN_SPEECH_COMMAND_ID199 CONFIG_EN_SPEECH_COMMAND_ID199
#endif #endif
char *get_id_name(int i); char *get_id_name(int i);
void reset_speech_commands(model_iface_data_t *model_data, char* command_str, char *err_phrase_id); void reset_speech_commands(model_iface_data_t *model_data, char* command_str, char *err_phrase_id);

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
3193470f6599f3247677b53b2c76ad36319e2656 50777c8ff3c976a344b80b514733bc5ce11f7aea

View File

@ -207,6 +207,206 @@ char *get_id_name(int i)
return MN_SPEECH_COMMAND_ID98; return MN_SPEECH_COMMAND_ID98;
else if (i == 99) else if (i == 99)
return MN_SPEECH_COMMAND_ID99; return MN_SPEECH_COMMAND_ID99;
else if (i == 100)
return MN_SPEECH_COMMAND_ID100;
else if (i == 101)
return MN_SPEECH_COMMAND_ID101;
else if (i == 102)
return MN_SPEECH_COMMAND_ID102;
else if (i == 103)
return MN_SPEECH_COMMAND_ID103;
else if (i == 104)
return MN_SPEECH_COMMAND_ID104;
else if (i == 105)
return MN_SPEECH_COMMAND_ID105;
else if (i == 106)
return MN_SPEECH_COMMAND_ID106;
else if (i == 107)
return MN_SPEECH_COMMAND_ID107;
else if (i == 108)
return MN_SPEECH_COMMAND_ID108;
else if (i == 109)
return MN_SPEECH_COMMAND_ID109;
else if (i == 110)
return MN_SPEECH_COMMAND_ID110;
else if (i == 111)
return MN_SPEECH_COMMAND_ID111;
else if (i == 112)
return MN_SPEECH_COMMAND_ID112;
else if (i == 113)
return MN_SPEECH_COMMAND_ID113;
else if (i == 114)
return MN_SPEECH_COMMAND_ID114;
else if (i == 115)
return MN_SPEECH_COMMAND_ID115;
else if (i == 116)
return MN_SPEECH_COMMAND_ID116;
else if (i == 117)
return MN_SPEECH_COMMAND_ID117;
else if (i == 118)
return MN_SPEECH_COMMAND_ID118;
else if (i == 119)
return MN_SPEECH_COMMAND_ID119;
else if (i == 120)
return MN_SPEECH_COMMAND_ID120;
else if (i == 121)
return MN_SPEECH_COMMAND_ID121;
else if (i == 122)
return MN_SPEECH_COMMAND_ID122;
else if (i == 123)
return MN_SPEECH_COMMAND_ID123;
else if (i == 124)
return MN_SPEECH_COMMAND_ID124;
else if (i == 125)
return MN_SPEECH_COMMAND_ID125;
else if (i == 126)
return MN_SPEECH_COMMAND_ID126;
else if (i == 127)
return MN_SPEECH_COMMAND_ID127;
else if (i == 128)
return MN_SPEECH_COMMAND_ID128;
else if (i == 129)
return MN_SPEECH_COMMAND_ID129;
else if (i == 130)
return MN_SPEECH_COMMAND_ID130;
else if (i == 131)
return MN_SPEECH_COMMAND_ID131;
else if (i == 132)
return MN_SPEECH_COMMAND_ID132;
else if (i == 133)
return MN_SPEECH_COMMAND_ID133;
else if (i == 134)
return MN_SPEECH_COMMAND_ID134;
else if (i == 135)
return MN_SPEECH_COMMAND_ID135;
else if (i == 136)
return MN_SPEECH_COMMAND_ID136;
else if (i == 137)
return MN_SPEECH_COMMAND_ID137;
else if (i == 138)
return MN_SPEECH_COMMAND_ID138;
else if (i == 139)
return MN_SPEECH_COMMAND_ID139;
else if (i == 140)
return MN_SPEECH_COMMAND_ID140;
else if (i == 141)
return MN_SPEECH_COMMAND_ID141;
else if (i == 142)
return MN_SPEECH_COMMAND_ID142;
else if (i == 143)
return MN_SPEECH_COMMAND_ID143;
else if (i == 144)
return MN_SPEECH_COMMAND_ID144;
else if (i == 145)
return MN_SPEECH_COMMAND_ID145;
else if (i == 146)
return MN_SPEECH_COMMAND_ID146;
else if (i == 147)
return MN_SPEECH_COMMAND_ID147;
else if (i == 148)
return MN_SPEECH_COMMAND_ID148;
else if (i == 149)
return MN_SPEECH_COMMAND_ID149;
else if (i == 150)
return MN_SPEECH_COMMAND_ID150;
else if (i == 151)
return MN_SPEECH_COMMAND_ID151;
else if (i == 152)
return MN_SPEECH_COMMAND_ID152;
else if (i == 153)
return MN_SPEECH_COMMAND_ID153;
else if (i == 154)
return MN_SPEECH_COMMAND_ID154;
else if (i == 155)
return MN_SPEECH_COMMAND_ID155;
else if (i == 156)
return MN_SPEECH_COMMAND_ID156;
else if (i == 157)
return MN_SPEECH_COMMAND_ID157;
else if (i == 158)
return MN_SPEECH_COMMAND_ID158;
else if (i == 159)
return MN_SPEECH_COMMAND_ID159;
else if (i == 160)
return MN_SPEECH_COMMAND_ID160;
else if (i == 161)
return MN_SPEECH_COMMAND_ID161;
else if (i == 162)
return MN_SPEECH_COMMAND_ID162;
else if (i == 163)
return MN_SPEECH_COMMAND_ID163;
else if (i == 164)
return MN_SPEECH_COMMAND_ID164;
else if (i == 165)
return MN_SPEECH_COMMAND_ID165;
else if (i == 166)
return MN_SPEECH_COMMAND_ID166;
else if (i == 167)
return MN_SPEECH_COMMAND_ID167;
else if (i == 168)
return MN_SPEECH_COMMAND_ID168;
else if (i == 169)
return MN_SPEECH_COMMAND_ID169;
else if (i == 170)
return MN_SPEECH_COMMAND_ID170;
else if (i == 171)
return MN_SPEECH_COMMAND_ID171;
else if (i == 172)
return MN_SPEECH_COMMAND_ID172;
else if (i == 173)
return MN_SPEECH_COMMAND_ID173;
else if (i == 174)
return MN_SPEECH_COMMAND_ID174;
else if (i == 175)
return MN_SPEECH_COMMAND_ID175;
else if (i == 176)
return MN_SPEECH_COMMAND_ID176;
else if (i == 177)
return MN_SPEECH_COMMAND_ID177;
else if (i == 178)
return MN_SPEECH_COMMAND_ID178;
else if (i == 179)
return MN_SPEECH_COMMAND_ID179;
else if (i == 180)
return MN_SPEECH_COMMAND_ID180;
else if (i == 181)
return MN_SPEECH_COMMAND_ID181;
else if (i == 182)
return MN_SPEECH_COMMAND_ID182;
else if (i == 183)
return MN_SPEECH_COMMAND_ID183;
else if (i == 184)
return MN_SPEECH_COMMAND_ID184;
else if (i == 185)
return MN_SPEECH_COMMAND_ID185;
else if (i == 186)
return MN_SPEECH_COMMAND_ID186;
else if (i == 187)
return MN_SPEECH_COMMAND_ID187;
else if (i == 188)
return MN_SPEECH_COMMAND_ID188;
else if (i == 189)
return MN_SPEECH_COMMAND_ID189;
else if (i == 190)
return MN_SPEECH_COMMAND_ID190;
else if (i == 191)
return MN_SPEECH_COMMAND_ID191;
else if (i == 192)
return MN_SPEECH_COMMAND_ID192;
else if (i == 193)
return MN_SPEECH_COMMAND_ID193;
else if (i == 194)
return MN_SPEECH_COMMAND_ID194;
else if (i == 195)
return MN_SPEECH_COMMAND_ID195;
else if (i == 196)
return MN_SPEECH_COMMAND_ID196;
else if (i == 197)
return MN_SPEECH_COMMAND_ID197;
else if (i == 198)
return MN_SPEECH_COMMAND_ID198;
else if (i == 199)
return MN_SPEECH_COMMAND_ID199;
else else
return NULL; return NULL;
#else #else