Support ASR type to partial result in voice 91/87691/3
authorsungwook79.park <sungwook79.park@samsung.com>
Fri, 9 Sep 2016 06:45:57 +0000 (15:45 +0900)
committersungwook79.park <sungwook79.park@samsung.com>
Fri, 9 Sep 2016 09:00:14 +0000 (18:00 +0900)
Change-Id: Idd0604e296a7614bb7e7620ef03ff751a99f610a
Signed-off-by: sungwook79.park <sungwook79.park@samsung.com>
src/SttManager.cpp
src/include/ise-stt-mode.h
src/ise-stt-mode.cpp

index aed5354..994edca 100644 (file)
@@ -19,6 +19,8 @@
 #include <vconf-keys.h>
 
 #include "SttManager.h"
+#include "ise-stt-mode.h"
+#include <dlog.h>
 
 using namespace is::stt;
 
@@ -117,7 +119,7 @@ void SttManager::Start() {
     * Start stt service.
     *
     */
-    asrtype = STT_RECOGNITION_TYPE_FREE;
+    asrtype = STT_RECOGNITION_TYPE_FREE_PARTIAL;
     int ret;
     ret = stt_start(handle, language.c_str(), asrtype.c_str());
 
@@ -322,6 +324,9 @@ void SttManager::on_state_changed(
             std::string msg;
             std::vector<std::string> results;
             manager.ifeedback.OnResult(manager.asrtype, STT_RESULT_EVENT_ERROR, results, msg);
+        } else if (previous == STT_STATE_PROCESSING) {
+            voice_result_string_flush();
+            manager.ifeedback.SttIdle();
         } else {
             manager.ifeedback.SttIdle();
         }
index 13eae21..330acbb 100644 (file)
@@ -121,7 +121,6 @@ struct _VoiceData
     is::ui::MicEffector *effector;
 };
 
-
 void ise_show_stt_mode(Evas_Object *win);
 void ise_hide_stt_mode();
 void start_by_press(VoiceData *voicedata);
@@ -129,7 +128,7 @@ void set_animation_state(VoiceData *voicedata);
 void show_popup_toast(const char *text, bool check_img);
 void show_error_message(VoiceData *voicedata, stt_error_e reason);
 void voice_get_string(const char *keyValue, VoiceData *voicedata);
-
+void voice_result_string_flush();
 
 
 #ifdef __cplusplus
index 41c3461..2adf0bd 100644 (file)
 VoiceData *my_voicedata;
 static Evas_Object *win_main = NULL;
 
+
 static void set_guide_text(VoiceData *vd, const char* text, bool translatable = false);
 static void _popup_close_cb(void *data, Evas_Object *obj, void *event_info);
 static void _popup_back_cb(void *data, Evas_Object *obj, void *event_info);
 
+void voice_result_string_flush()
+{
+    LOGD("***** result_text : %s *******", my_voicedata->partial_result);
+    if (my_voicedata->partial_result) {
+        char *retStr = (char *)calloc(strlen(my_voicedata->partial_result) + 2, sizeof(char));
+        strcpy(retStr, my_voicedata->partial_result);
+        strcat(retStr, " ");
+        ise_send_string(retStr);
+        free(retStr);
+    }
+}
+
 void send_result_text(void *data)
 {
     if (!data)
@@ -44,8 +57,7 @@ void send_result_text(void *data)
 
     VoiceData* voicedata = (VoiceData*)data;
     LOGD("result_text = %s", voicedata->partial_result);
-    ise_send_string(voicedata->partial_result);
-    ise_send_string(" ");
+    ise_update_preedit_string(voicedata->partial_result);
 }
 
 void voice_get_string(const char *keyValue, VoiceData *voicedata)