-
static char s_voicechat_dialog_id[MMI_VOICECHAT_MSG_DIALOG_ID_LEN + 1] = {0};
-
void mmi_voicechat_dialog_id_set(char * id)
{
if(NULL == id)
return s_voicechat_dialog_id;
}
+static char s_voicechat_trace_id[MMI_VOICECHAT_MSG_TRACE_ID_LEN + 1] = {0};
+void mmi_voicechat_trace_id_set(char * id)
+{
+ if(NULL == id)
+ return;
+
+ _lv_memset_00(s_voicechat_trace_id, (MMI_VOICECHAT_MSG_TRACE_ID_LEN + 1));
+ _lv_memcpy(s_voicechat_trace_id, id, MMI_VOICECHAT_MSG_TRACE_ID_LEN);
+}
+
+char * mmi_voicechat_trace_id_get(void)
+{
+ return s_voicechat_trace_id;
+}
+
+static char s_voicechat_task_id[MMI_VOICECHAT_MSG_TASK_ID_LEN + 1] = {0};
+void mmi_voicechat_task_id_set(char * id)
+{
+ if(NULL == id)
+ return;
+
+ _lv_memset_00(s_voicechat_task_id, (MMI_VOICECHAT_MSG_TASK_ID_LEN + 1));
+ _lv_memcpy(s_voicechat_task_id, id, MMI_VOICECHAT_MSG_TASK_ID_LEN);
+}
+
+char * mmi_voicechat_task_id_get(void)
+{
+ return s_voicechat_task_id;
+}
+
+static char s_voicechat_server_state[32] = {0};
+void mmi_voicechat_server_state_set(char * state_str)
+{
+ if(0 == strncmp(MMI_VOICECHAT_SERVER_STATE_LISTENING, state_str, strlen(state_str))
+ || 0 == strncmp(MMI_VOICECHAT_SERVER_STATE_THINKING, state_str, strlen(state_str))
+ || 0 == strncmp(MMI_VOICECHAT_SERVER_STATE_RESPONDING, state_str, strlen(state_str))
+ )
+ {
+ _lv_memset_00(s_voicechat_server_state, 32);
+ _lv_memcpy(s_voicechat_server_state, state_str, strlen(state_str));
+ }
+}
+
+bool mmi_voicechat_server_state_is_listening(void)
+{
+ if(0 == strncmp(s_voicechat_server_state, MMI_VOICECHAT_SERVER_STATE_LISTENING, strlen(MMI_VOICECHAT_SERVER_STATE_LISTENING)))
+ {
+ return true;
+ }
+
+ return false;
+}
+
+static bool s_voicechat_recv_tts_flag = false;
+void mmi_voicechat_recv_tts_flag_set(bool flag)
+{
+ s_voicechat_recv_tts_flag = flag;
+}
+
+bool mmi_voicechat_recv_tts_flag_get(void)
+{
+ return s_voicechat_recv_tts_flag;
+}
+
+
void mmi_random_string_generate(char * str_buf, uint16_t str_size, uint16_t str_len)
{
#if 0
mmi_voicechat_data_send_task_msg_send(VOICECHAT_MSG_ID_START_REQUEST, NULL, 0);
}
+//{"header":{"trace_id":"ailaqbo0r6o","event":"Start"},
+//"payload":{"device_id":"test_device_id","user_agent":"python","in_format":"pcm","out_format":"pcm","sample_rate":16000,"space_time":100}}
static void mmi_voicechat_send_start_request_process(void * data_ptr, uint32_t data_len)
{
char send_ptr[1024] = {0};
int send_len = 0;
- char message_id[MMI_VOICECHAT_MSG_MESSAGE_ID_LEN + 1] = {0};
- char task_id[MMI_VOICECHAT_MSG_TASK_ID_LEN + 1] = {0};
+ char trace_id[MMI_VOICECHAT_MSG_TRACE_ID_LEN + 1] = {0};
char imei[16 + 1] = {0};
app_adp_get_imei_req(imei);
- mmi_random_string_generate(message_id, MMI_VOICECHAT_MSG_MESSAGE_ID_LEN + 1, MMI_VOICECHAT_MSG_MESSAGE_ID_LEN);
- mmi_random_string_generate(task_id, MMI_VOICECHAT_MSG_TASK_ID_LEN + 1, MMI_VOICECHAT_MSG_TASK_ID_LEN);
+ mmi_random_string_generate(trace_id, MMI_VOICECHAT_MSG_TRACE_ID_LEN + 1, MMI_VOICECHAT_MSG_TRACE_ID_LEN);
+ mmi_voicechat_trace_id_set(trace_id);
- VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: message_id=%s\n", __FUNCTION__, __LINE__, message_id);
- VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: task_id=%s\n", __FUNCTION__, __LINE__, task_id);
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: trace_id=%s\n", __FUNCTION__, __LINE__, trace_id);
- send_len += sprintf(send_ptr, "{\"header\":{\"namespace\":\"VoiceChat\",\"name\":\"Start\","
- "\"appkey\":\"%s\",\"message_id\":\"%s\",\"task_id\":\"%s\"},",
- MMI_VOICECHAT_MSG_APPKEY, message_id, task_id);
+ send_len += sprintf(send_ptr, "{");
+
+ send_len += sprintf(send_ptr + send_len, "\"header\":{\"event\":\"Start\",\"trace_id\":\"%s\"},", trace_id);
+
send_len += sprintf(send_ptr + send_len, "\"payload\":{\"user_agent\":\"python\",\"device_id\":\"%s\","
- "\"dialog_attributes\":{\"model_id\":\"qwen-plus\","
- "\"prompt\":\"你是一个有用的语音助手\","
- "\"voice\":\"longxiaochun\"}}}",
- imei);
+ "\"in_format\":\"%s\",\"out_format\":\"%s\","
+ //"\"sample_rate\":%d,\"space_time\":500,\"volume\":\"3\"}",
+ "\"space_time\":400}",
+ imei,
+ MMI_VOICECHAT_UL_AUDIO_FORMAT_STR,
+ MMI_VOICECHAT_DL_AUDIO_FORMAT_STR);
+
+ send_len += sprintf(send_ptr + send_len, "}");
#ifdef MMI_VOICECHAT_DEBUG_TO_FILE
mmi_debug_info_write_to_file(VOICECHAT_SEND_DATA_FILE, send_ptr, send_len);
}
-#if 0
-void mmi_voicechat_send_tts_text_msg(void * param, uint32_t param_size)
-{
- mmi_voicechat_data_send_task_msg_send(MMI_VOICECHAT_MSG_TTS_TEXT_SEND, param, param_size);
+void mmi_voicechat_send_send_speech_msg(void * param, uint32_t param_size)
+{
+ mmi_voicechat_data_send_task_msg_send(VOICECHAT_MSG_ID_SEND_SPEECH, NULL, 0);
}
-static void mmi_voicechat_send_tts_text_data_process(void * data_ptr, uint32_t data_len)
+//{"header":{"trace_id":"ailaqbo0r6o","event":"SendSpeech"},"payload":{"dialog_id":"b0444aed86774e47a142a967e5668a8b"}}
+static void mmi_voicechat_send_send_speech_process(void * data_ptr, uint32_t data_len)
{
- VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: size=%d\n", __FUNCTION__, __LINE__, data_len);
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ char send_ptr[1024] = {0};
+ int send_len = 0;
+
+ send_len += sprintf(send_ptr, "{");
- uint32_t temp_len = 0;
- uint32_t send_buff_len = data_len + 256;
- char * send_buff_ptr = lv_mem_alloc(send_buff_len);
- if(NULL == send_buff_ptr)
- {
- VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc fail\n", __FUNCTION__, __LINE__);
- return;
- }
- _lv_memset_00(send_buff_ptr, send_buff_len);
+ send_len += sprintf(send_ptr + send_len, "\"header\":{\"event\":\"SendSpeech\",\"trace_id\":\"%s\"},", mmi_voicechat_trace_id_get());
- temp_len = 0;
- temp_len += sprintf(send_buff_ptr + temp_len, "{\"header\":{\"event\":\"LongTextStream\",\"trace_id\":\"3fa6b9e6a30b407ea38ad7ae69e6c291\"},");
- temp_len += sprintf(send_buff_ptr + temp_len, "\"payload\":{\"voice\":\"xiaoyun\",\"format\":\"mp3\",\"sample_rate\":8000,\"volume\":50,\"speech_rate\":2,"); // 0,");
- temp_len += sprintf(send_buff_ptr + temp_len, "\"text\":\"%s\"}}", data_ptr); // 185 + data_len
+ send_len += sprintf(send_ptr + send_len, "\"payload\":{\"dialog_id\":\"%s\"}", mmi_voicechat_dialog_id_get());
+
+ send_len += sprintf(send_ptr + send_len, "}");
#ifdef MMI_VOICECHAT_DEBUG_TO_FILE
- mmi_debug_info_write_to_file(VOICECHAT_SEND_TTS_TEXT_FILE, send_buff_ptr, temp_len);
+ mmi_debug_info_write_to_file(VOICECHAT_SEND_DATA_FILE, send_ptr, send_len);
#endif
- VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: send_len=%d\n", __FUNCTION__, __LINE__, temp_len);
- //int ret = mmi_voicechat_tts_websocket_send_text_data(send_buff_ptr, temp_len);
- //if(0 > ret)
- {
- //VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: error=%d,send fail\n", __FUNCTION__, __LINE__, ret);
- //mmi_voicechat_list_screen_signal_weak_prompt();
- }
- if(NULL != send_buff_ptr)
+ int ret = mmi_voicechat_websocket_send_text_data(send_ptr, send_len);
+ if(0 > ret)
{
- lv_mem_free(send_buff_ptr);
- send_buff_ptr = NULL;
- }
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: error=%d,send fail\n", __FUNCTION__, __LINE__, ret);
+ }
+}
+
+void mmi_voicechat_send_speech_data_msg(void * param, uint32_t param_size)
+{
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: size=%d,data=%s\n", __FUNCTION__, __LINE__, param_size, param);
+ mmi_voicechat_data_send_task_msg_send(VOICECHAT_MSG_ID_SPEECH_DATA, param, param_size);
}
+
+static void mmi_voicechat_send_speech_data_process(void * data_ptr, uint32_t data_len)
+{
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: size=%d,data=%s\n", __FUNCTION__, __LINE__, data_len, data_ptr);
+
+#ifdef MMI_VOICECHAT_DEBUG_TO_FILE
+ mmi_debug_info_write_to_file(VOICECHAT_SEND_DATA_FILE, data_ptr, data_len);
#endif
+ int ret = mmi_voicechat_websocket_send_binary_data(data_ptr, data_len);
+ if(0 > ret)
+ {
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: error=%d,send fail\n", __FUNCTION__, __LINE__, ret);
+ }
+}
-#if 0
-static void mmi_voicechat_tts_audio_data_recv_msg(void * param, uint32_t param_size)
+void mmi_voicechat_send_stop_speech_msg(void * param, uint32_t param_size)
{
- mmi_voicechat_data_recv_task_msg_send(MMI_VOICECHAT_MSG_TTS_AUDIO_RECV, param, param_size);
+ mmi_voicechat_data_send_task_msg_send(VOICECHAT_MSG_ID_STOP_SPEECH, NULL, 0);
}
-static void mmi_voicechat_recv_tts_audio_data_process(void * data_ptr, uint32_t data_len)
+//{"header":{"trace_id":"ailaqbo0r6o","event":"StopSpeech"},"payload":{"dialog_id":"b0444aed86774e47a142a967e5668a8b"}}
+static void mmi_voicechat_send_stop_speech_process(void * data_ptr, uint32_t data_len)
{
- VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: len=%d\n", __FUNCTION__, __LINE__, data_len);
- cplog_printf("[@CHENG_DEBUG][%s][%d]: len=%d\n", __FUNCTION__, __LINE__, data_len);
- if(NULL == data_ptr)
- {
- VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: no data\n", __FUNCTION__, __LINE__);
- return;
- }
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ char send_ptr[1024] = {0};
+ int send_len = 0;
+
+ send_len += sprintf(send_ptr, "{");
+
+ send_len += sprintf(send_ptr + send_len, "\"header\":{\"event\":\"StopSpeech\",\"trace_id\":\"%s\"},", mmi_voicechat_trace_id_get());
+
+ send_len += sprintf(send_ptr + send_len, "\"payload\":{\"dialog_id\":\"%s\"}", mmi_voicechat_dialog_id_get());
+
+ send_len += sprintf(send_ptr + send_len, "}");
#ifdef MMI_VOICECHAT_DEBUG_TO_FILE
- mmi_debug_info_write_to_file(VOICECHAT_RECV_TTS_FILE, data_ptr, data_len);
+ //mmi_debug_info_write_to_file(VOICECHAT_SEND_DATA_FILE, send_ptr, send_len);
#endif
- cJSON * json_root = cJSON_Parse(data_ptr);
- if(NULL != json_root)
+ int ret = mmi_voicechat_websocket_send_text_data(send_ptr, send_len);
+ if(0 > ret)
{
- cplog_printf("[@CHENG_DEBUG][%s][%d]: json root\n", __FUNCTION__, __LINE__);
- VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: tts json\n", __FUNCTION__, __LINE__);
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: error=%d,send fail\n", __FUNCTION__, __LINE__, ret);
+ }
+}
- cJSON * json_header = cJSON_GetObjectItem(json_root, "header");
- if(NULL != json_header)
- {
- char * value_event_str = cJSON_GetStringValue(cJSON_GetObjectItem(json_header, "event"));
- if(0 == strncmp(value_event_str, "EndSynthesis", strlen("EndSynthesis")))
- {
- // end
- VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: EndSynthesis\n", __FUNCTION__, __LINE__);
-
- mmi_voicechat_tts_end_synthesis_action();
- }
- }
- }
- else
+void mmi_voicechat_send_start_play_msg(void * param, uint32_t param_size)
+{
+ mmi_voicechat_data_send_task_msg_send(VOICECHAT_MSG_ID_START_PLAY, NULL, 0);
+}
+
+//{"header":{"trace_id":"ailaqbo0r6o","event":"LocalRespondingStarted"},"payload":{"dialog_id":"b0444aed86774e47a142a967e5668a8b"}}
+static void mmi_voicechat_send_start_play_process(void * data_ptr, uint32_t data_len)
+{
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ char send_ptr[1024] = {0};
+ int send_len = 0;
+
+ send_len += sprintf(send_ptr, "{");
+
+ send_len += sprintf(send_ptr + send_len, "\"header\":{\"event\":\"LocalRespondingStarted\",\"trace_id\":\"%s\"},", mmi_voicechat_trace_id_get());
+
+ send_len += sprintf(send_ptr + send_len, "\"payload\":{\"dialog_id\":\"%s\"}", mmi_voicechat_dialog_id_get());
+
+ send_len += sprintf(send_ptr + send_len, "}");
+
+#ifdef MMI_VOICECHAT_DEBUG_TO_FILE
+ //mmi_debug_info_write_to_file(VOICECHAT_SEND_DATA_FILE, send_ptr, send_len);
+#endif
+
+ int ret = mmi_voicechat_websocket_send_text_data(send_ptr, send_len);
+ if(0 > ret)
{
- // tts data
- VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: tts data\n", __FUNCTION__, __LINE__);
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: error=%d,send fail\n", __FUNCTION__, __LINE__, ret);
+ }
+}
- if(true == mmi_voicechat_tts_audio_store(data_ptr, data_len))
- {
-
- }
- }
+void mmi_voicechat_send_stop_play_msg(void * param, uint32_t param_size)
+{
+ mmi_voicechat_data_send_task_msg_send(VOICECHAT_MSG_ID_STOP_PLAY, NULL, 0);
+}
- if(NULL != json_root)
+//{"header":{"trace_id":"ailaqbo0r6o","event":"LocalRespondingEnded"},"payload":{"dialog_id":"b0444aed86774e47a142a967e5668a8b"}}
+static void mmi_voicechat_send_stop_play_process(void * data_ptr, uint32_t data_len)
+{
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ char send_ptr[1024] = {0};
+ int send_len = 0;
+
+ send_len += sprintf(send_ptr, "{");
+
+ send_len += sprintf(send_ptr + send_len, "\"header\":{\"event\":\"LocalRespondingEnded\",\"trace_id\":\"%s\"},", mmi_voicechat_trace_id_get());
+
+ send_len += sprintf(send_ptr + send_len, "\"payload\":{\"dialog_id\":\"%s\"}", mmi_voicechat_dialog_id_get());
+
+ send_len += sprintf(send_ptr + send_len, "}");
+
+#ifdef MMI_VOICECHAT_DEBUG_TO_FILE
+ //mmi_debug_info_write_to_file(VOICECHAT_SEND_DATA_FILE, send_ptr, send_len);
+#endif
+
+ int ret = mmi_voicechat_websocket_send_text_data(send_ptr, send_len);
+ if(0 > ret)
{
- VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: free json root\n", __FUNCTION__, __LINE__);
- cplog_printf("[@CHENG_DEBUG][%s][%d]: free json root\n", __FUNCTION__, __LINE__);
- cJSON_Delete(json_root);
- json_root = NULL;
- }
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: error=%d,send fail\n", __FUNCTION__, __LINE__, ret);
+ }
}
-void mmi_voicechat_websocket_recv_data_handler(char * data_ptr, int data_len, int payload_len, int payload_offset)
+void mmi_voicechat_send_speak_request_msg(void * param, uint32_t param_size)
{
- VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: size=%d\n", __FUNCTION__, __LINE__, data_len);
- //cplog_printf("[@CHENG_DEBUG][%s][%d]: size=%d\n", __FUNCTION__, __LINE__, data_len);
+ mmi_voicechat_data_send_task_msg_send(VOICECHAT_MSG_ID_SPEAK_REQUEST, NULL, 0);
+}
+
+//{"header":{"trace_id":"ailaqbo0r6o","event":"RequestToSpeak"},"payload":{"dialog_id":"b0444aed86774e47a142a967e5668a8b"}}
+static void mmi_voicechat_send_speak_request_process(void * data_ptr, uint32_t data_len)
+{
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ char send_ptr[1024] = {0};
+ int send_len = 0;
+
+ send_len += sprintf(send_ptr, "{");
- mmi_voicechat_tts_audio_data_recv_msg(data_ptr, data_len);
+ send_len += sprintf(send_ptr + send_len, "\"header\":{\"event\":\"RequestToSpeak\",\"trace_id\":\"%s\"},", mmi_voicechat_trace_id_get());
+
+ send_len += sprintf(send_ptr + send_len, "\"payload\":{\"dialog_id\":\"%s\"}", mmi_voicechat_dialog_id_get());
+
+ send_len += sprintf(send_ptr + send_len, "}");
+
+#ifdef MMI_VOICECHAT_DEBUG_TO_FILE
+ mmi_debug_info_write_to_file(VOICECHAT_SEND_DATA_FILE, send_ptr, send_len);
+#endif
+
+ int ret = mmi_voicechat_websocket_send_text_data(send_ptr, send_len);
+ if(0 > ret)
+ {
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: error=%d,send fail\n", __FUNCTION__, __LINE__, ret);
+ }
}
-#else
+
+
+
void mmi_voicechat_websocket_recv_data_handler(char * data_ptr, int data_len, int payload_len, int payload_offset)
{
cJSON * json_root = cJSON_Parse(data_ptr);
if(NULL != json_root)
{
- VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: tts json\n", __FUNCTION__, __LINE__);
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: json\n", __FUNCTION__, __LINE__);
cJSON * json_header = cJSON_GetObjectItem(json_root, "header");
if(NULL != json_header)
{
- char * value_event_str = cJSON_GetStringValue(cJSON_GetObjectItem(json_header, "event"));
- if(0 == strncmp(value_event_str, "EndSynthesis", strlen("EndSynthesis")))
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ //
+ }
+ else
+ {
+ char * value_event = cJSON_GetStringValue(cJSON_GetObjectItem(json_root, "event"));
+ cJSON * json_payload = cJSON_GetObjectItem(json_root, "payload");
+ if(0 == strncmp(value_event, "Started", strlen("Started")))
{
- // end
- VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: EndSynthesis\n", __FUNCTION__, __LINE__);
+ char * value_dialog_id = cJSON_GetStringValue(cJSON_GetObjectItem(json_payload, "dialog_id"));
- mmi_voicechat_tts_end_synthesis_action();
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: Started,%s\n", __FUNCTION__, __LINE__, value_dialog_id);
+ mmi_voicechat_dialog_id_set(value_dialog_id);
+ }
+ else if(0 == strncmp(value_event, "DialogStateChanged", strlen("DialogStateChanged")))
+ {
+ char * value_state = cJSON_GetStringValue(cJSON_GetObjectItem(json_payload, "state"));
+
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: DialogStateChanged,%s\n", __FUNCTION__, __LINE__, value_state);
+ mmi_voicechat_server_state_set(value_state);
+
+ if(true == mmi_voicechat_server_state_is_listening())
+ {
+ mmi_voicechat_send_send_speech_msg(NULL, 0);
+ }
+ }
+ else if(0 == strncmp(value_event, "SpeechContent", strlen("SpeechContent")))
+ {
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: SpeechContent\n", __FUNCTION__, __LINE__);
+
+ // update translate text
+ // "finished":true
+ char * value_text = cJSON_GetStringValue(cJSON_GetObjectItem(json_payload, "text"));
+ mmi_voicechat_trans_text_result_update(value_text, strlen(value_text));
+ mmi_voicechat_trans_text_screen_update();
+ }
+ else if(0 == strncmp(value_event, "SpeechEnded", strlen("SpeechEnded")))
+ {
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: SpeechEnded\n", __FUNCTION__, __LINE__);
+
+ mmi_voicechat_listening_screen_stop_update();
+ // translate text end
+ }
+ else if(0 == strncmp(value_event, "RespondingContent", strlen("RespondingContent")))
+ {
+ static uint16_t t_count = 0;
+ t_count++;
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: RespondingContent.times=%d\n", __FUNCTION__, __LINE__, t_count);
+
+ // update respone text
+ // "finished":true
+ char * value_text = cJSON_GetStringValue(cJSON_GetObjectItem(json_payload, "text"));
+ mmi_voicechat_chat_text_result_update(value_text, strlen(value_text));
+ mmi_voicechat_chat_text_screen_update();
+
+ if(cJSON_IsTrue(cJSON_GetObjectItem(json_payload, "finished")))
+ {
+ mmi_voicechat_chat_text_refresh_task_cb(NULL);
+ mmi_voicechat_chat_text_refresh_stop();
+ }
+ }
+ else if(0 == strncmp(value_event, "RespondingStarted", strlen("RespondingStarted")))
+ {
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: RespondingStarted\n", __FUNCTION__, __LINE__);
+
+ // server start send audio prompt
+ mmi_voicechat_recv_tts_flag_set(true);
+ mmi_voicechat_tts_audio_update_pre();
+ }
+ else if(0 == strncmp(value_event, "RespondingEnded", strlen("RespondingEnded")))
+ {
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: RespondingEnded\n", __FUNCTION__, __LINE__);
+
+ // server stop send audio prompt
+ mmi_voicechat_recv_tts_flag_set(false);
+
+ mmi_voicechat_tts_audio_play();
}
}
}
else
{
- // tts data
- VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: tts data\n", __FUNCTION__, __LINE__);
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: data\n", __FUNCTION__, __LINE__);
- if(true == mmi_voicechat_tts_audio_store(data_ptr, data_len))
- {
-
- }
+ //if(true == mmi_voicechat_recv_tts_flag_get())
+ //{
+ //
+ mmi_voicechat_tts_audio_result_update(data_ptr, data_len);
+ //}
}
if(NULL != json_root)
json_root = NULL;
}
}
-#endif
#if 0
//mmi_voicechat_send_trans_audio_data_process(msg_param, param_size);
break;
- #if 0
- case MMI_VOICECHAT_MSG_TRANS_STOP_SEND:
- //mmi_voicechat_send_trans_stop_data_process(msg_param, param_size);
+ case VOICECHAT_MSG_ID_SEND_SPEECH:
+ mmi_voicechat_send_send_speech_process(msg_param, param_size);
break;
- case MMI_VOICECHAT_MSG_CHAT_TEXT_SEND:
- //mmi_voicechat_send_chat_text_data_process(msg_param, param_size);
+ case VOICECHAT_MSG_ID_SPEECH_DATA:
+ mmi_voicechat_send_speech_data_process(msg_param, param_size);
break;
- case MMI_VOICECHAT_MSG_TTS_START_SEND:
- //mmi_voicechat_send_tts_start_data_process(msg_param, param_size);
+ case VOICECHAT_MSG_ID_STOP_SPEECH:
+ mmi_voicechat_send_stop_speech_process(msg_param, param_size);
break;
-
- case MMI_VOICECHAT_MSG_TTS_TEXT_SEND:
- //mmi_voicechat_send_tts_text_data_process(msg_param, param_size);
+
+ case VOICECHAT_MSG_ID_START_PLAY:
+ mmi_voicechat_send_start_play_process(msg_param, param_size);
break;
-
- case MMI_VOICECHAT_MSG_TTS_STOP_SEND:
- //mmi_voicechat_send_tts_stop_data_process(msg_param, param_size);
+
+ case VOICECHAT_MSG_ID_STOP_PLAY:
+ mmi_voicechat_send_stop_play_process(msg_param, param_size);
+ break;
+
+ case VOICECHAT_MSG_ID_SPEAK_REQUEST:
+ mmi_voicechat_send_speak_request_process(msg_param, param_size);
break;
- #endif
default:
break;
static uint8_t s_voicechat_current_chat_index = 0; // 1 chat = 2 msg items
static uint32_t s_voicechat_recording_sent_size = 0;
-static uint32_t s_voicechat_tts_text_sent_size = 0;
-static bool s_voicechat_trans_text_end = false;
static bool s_voicechat_tts_audio_playing = false;
static lv_ll_t s_voicechat_tts_audio_ll = {0};
static mmi_voicechat_tts_audio_ll_t * s_voicechat_tts_audio_play_node = NULL;
static bool s_voicechat_ws_open_flag = false;
-
-#define MMI_VOICECHAT_SEND_TTS_TEXT_MAX (150) // 50
-#define MMI_VOICECHAT_SEND_TTS_TEXT_MIN (99) // 33
+static bool s_voicechat_start_flag = false;
static lv_res_t mmi_voicechat_list_scrl_signal(lv_obj_t * scrl, lv_signal_t sign, void * param);
return msg_count;
}
-char * mmi_voicechat_trans_result_text_get(uint32_t * data_len)
-{
- mmi_voicechat_msg_item_info_t * t_voicechat_item_info = &(s_voicechat_info_p->msg_item[0]);
-
- * data_len = t_voicechat_item_info->text_data_size;
- return (t_voicechat_item_info->text_data_ptr);
-}
-bool mmi_voicechat_trans_result_text_store(char * data_buff, uint32_t data_len, bool is_end)
+
+bool mmi_voicechat_trans_text_result_update(char * data_buff, uint32_t data_len)
{
if(NULL == data_buff || 0 == data_len)
{
return false;
}
- if(true == s_voicechat_trans_text_end)
+ mmi_voicechat_msg_item_info_t * t_voicechat_item_info = &(s_voicechat_info_p->msg_item[0]);
+ if(NULL != t_voicechat_item_info->text_data_ptr)
{
- VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
- return false;
+ lv_mem_free(t_voicechat_item_info->text_data_ptr);
+ t_voicechat_item_info->text_data_ptr = NULL;
+ t_voicechat_item_info->text_data_size = 0;
}
- s_voicechat_trans_text_end = is_end;
- mmi_voicechat_msg_item_info_t * t_voicechat_item_info = &(s_voicechat_info_p->msg_item[0]);
-
-#if 1
char * temp_ptr = lv_mem_alloc(data_len + 1);
if(NULL == temp_ptr)
{
}
_lv_memset_00(temp_ptr, data_len + 1);
_lv_memcpy(temp_ptr, data_buff, data_len);
-
- if(NULL != t_voicechat_item_info->text_data_ptr)
- {
- lv_mem_free(t_voicechat_item_info->text_data_ptr);
- t_voicechat_item_info->text_data_ptr = NULL;
- }
+
t_voicechat_item_info->text_data_ptr = temp_ptr;
t_voicechat_item_info->text_data_size = data_len;
-
-#else
- if(NULL == t_voicechat_item_info->text_data_ptr)
- {
- char * temp_ptr = lv_mem_alloc(data_len + 1);
- if(NULL == temp_ptr)
- {
- VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: alloc memory fail\n", __FUNCTION__, __LINE__);
- return false;
- }
- _lv_memset_00(temp_ptr, data_len + 1);
- _lv_memcpy(temp_ptr, data_buff, data_len);
-
- t_voicechat_item_info->text_data_ptr = temp_ptr;
- t_voicechat_item_info->text_data_size = data_len;
- }
- else
- {
- char * temp_ptr = lv_mem_realloc(t_voicechat_item_info->text_data_ptr, t_voicechat_item_info->text_data_size + data_len + 1);
- if(NULL == temp_ptr)
- {
- VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: realloc memory fail\n", __FUNCTION__, __LINE__);
- return false;
- }
- _lv_memset_00(temp_ptr + t_voicechat_item_info->text_data_size, data_len + 1);
- _lv_memcpy(temp_ptr + t_voicechat_item_info->text_data_size, data_buff, data_len);
-
- t_voicechat_item_info->text_data_ptr = temp_ptr;
- t_voicechat_item_info->text_data_size += data_len;
- }
-#endif
+
t_voicechat_item_info->msg_from = 0;
s_voicechat_info_p->msg_count = 1;
- VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: size=%d,ptr=0x%x\n", __FUNCTION__, __LINE__, t_voicechat_item_info->text_data_size, t_voicechat_item_info->text_data_ptr);
-
-#ifdef MMI_VOICECHAT_DEBUG_TO_FILE
- //mmi_debug_info_write_to_file(VOICECHAT_RECV_TRANS_RESULT_FILE, t_voicechat_item_info->text_data_ptr, t_voicechat_item_info->text_data_size);
-#endif
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: size=%d,ptr=0x%x\n", __FUNCTION__, __LINE__,
+ t_voicechat_item_info->text_data_size, t_voicechat_item_info->text_data_ptr);
return true;
}
-static void mmi_voicechat_trans_text_middle_screen_task_cb(lv_task_t * task)
-{
- VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: ui_state=%d\n", __FUNCTION__, __LINE__, s_voicechat_ui_state);
+static bool s_trans_text_update_flag = false;
+void mmi_voicechat_trans_text_refresh_stop(void)
+{
+ lv_voicechat_ext_t * ext = mmi_voicechat_actId_ext_get(ACT_ID_VOICECHAT_MAIN);
+ if(NULL == ext)
+ return;
- if(MMI_VOICECHAT_UI_STATE_LISTENING == s_voicechat_ui_state || MMI_VOICECHAT_UI_STATE_LISTENING_MIDDLE == s_voicechat_ui_state)
- {
+ if(NULL != ext->refresh_task_p)
+ {
+ lv_task_del(ext->refresh_task_p);
+ ext->refresh_task_p = NULL;
+ }
+}
+
+void mmi_voicechat_trans_text_refresh_task_cb(lv_task_t * task)
+{
+ if(MMI_VOICECHAT_UI_STATE_LIST == s_voicechat_ui_state)
+ {
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
lv_voicechat_ext_t * ext = mmi_voicechat_actId_ext_get(ACT_ID_VOICECHAT_MAIN);
if(NULL == ext)
return;
-
- mmi_voicechat_list_set_slide_enable(&ext->old_ext, true);
-
- if(0 != mmi_voicechat_msg_count_get())
- {
- VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
- mmi_voicechat_listening_middle_screen_display();
- }
+ //mmi_voicechat_list_screen_list_refresh();
+ mmi_voicechat_msg_item_info_t * msg_item = &(s_voicechat_info_p->msg_item[0]);
+ if(NULL != ext->list_self_label)
+ lv_label_set_text(ext->list_self_label, msg_item->text_data_ptr);
+ }
+ else
+ {
+ mmi_voicechat_trans_text_refresh_stop();
}
}
-void mmi_voicechat_trans_text_middle_screen_update(void)
+void mmi_voicechat_trans_text_refresh_start(void)
{
- lv_task_t * task_p = lv_task_create(mmi_voicechat_trans_text_middle_screen_task_cb, 10, LV_TASK_PRIO_HIGH, NULL);
- lv_task_once(task_p);
-}
+ lv_voicechat_ext_t * ext = mmi_voicechat_actId_ext_get(ACT_ID_VOICECHAT_MAIN);
+ if(NULL == ext)
+ return;
-static void mmi_voicechat_trans_text_screen_close_task_cb(lv_task_t * task)
-{
- VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ if(MMI_VOICECHAT_UI_STATE_LIST != s_voicechat_ui_state)
+ return;
- mmi_voicechat_thinking_screen_display();
-
- mmi_voicechat_chat_text_download_requst();
+ if(NULL != ext->refresh_task_p)
+ {
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ return;
+ }
+ ext->refresh_task_p = lv_task_create(mmi_voicechat_trans_text_refresh_task_cb, 100, LV_TASK_PRIO_HIGH, NULL);
}
-static void mmi_voicechat_trans_text_stop_screen_task_cb(void)
+static void mmi_voicechat_trans_text_screen_task_cb(void)
{
VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: ui_state=%d\n", __FUNCTION__, __LINE__, s_voicechat_ui_state);
- // wb
- //mmi_voicechat_trans_websocket_close();
- //mmi_voicechat_chat_websocket_open();
-
if(MMI_VOICECHAT_UI_STATE_LISTENING == s_voicechat_ui_state || MMI_VOICECHAT_UI_STATE_LISTENING_MIDDLE == s_voicechat_ui_state)
{
- // record
- mmi_voicechat_listening_stop(true);
-
lv_voicechat_ext_t * ext = mmi_voicechat_actId_ext_get(ACT_ID_VOICECHAT_MAIN);
if(NULL == ext)
return;
{
VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
- mmi_voicechat_listening_middle_screen_display();
+ mmi_voicechat_list_screen_display();
- lv_task_t * task_p = lv_task_create(mmi_voicechat_trans_text_screen_close_task_cb, 1000, LV_TASK_PRIO_HIGH, NULL);
- lv_task_once(task_p);
+ mmi_voicechat_trans_text_refresh_start();
}
}
}
-void mmi_voicechat_trans_text_stop_screen_update(void)
-{
- VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
-
- lv_task_t * task_p = lv_task_create(mmi_voicechat_trans_text_stop_screen_task_cb, 10, LV_TASK_PRIO_HIGH, NULL);
- lv_task_once(task_p);
-}
-
-static void mmi_voicechat_trans_text_fail_screen_task_cb(void)
+void mmi_voicechat_trans_text_screen_update(void)
{
VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
- mmi_voicechat_default_screen_display();
-}
+ if(true == s_trans_text_update_flag)
+ return;
-void mmi_voicechat_trans_text_start_msg_send_fail(void)
-{
- //mmi_voicechat_trans_websocket_close();
- mmi_voicechat_listening_stop(true);
-
- lv_voicechat_ext_t * ext = (lv_voicechat_ext_t *)mmi_voicechat_actId_ext_get(ACT_ID_VOICECHAT_MAIN);
- if(NULL == ext)
- return ;
+ s_trans_text_update_flag = true;
- lv_obj_set_hidden(ext->listening_signal_weak_label, false);
-
- lv_task_t * task_p = lv_task_create(mmi_voicechat_trans_text_fail_screen_task_cb, 1500, LV_TASK_PRIO_HIGH, NULL);
+ lv_task_t * task_p = lv_task_create(mmi_voicechat_trans_text_screen_task_cb, 10, LV_TASK_PRIO_HIGH, NULL);
lv_task_once(task_p);
}
-void mmi_voicechat_trans_text_audio_msg_send_fail(void)
-{
- mmi_voicechat_websocket_close();
- mmi_voicechat_websocket_open();
-}
-
-char * mmi_voicechat_chat_result_text_get(uint32_t * data_len)
-{
- mmi_voicechat_msg_item_info_t * t_voicechat_item_info = &(s_voicechat_info_p->msg_item[1]);
-
- * data_len = t_voicechat_item_info->text_data_size;
- return (t_voicechat_item_info->text_data_ptr);
-}
-
-bool mmi_voicechat_chat_result_text_store(char * data_buff, uint32_t data_len)
+bool mmi_voicechat_chat_text_result_update(char * data_buff, uint32_t data_len)
{
if(NULL == data_buff || 0 == data_len)
{
- printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
return false;
}
mmi_voicechat_msg_item_info_t * t_voicechat_item_info = &(s_voicechat_info_p->msg_item[1]);
-
- if(NULL == t_voicechat_item_info->text_data_ptr)
+ if(NULL != t_voicechat_item_info->text_data_ptr)
{
- char * temp_ptr = lv_mem_alloc(data_len + 1);
- if(NULL == temp_ptr)
- {
- printf("[@CHENG_DEBUG][%s][%d]: alloc memory fail\n", __FUNCTION__, __LINE__);
- return false;
- }
- _lv_memset_00(temp_ptr, data_len + 1);
- _lv_memcpy(temp_ptr, data_buff, data_len);
-
- t_voicechat_item_info->text_data_ptr = temp_ptr;
- t_voicechat_item_info->text_data_size = data_len;
+ lv_mem_free(t_voicechat_item_info->text_data_ptr);
+ t_voicechat_item_info->text_data_ptr = NULL;
+ t_voicechat_item_info->text_data_size = 0;
}
- else
- {
- char * temp_ptr = lv_mem_realloc(t_voicechat_item_info->text_data_ptr, t_voicechat_item_info->text_data_size + data_len + 1);
- if(NULL == temp_ptr)
- {
- printf("[@CHENG_DEBUG][%s][%d]: realloc memory fail\n", __FUNCTION__, __LINE__);
- return false;
- }
- _lv_memset_00(temp_ptr + t_voicechat_item_info->text_data_size, data_len + 1);
- _lv_memcpy(temp_ptr + t_voicechat_item_info->text_data_size, data_buff, data_len);
- t_voicechat_item_info->text_data_ptr = temp_ptr;
- t_voicechat_item_info->text_data_size += data_len;
+ char * temp_ptr = lv_mem_alloc(data_len + 1);
+ if(NULL == temp_ptr)
+ {
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: alloc memory fail\n", __FUNCTION__, __LINE__);
+ return false;
}
+ _lv_memset_00(temp_ptr, data_len + 1);
+ _lv_memcpy(temp_ptr, data_buff, data_len);
+
+ t_voicechat_item_info->text_data_ptr = temp_ptr;
+ t_voicechat_item_info->text_data_size = data_len;
+
t_voicechat_item_info->msg_from = 1;
s_voicechat_info_p->msg_count = 2;
- printf("[@CHENG_DEBUG][%s][%d]: size=%d,ptr=0x%x\n", __FUNCTION__, __LINE__, t_voicechat_item_info->text_data_size, t_voicechat_item_info->text_data_ptr);
-
-#ifdef MMI_VOICECHAT_DEBUG_TO_FILE
- //mmi_debug_info_write_to_file(VOICECHAT_RECV_CHAT_RESULT_FILE, t_voicechat_item_info->text_data_ptr, t_voicechat_item_info->text_data_size);
-#endif
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: size=%d,ptr=0x%x\n", __FUNCTION__, __LINE__,
+ t_voicechat_item_info->text_data_size, t_voicechat_item_info->text_data_ptr);
return true;
}
-void mmi_voicechat_chat_text_middle_task_cb(lv_task_t * task)
-{
- if(MMI_VOICECHAT_UI_STATE_THINKING == s_voicechat_ui_state)
+static bool s_chat_text_update_flag = false;
+void mmi_voicechat_chat_text_refresh_stop(void)
+{
+ lv_voicechat_ext_t * ext = mmi_voicechat_actId_ext_get(ACT_ID_VOICECHAT_MAIN);
+ if(NULL == ext)
+ return;
+
+ if(NULL != ext->refresh_task_p)
{
- VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
-
- lv_voicechat_ext_t * ext = mmi_voicechat_actId_ext_get(ACT_ID_VOICECHAT_MAIN);
- if(NULL == ext)
- return;
-
- if(NULL != ext->thinking_task_p)
- {
- lv_task_del(ext->thinking_task_p);
- ext->thinking_task_p = NULL;
- }
-
- mmi_voicechat_list_screen_display();
+ lv_task_del(ext->refresh_task_p);
+ ext->refresh_task_p = NULL;
}
- else if(MMI_VOICECHAT_UI_STATE_LIST == s_voicechat_ui_state)
+}
+
+void mmi_voicechat_chat_text_refresh_task_cb(lv_task_t * task)
+{
+ if(MMI_VOICECHAT_UI_STATE_LIST == s_voicechat_ui_state)
{
VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
if(NULL == ext)
return;
+ //mmi_voicechat_list_screen_list_refresh();
mmi_voicechat_msg_item_info_t * msg_item = &(s_voicechat_info_p->msg_item[1]);
- char * file_buf = msg_item->text_data_ptr;
-
- lv_label_set_text(ext->list_other_label, file_buf);
- }
-}
-
-void mmi_voicechat_chat_text_middle_screen_update(void)
-{
- VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
-
- lv_task_t * task_p = lv_task_create(mmi_voicechat_chat_text_middle_task_cb, 10, LV_TASK_PRIO_HIGH, NULL);
- lv_task_once(task_p);
-}
-
-static void mmi_voicechat_chat_text_stop_screen_task_cb(void)
-{
- VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: ui_state=%d\n", __FUNCTION__, __LINE__, s_voicechat_ui_state);
-
- // wb
- //mmi_voicechat_chat_websocket_close();
- //mmi_voicechat_tts_websocket_open();
-
- if((MMI_VOICECHAT_UI_STATE_THINKING == s_voicechat_ui_state) || (MMI_VOICECHAT_UI_STATE_LIST == s_voicechat_ui_state))
- {
- mmi_voicechat_main_screen_refresh();
-
- mmi_voicechat_tts_audio_download_requst();
+ if(NULL != ext->list_other_label)
+ lv_label_set_text(ext->list_other_label, msg_item->text_data_ptr);
}
-}
-
-void mmi_voicechat_chat_text_stop_screen_update(void)
-{
- VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
-
- lv_task_t * task_p = lv_task_create(mmi_voicechat_chat_text_stop_screen_task_cb, 10, LV_TASK_PRIO_HIGH, NULL);
- lv_task_once(task_p);
-}
-
-void mmi_voicechat_chat_text_download_requst(void)
-{
- uint32_t data_len = 0;
- char * data_ptr = mmi_voicechat_trans_result_text_get(&data_len);
-
- if(NULL != data_ptr && 0 != data_len)
+ else
{
- //mmi_voicechat_send_chat_text_msg(data_ptr, data_len);
+ mmi_voicechat_chat_text_refresh_stop();
}
}
-
-static void mmi_utf8_complete_character_judge(char * data_ptr, uint32_t data_len, uint32_t * output_len)
+void mmi_voicechat_chat_text_refresh_start(void)
{
- uint32_t i = 0;
- uint32_t p = 0;
- char ch = 0;
- while(1)
- {
- ch = data_ptr[i];
-
- //#1111110x
- if(ch >= 252)
- p = p + 6;
- //#111110xx
- else if(ch >= 248)
- p = p + 5;
- //#11110xxx
- else if(ch >= 240)
- p = p + 4;
- //#1110xxxx
- else if(ch >= 224)
- p = p + 3;
- //#110xxxxx
- else if(ch >= 192)
- p = p + 2;
- else
- p = p + 1;
-
- if(p >= data_len)
- break;
- else
- i = p;
- }
-
- * output_len = i;
- VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: output_len=%d\n", __FUNCTION__, __LINE__, *output_len);
-}
-
-void mmi_voicechat_send_tts_text_seperate(char * data_ptr, uint32_t data_len, uint32_t * output_len)
-{
- // cn ,
- char cn_comma_str[4] = {0};
- cn_comma_str[0] = 0XEF;
- cn_comma_str[1] = 0XBC;
- cn_comma_str[2] = 0X8C;
-
- // cn .
- char cn_period_str[4] = {0};
- cn_period_str[0] = 0XE3;
- cn_period_str[1] = 0X80;
- cn_period_str[2] = 0X82;
-
- // cn ?
- char cn_query_str[4] = {0};
- cn_query_str[0] = 0XEF;
- cn_query_str[1] = 0XBC;
- cn_query_str[2] = 0X9F;
-
- // cn !
- char cn_mark_str[4] = {0};
- cn_mark_str[0] = 0XEF;
- cn_mark_str[1] = 0XBC;
- cn_mark_str[2] = 0X81;
-
-
- if(MMI_VOICECHAT_SEND_TTS_TEXT_MAX >= data_len)
- {
- * output_len = data_len;
- VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: output_len=%d\n", __FUNCTION__, __LINE__, *output_len);
+ lv_voicechat_ext_t * ext = mmi_voicechat_actId_ext_get(ACT_ID_VOICECHAT_MAIN);
+ if(NULL == ext)
return;
- }
- char * temp_ptr = lv_mem_alloc(MMI_VOICECHAT_SEND_TTS_TEXT_MAX + 1);
- if(NULL == temp_ptr)
- {
- VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: alloc memory fail\n", __FUNCTION__, __LINE__);
- return ;
- }
- _lv_memset_00(temp_ptr, (MMI_VOICECHAT_SEND_TTS_TEXT_MAX + 1));
- _lv_memcpy(temp_ptr, data_ptr, MMI_VOICECHAT_SEND_TTS_TEXT_MAX);
-
- char * offset_ptr = NULL;
- offset_ptr = strstr(temp_ptr, cn_comma_str);
- if(NULL != offset_ptr)
- {
- * output_len = offset_ptr - temp_ptr + 2;
- goto EXIT;
- }
-
- offset_ptr = strstr(temp_ptr, cn_period_str);
- if(NULL != offset_ptr)
- {
- * output_len = offset_ptr - temp_ptr + 2;
- goto EXIT;
- }
-
- offset_ptr = strstr(temp_ptr, cn_query_str);
- if(NULL != offset_ptr)
- {
- * output_len = offset_ptr - temp_ptr + 2;
- goto EXIT;
- }
-
- offset_ptr = strstr(temp_ptr, cn_mark_str);
- if(NULL != offset_ptr)
- {
- * output_len = offset_ptr - temp_ptr + 2;
- goto EXIT;
- }
+ if(MMI_VOICECHAT_UI_STATE_LIST != s_voicechat_ui_state)
+ return;
- if(NULL == offset_ptr)
+ if(NULL != ext->refresh_task_p)
{
- mmi_utf8_complete_character_judge(temp_ptr, MMI_VOICECHAT_SEND_TTS_TEXT_MIN, output_len);
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ return;
}
-
-EXIT:
- lv_mem_free(temp_ptr);
- temp_ptr = NULL;
- VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: output_len=%d\n", __FUNCTION__, __LINE__, *output_len);
+ ext->refresh_task_p = lv_task_create(mmi_voicechat_chat_text_refresh_task_cb, 500, LV_TASK_PRIO_HIGH, NULL);
}
-uint32_t mmi_voicechat_send_tts_text_data_escape_character(char * data_buff, int data_len, char * output_data)
+static void mmi_voicechat_chat_text_screen_task_cb(void)
{
- if (NULL == data_buff || 0 == data_len)
- return;
-
- uint32_t curr_p = 0, i = 0;
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: ui_state=%d\n", __FUNCTION__, __LINE__, s_voicechat_ui_state);
- for(i = 0; i < data_len; i++)
+ if(MMI_VOICECHAT_UI_STATE_LIST == s_voicechat_ui_state)
{
- if(0X0A == data_buff[i]) // 0X0A -> 0X5C 0X6E
- {
- output_data[curr_p++] = 0X5C;
- output_data[curr_p++] = 0X6E;
- }
- else if(0X22 == data_buff[i]) // 0X22 -> 0X5C 0X22
+ lv_voicechat_ext_t * ext = mmi_voicechat_actId_ext_get(ACT_ID_VOICECHAT_MAIN);
+ if(NULL == ext)
+ return;
+
+ mmi_voicechat_list_set_slide_enable(&ext->old_ext, true);
+
+ if(0 == mmi_voicechat_msg_count_get())
{
- output_data[curr_p++] = 0X5C;
- output_data[curr_p++] = 0X22;
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ mmi_voicechat_default_screen_display();
}
else
{
- output_data[curr_p++] = data_buff[i];
- }
- }
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
- return curr_p;
-}
+ mmi_voicechat_list_screen_display();
-void mmi_voicechat_send_tts_text_action(char * data_ptr, uint32_t data_len)
-{
- uint32_t output_len = 0;
- mmi_voicechat_send_tts_text_seperate(data_ptr, data_len, &output_len);
-
- uint32_t send_len = 0;
- char * send_ptr = lv_mem_alloc((output_len + output_len / 9 + 1));
- if(NULL == send_ptr)
- {
- VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: alloc memory fail\n", __FUNCTION__, __LINE__);
- return ;
+ mmi_voicechat_trans_text_refresh_stop();
+ mmi_voicechat_chat_text_refresh_start();
+ }
}
- _lv_memset_00(send_ptr, (output_len + output_len / 9 + 1));
- send_len = mmi_voicechat_send_tts_text_data_escape_character(data_ptr, output_len, send_ptr);
-
- //mmi_voicechat_send_tts_text_msg(send_ptr, send_len);
- s_voicechat_tts_text_sent_size += output_len;
-
- lv_mem_free(send_ptr);
- send_ptr = NULL;
}
-void mmi_voicechat_send_tts_text_action_pre(void)
+void mmi_voicechat_chat_text_screen_update(void)
{
- uint32_t node_total = mmi_voicechat_tts_audio_ll_node_num();
- VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: node_total=%d\n", __FUNCTION__, __LINE__, node_total);
-
- uint32_t data_len = 0;
- char * data_ptr = mmi_voicechat_chat_result_text_get(&data_len);
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
- VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: data_len=%d,sent_len=%d\n", __FUNCTION__, __LINE__, data_len, s_voicechat_tts_text_sent_size);
- if((NULL != data_ptr) && (data_len > s_voicechat_tts_text_sent_size))
- {
- //mmi_voicechat_tts_audio_ll_new_tail_node();
-
- mmi_voicechat_send_tts_text_action(data_ptr + s_voicechat_tts_text_sent_size, data_len - s_voicechat_tts_text_sent_size);
- }
-}
+ if(true == s_chat_text_update_flag)
+ return;
-void mmi_voicechat_tts_audio_download_requst(void)
-{
- VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ s_chat_text_update_flag = true;
- s_voicechat_tts_text_sent_size = 0;
- s_voicechat_tts_audio_playing = false;
- mmi_voicechat_tts_audio_ll_clean();
- mmi_voicechat_tts_audio_ll_new_tail_node();
- mmi_voicechat_send_tts_text_action_pre();
+ lv_task_t * task_p = lv_task_create(mmi_voicechat_chat_text_screen_task_cb, 10, LV_TASK_PRIO_HIGH, NULL);
+ lv_task_once(task_p);
}
-void mmi_voicechat_tts_audio_ll_init(void)
+static void mmi_voicechat_tts_audio_ll_init(void)
{
_lv_ll_init(&s_voicechat_tts_audio_ll, sizeof(mmi_voicechat_tts_audio_ll_t));
_lv_ll_clear(&s_voicechat_tts_audio_ll);
}
-void mmi_voicechat_tts_audio_ll_clean(void)
+static void mmi_voicechat_tts_audio_ll_clean(void)
{
mmi_voicechat_tts_audio_ll_t * node = NULL;
for(node = _lv_ll_get_head(&s_voicechat_tts_audio_ll); NULL != node; node = _lv_ll_get_next((&s_voicechat_tts_audio_ll), node))
return node;
}
-bool mmi_voicechat_tts_audio_store(char * data_buff, uint32_t data_len)
+
+
+static bool s_send_start_play = false;
+static bool s_data_first_frame = false;
+
+void mmi_voicechat_tts_audio_update_pre(void)
+{
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ s_voicechat_tts_audio_playing = false;
+ mmi_voicechat_tts_audio_ll_clean();
+ mmi_voicechat_tts_audio_ll_new_tail_node();
+
+
+ s_send_start_play = false;
+
+ s_data_first_frame = false;
+}
+
+bool mmi_voicechat_tts_audio_result_update(char * data_buff, uint32_t data_len)
{
if(NULL == data_buff || 0 == data_len)
{
if(NULL == node)
{
VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
- return false;
+ node = mmi_voicechat_tts_audio_ll_new_tail_node();
}
+#if 1
+ else if(NULL != node->audio_data_ptr && (16 * 1024 < node->audio_data_size))
+ {
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ node = mmi_voicechat_tts_audio_ll_new_tail_node();
+
+ mmi_voicechat_tts_audio_play();
+ }
+#else
+ else if(NULL != node->audio_data_ptr)
+ {
+ if(false == s_data_first_frame)
+ {
+ if(16 * 1024 < node->audio_data_size)
+ {
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ node = mmi_voicechat_tts_audio_ll_new_tail_node();
+
+ s_data_first_frame = true;
+ mmi_voicechat_tts_audio_play();
+ }
+ }
+ else
+ {
+ if(8 * 1024 < node->audio_data_size)
+ {
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ node = mmi_voicechat_tts_audio_ll_new_tail_node();
+
+ mmi_voicechat_tts_audio_play();
+ }
+ }
+ }
+#endif
+
if(NULL == node->audio_data_ptr)
{
VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
return false;
}
_lv_memset_00(temp_ptr, data_len + 1);
+ #if 0
_lv_memcpy(temp_ptr, data_buff, data_len);
+ #else
+ char mp3_haed_info[10] = {'I', 'D', '3', 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22};
+ _lv_memcpy(temp_ptr, mp3_haed_info, 10);
+ _lv_memcpy(temp_ptr + 10, data_buff + 10, data_len - 10);
+ #endif
node->audio_data_ptr = temp_ptr;
node->audio_data_size = data_len;
return true;
}
-void mmi_voicechat_tts_audio_ctrl_callback(AUDIO_CTRL_PRIORITY priority)
+static void mmi_voicechat_tts_audio_ctrl_callback(AUDIO_CTRL_PRIORITY priority)
{
VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: priority=%d\n", __FUNCTION__, __LINE__, priority);
}
else if(MMI_VOICECHAT_TTS_AUDIO_PRI > priority)
- {
- // wb
- //mmi_voicechat_tts_websocket_close();
-
+ {
// res
mmi_voicechat_tts_audio_ll_clean();
s_voicechat_tts_audio_play_node = NULL;
VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: node=%#X,total=%d\n", __FUNCTION__, __LINE__, node, mmi_voicechat_tts_audio_ll_node_num());
- // get tts
- //mmi_voicechat_send_tts_text_action_pre();
-
- if(MMI_VOICECHAT_TTS_AUDIO_PRI == Hal_Audio_Manage_Start_Req(MMI_VOICECHAT_TTS_AUDIO_PRI, mmi_voicechat_tts_audio_ctrl_callback))
+ //if(MMI_VOICECHAT_TTS_AUDIO_PRI == Hal_Audio_Manage_Start_Req(MMI_VOICECHAT_TTS_AUDIO_PRI, mmi_voicechat_tts_audio_ctrl_callback))
{
if(NULL == node || NULL == node->audio_data_ptr)
{
VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+
+ //mmi_voicechat_send_stop_play_msg(NULL, 0);
+
return ;
}
s_voicechat_tts_audio_play_node = node;
Hal_Tone_Play_Onetime((uint32_t *)node->audio_data_ptr,
node->audio_data_size,
- HAL_AUDIO_SPK_LEVEL_MAX,
+ HAL_AUDIO_SPK_LEVEL_4, // HAL_AUDIO_SPK_LEVEL_MAX,
mmi_voicechat_tts_audio_over_cb,
NULL);
}
if(NULL == node || NULL == node->audio_data_ptr)
{
VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: no data\n", __FUNCTION__, __LINE__);
-#if 0
-{
- uint32_t node_total = mmi_voicechat_tts_audio_ll_node_num();
- uint8_t i = 0;
- mmi_voicechat_tts_audio_ll_t * node = _lv_ll_get_head(&s_voicechat_tts_audio_ll);
-
- VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: node_total=%d\n", __FUNCTION__, __LINE__, node_total);
- for(i = 0; i < node_total; i++)
- {
- VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d,%#X,%#X\n", __FUNCTION__, __LINE__, i, node, node->audio_data_ptr);
-
- node = _lv_ll_get_next((&s_voicechat_tts_audio_ll), node);
- }
-}
-#endif
return false;
}
}
}
+
+ if(false == s_send_start_play)
+ {
+ s_send_start_play = true;
+ mmi_voicechat_send_start_play_msg(NULL, 0);
+ }
+
s_voicechat_tts_audio_play_node = node;
s_voicechat_tts_audio_playing = true;
Hal_Tone_Play_Onetime((uint32_t *)node->audio_data_ptr,
node->audio_data_size,
- HAL_AUDIO_SPK_LEVEL_MAX,
+ HAL_AUDIO_SPK_LEVEL_4, // HAL_AUDIO_SPK_LEVEL_MAX,
mmi_voicechat_tts_audio_over_cb,
NULL);
}
return true;
}
-void mmi_voicechat_tts_end_synthesis_action(void)
+bool mmi_voicechat_tts_audio_is_playing(void)
{
- mmi_voicechat_tts_audio_ll_new_tail_node();
- mmi_voicechat_send_tts_text_action_pre();
+ if(true == s_voicechat_tts_audio_playing)
+ return true;
+
+ if(0 != mmi_voicechat_tts_audio_ll_node_num())
+ return true;
- //
- mmi_voicechat_tts_audio_play();
+ return false;
+}
+
+
+
+void mmi_voicechat_listening_screen_stop_update(void)
+{
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ //lv_task_t * task_p = lv_task_create(mmi_voicechat_listening_screen_stop_task_cb, 10, LV_TASK_PRIO_HIGH, NULL);
+ //lv_task_once(task_p);
+ mmi_voicechat_listening_stop(true);
}
{
VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ s_voicechat_start_flag = false;
+
// websocket
mmi_voicechat_websocket_close();
lv_task_del(ext->thinking_task_p);
ext->thinking_task_p = NULL;
}
+ if(NULL != ext->refresh_task_p)
+ {
+ lv_task_del(ext->refresh_task_p);
+ ext->refresh_task_p = NULL;
+ }
if(NULL != ext->gif_listening)
{
gif_close(ext->gif_listening);
if(NULL == ext)
return false;
+
+ //mmi_debug_info_write_to_file("C:/record_data.amr", ext->record_buffer, ext->record_size);
+
+
if(true == is_cancel)
{
printf("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
return;
}
+
+ if(false == mmi_voicechat_server_state_is_listening())
+ {
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ mmi_voicechat_send_speak_request_msg(NULL, 0);
+ return;
+ }
char * sending_buf = lv_mem_alloc(sending_size + 1);
if(NULL == sending_buf)
_lv_memset_00(sending_buf, sending_size + 1);
_lv_memcpy(sending_buf, ext->record_buffer + s_voicechat_recording_sent_size, sending_size);
- //mmi_voicechat_send_trans_audio_msg(sending_buf, sending_size);
+ mmi_voicechat_send_speech_data_msg(sending_buf, sending_size);
lv_mem_free(sending_buf);
s_voicechat_recording_sent_size += sending_size;
}
s_voicechat_ui_state = MMI_VOICECHAT_UI_STATE_LISTENING;
- s_voicechat_trans_text_end = false;
-
// stop audio
Hal_NFFS_File_Play_End();
Hal_Audio_Manage_End_Ind(MMI_VOICECHAT_TTS_AUDIO_PRI);
- // wb
- //mmi_voicechat_websocket_close();
- //mmi_voicechat_websocket_open();
+ if(false == s_voicechat_start_flag)
+ {
+ s_voicechat_start_flag = true;
+ mmi_voicechat_send_start_request_msg(NULL, 0);
+ }
+ else if(false == mmi_voicechat_tts_audio_is_playing())
+ {
+ mmi_voicechat_send_stop_play_msg(NULL, 0);
+ }
+
+ // reset flag
+ s_trans_text_update_flag = false;
+ s_chat_text_update_flag = false;
// res
mmi_voicechat_msg_data_clean();
if(MMI_VOICECHAT_TTS_AUDIO_PRI == Hal_Audio_Manage_Start_Req(MMI_VOICECHAT_TTS_AUDIO_PRI, mmi_voicechat_listening_audio_ctrl_callback))
{
VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
-
- mmi_voicechat_send_start_request_msg(NULL, 0);
s_voicechat_recording_sent_size = 0;
Hal_Record_Buffer_With_Format_Req(ext->record_buffer,
MMI_VOICECHAT_DATA_RECORD_SIZE_MAX,
MMI_VOICECHAT_DATA_RECORD_DURATION_MAX * 1000,
mmi_voicechat_listening_cb,
- (mci_type_enum)MMI_VOICECHAT_AUDIO_FORMAT);
+ (mci_type_enum)MMI_VOICECHAT_UL_AUDIO_FORMAT);
}
}
lv_obj_set_width(label_text, lv_obj_get_width(obj) - 20);
lv_label_set_text(label_text, file_buf);
lv_obj_align(label_text, obj, LV_ALIGN_IN_LEFT_MID, 10, 0);
+ ext->list_self_label = label_text;
}
else
{
return LV_RES_OK;
}
-lv_obj_t * mmi_voicechat_list_create(lv_obj_t * obj)
+static lv_obj_t * mmi_voicechat_list_create(lv_obj_t * obj)
{
VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
return list_page;
}
+void mmi_voicechat_list_screen_list_refresh(void)
+{
+ VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ lv_voicechat_ext_t * ext = (lv_voicechat_ext_t *)mmi_voicechat_actId_ext_get(ACT_ID_VOICECHAT_MAIN);
+ if(NULL == ext)
+ return ;
+
+ if(NULL != ext->list)
+ {
+ lv_obj_clean(ext->list);
+ lv_obj_del(ext->list);
+ ext->list = NULL;
+ }
+ ext->list = mmi_voicechat_list_create(ext->cont_list);
+}
+
void mmi_voicechat_list_screen_display(void)
{
VOICECHAT_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
lv_obj_t * cont = ext->cont_list;
lv_obj_clean(cont);
+ //mmi_voicechat_list_screen_list_refresh();
ext->list = mmi_voicechat_list_create(cont);
// signal weak
ext->cont_list = NULL;
ext->list = NULL;
+ ext->list_self_label = NULL;
+ ext->list_other_label = NULL;
ext->record_buffer = NULL;
ext->record_size = 0;
ext->thinking_task_p = NULL;
+ ext->refresh_task_p = NULL;
ext->gif_listening = NULL;
ext->gif_thinking = NULL;
return obj;
}
- // data task
- mmi_voicechat_data_task_create();
- watch_set_suspend_enable(false, ACT_ID_VOICECHAT_MAIN, 0);
-
- //mmi_voicechat_websocket_close();
- mmi_voicechat_websocket_open();
-
// cont_default
lv_obj_t * cont_default = lv_cont_create(obj, NULL);
lv_obj_set_size(cont_default, lv_obj_get_width(obj), lv_obj_get_height(obj));
mmi_voicechat_lv_style_set();
mmi_voicechat_default_screen_display();
+
+
+ watch_set_suspend_enable(false, ACT_ID_VOICECHAT_MAIN, 0);
+ // data task
+ mmi_voicechat_data_task_create();
+
+ mmi_voicechat_websocket_close();
+ mmi_voicechat_websocket_open();
+
+ s_voicechat_start_flag = false;
return obj;
}
{
if(LV_EVENT_CLICKED == e)
{
+ #ifdef __MMI_CUSTOM_AI_AUTHENTICATE_SUPPORT__
+ mmi_ai_device_active();
+ #endif
+
// free resource
mmi_voicechat_msg_data_clean();
mmi_voicechat_tts_audio_ll_init();