}
}
}
+ mWakeupManagerState = state;
}
void CWakeupEngineManager::update_recognition_result(string appid, int result)
info.audio_data_require_status &&
info.interface.feed_audio_data) {
try {
- int ret = info.interface.feed_audio_data(time, data, len);
- if (0 != ret) {
- LOGE("[ERROR] Fail to feed speech data, ret(%d) : %s", ret, info.engine_name.c_str());
+ bool filtered_out = false;
+ /* After a wakeup event, wakeup engines other than the selected one
+ does not need to receive audio data. */
+ if (WAKEUP_MANAGER_STATE_UTTERANCE == mWakeupManagerState) {
+ if (mSelectedEngine && &info != mSelectedEngine) {
+ filtered_out = true;
+ }
+ }
+ if (!filtered_out) {
+ int ret = info.interface.feed_audio_data(time, data, len);
+ if (0 != ret) {
+ LOGE("[ERROR] Fail to feed speech data, ret(%d) : %s", ret, info.engine_name.c_str());
+ }
}
} catch (const std::exception& e) {
MWR_LOGE("[ERROR] wakeup engine %s threw exception : %s",