[core] support partial speech events

This commit is contained in:
Seven Du 2019-10-11 15:32:09 +08:00 committed by Andrey Volk
parent da31fac5a0
commit 00967290b9

View File

@ -4673,9 +4673,9 @@ static void *SWITCH_THREAD_FUNC speech_thread(switch_thread_t *thread, void *obj
status = switch_core_asr_get_results(sth->ah, &xmlstr, &flags); status = switch_core_asr_get_results(sth->ah, &xmlstr, &flags);
if (status != SWITCH_STATUS_SUCCESS && status != SWITCH_STATUS_BREAK) { if (status != SWITCH_STATUS_SUCCESS && status != SWITCH_STATUS_BREAK && status != SWITCH_STATUS_MORE_DATA) {
goto done; goto done;
} else if (status == SWITCH_STATUS_SUCCESS) { } else {
/* Try to fetch extra information for this result, the return value doesn't really matter here - it's just optional data. */ /* Try to fetch extra information for this result, the return value doesn't really matter here - it's just optional data. */
switch_core_asr_get_result_headers(sth->ah, &headers, &flags); switch_core_asr_get_result_headers(sth->ah, &headers, &flags);
} }
@ -4732,6 +4732,14 @@ static void *SWITCH_THREAD_FUNC speech_thread(switch_thread_t *thread, void *obj
switch_event_merge(event, headers); switch_event_merge(event, headers);
} }
switch_event_add_body(event, "%s", xmlstr);
} else if (status == SWITCH_STATUS_MORE_DATA) {
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Speech-Type", "detected-partial-speech");
if (headers) {
switch_event_merge(event, headers);
}
switch_event_add_body(event, "%s", xmlstr); switch_event_add_body(event, "%s", xmlstr);
} else { } else {
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Speech-Type", "begin-speaking"); switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Speech-Type", "begin-speaking");