From 5eabdd444ea07038b6e814a022a212e8a87f6a9a Mon Sep 17 00:00:00 2001
From: 夜雨飘零 <yeyupiaoling@foxmail.com>
Date: 星期四, 30 十一月 2023 00:44:17 +0800
Subject: [PATCH] 修复为支持新版本的热词 (#1137)

---
 runtime/android/AndroidClient/app/src/main/res/layout/dialog_input_hotwords.xml                  |    2 +-
 runtime/android/AndroidClient/app/src/main/java/com/yeyupiaoling/androidclient/MainActivity.java |   21 +++++++++++++++++++--
 2 files changed, 20 insertions(+), 3 deletions(-)

diff --git a/runtime/android/AndroidClient/app/src/main/java/com/yeyupiaoling/androidclient/MainActivity.java b/runtime/android/AndroidClient/app/src/main/java/com/yeyupiaoling/androidclient/MainActivity.java
index f45877c..e7925ab 100644
--- a/runtime/android/AndroidClient/app/src/main/java/com/yeyupiaoling/androidclient/MainActivity.java
+++ b/runtime/android/AndroidClient/app/src/main/java/com/yeyupiaoling/androidclient/MainActivity.java
@@ -47,7 +47,7 @@
     public static final int CHUNK_INTERVAL = 10;
     public static final int SEND_SIZE = 1920;
     // 鐑瘝
-    private String hotWords = "闃块噷宸村反 杈炬懇闄� 澶滈洦椋橀浂";
+    private String hotWords = "闃块噷宸村反 20\n杈炬懇闄� 20\n澶滈洦椋橀浂 20\n";
     // 閲囨牱鐜�
     public static final int SAMPLE_RATE = 16000;
     // 澹伴亾鏁�
@@ -287,6 +287,7 @@
             }
         });
         String message = getMessage(true);
+        Log.d(TAG, "WebSocket鍙戦�佹秷鎭�: " + message);
         webSocket.send(message);
 
         audioRecord.startRecording();
@@ -319,7 +320,23 @@
             obj.put("chunk_interval", CHUNK_INTERVAL);
             obj.put("wav_name", "default");
             if (!hotWords.equals("")) {
-                obj.put("hotwords", hotWords);
+                JSONObject hotwordsJSON = new JSONObject();
+                // 鍒嗗壊姣忎竴琛屽瓧绗︿覆
+                String[] hotWordsList = hotWords.split("\n");
+                for (String s : hotWordsList) {
+                    if (s.equals("")) {
+                        Log.w(TAG, "hotWords涓虹┖");
+                        continue;
+                    }
+                    // 鎸夌収绌烘牸鍒嗗壊瀛楃涓�
+                    String[] hotWordsArray = s.split(" ");
+                    if (hotWordsArray.length != 2) {
+                        Log.w(TAG, "hotWords鏍煎紡涓嶆纭�");
+                        continue;
+                    }
+                    hotwordsJSON.put(hotWordsArray[0], Integer.valueOf(hotWordsArray[1]));
+                }
+                obj.put("hotwords", hotwordsJSON.toString());
             }
             obj.put("wav_format", "pcm");
             obj.put("is_speaking", isSpeaking);
diff --git a/runtime/android/AndroidClient/app/src/main/res/layout/dialog_input_hotwords.xml b/runtime/android/AndroidClient/app/src/main/res/layout/dialog_input_hotwords.xml
index 8ee1e16..b55825c 100644
--- a/runtime/android/AndroidClient/app/src/main/res/layout/dialog_input_hotwords.xml
+++ b/runtime/android/AndroidClient/app/src/main/res/layout/dialog_input_hotwords.xml
@@ -13,6 +13,6 @@
         android:background="@drawable/edittext_border"
         android:minLines="3"
         android:gravity="top"
-        android:hint="姣忎釜鐑瘝鐢ㄧ┖鏍奸殧寮�" />
+        android:hint="姣忎竴琛屼负:鐑瘝 鏉冮噸" />
 
 </LinearLayout>
\ No newline at end of file

--
Gitblit v1.9.1