| | |
| | | multinet_->set_det_threshold(multinet_data_, 0.2f); |
| | | esp_mn_commands_clear(); |
| | | esp_mn_commands_add(1, OFFLINE_COMMAND_WORD_PINYIN); |
| | | esp_mn_commands_add(2, OFFLINE_REPEATER_WORD_PINYIN); |
| | | esp_mn_commands_add(3, OFFLINE_START_REPEATER_WORD_PINYIN); |
| | | esp_mn_commands_add(4, OFFLINE_EXIT_REPEATER_WORD_PINYIN); |
| | | esp_mn_commands_add(5, OFFLINE_COMMAND_WORD_ALT_PINYIN); |
| | | esp_mn_commands_add(6, OFFLINE_CHAT_WORD_PINYIN); |
| | | esp_mn_commands_add(7, OFFLINE_EXIT_SHADOWING_WORD_PINYIN); |
| | | esp_mn_commands_add(8, OFFLINE_CHAT_WORD_FULL_PINYIN); |
| | | esp_mn_commands_update(); |
| | | multinet_->print_active_speech_commands(multinet_data_); |
| | | } else { |
| | |
| | | auto this_ = (AfeWakeWord*)arg; |
| | | this_->AudioDetectionTask(); |
| | | vTaskDelete(NULL); |
| | | }, "audio_detection", 4096, this, 3, nullptr); |
| | | }, "audio_detection", 8192, this, 3, nullptr); |
| | | |
| | | return true; |
| | | } |
| | |
| | | if (mn_state == ESP_MN_STATE_DETECTED) { |
| | | esp_mn_results_t *mn_result = multinet_->get_results(multinet_data_); |
| | | for (int i = 0; i < mn_result->num; i++) { |
| | | int command_id = mn_result->command_id[i]; |
| | | const char *command_text = nullptr; |
| | | if (command_id == 1 || command_id == 5) { |
| | | command_text = OFFLINE_COMMAND_WORD; |
| | | } else if (command_id == 2) { |
| | | command_text = OFFLINE_REPEATER_WORD; |
| | | } else if (command_id == 3) { |
| | | command_text = OFFLINE_START_REPEATER_WORD; |
| | | } else if (command_id == 4) { |
| | | command_text = OFFLINE_EXIT_REPEATER_WORD; |
| | | } else if (command_id == 6) { |
| | | command_text = OFFLINE_CHAT_WORD; |
| | | } else if (command_id == 7) { |
| | | command_text = OFFLINE_EXIT_SHADOWING_WORD; |
| | | } else if (command_id == 8) { |
| | | command_text = OFFLINE_CHAT_WORD_FULL; |
| | | } |
| | | ESP_LOGI(TAG, "Offline command detected: command_id=%d, string=%s, prob=%f", |
| | | mn_result->command_id[i], mn_result->string, mn_result->prob[i]); |
| | | if (mn_result->command_id[i] == 1 && offline_command_detected_callback_) { |
| | | offline_command_detected_callback_(OFFLINE_COMMAND_WORD); |
| | | command_id, mn_result->string, mn_result->prob[i]); |
| | | if (command_text && offline_command_detected_callback_) { |
| | | offline_command_detected_callback_(command_text); |
| | | } |
| | | } |
| | | multinet_->clean(multinet_data_); |