AI语音优化,添加左右滑动切换模型,添加通义千问,讯飞星火目前不可用 668/2
authorluozheng <1732036298@qq.com>
Fri, 9 Aug 2024 12:28:34 +0000 (20:28 +0800)
committerluozheng <1732036298@qq.com>
Fri, 9 Aug 2024 12:28:34 +0000 (20:28 +0800)
20 files changed:
code/sdk/application/wearable/fd230app/nativelauncher/include/ui_resource_string.h
code/sdk/application/wearable/fd230app/nativeui/aivoice/include/AiVoiceModel.h
code/sdk/application/wearable/fd230app/nativeui/aivoice/include/AiVoicePresenter.h
code/sdk/application/wearable/fd230app/nativeui/aivoice/include/AiVoiceView.h
code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoiceModel.cpp
code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoicePresenter.cpp
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/AIVoice/aimodels/aimodels_doubao.bin
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/AIVoice/aimodels/aimodels_wenxinyiyan.bin
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/AIVoice/aimodels/aimodes_iflytek_spark.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/AIVoice/aimodels/aimodes_tongyi_qianwen.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/en.lang
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/ui_resource_string.h
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/zh.lang
tools/language_tool/Language_xml/input_list_en.txt
tools/language_tool/Language_xml/input_list_zh.txt
tools/language_tool/Language_xml/language_en.xml
tools/language_tool/Language_xml/language_zh.xml
tools/language_tool/font/en.lang
tools/language_tool/font/ui_resource_string.h
tools/language_tool/font/zh.lang

index 1f28ab1..4dc0f6c 100644 (file)
@@ -509,12 +509,14 @@ enum UIResourceTextId : uint16_t {
     STR_STEP_FREQUENCY = 496,\r
     STR_STEP_LENGTH = 497,\r
     STR_AVG_PACE = 498,\r
-    STR_MAX_ID = 499,\r
+    STR_TONGYI_QIANWEN = 499,\r
+    STR_IFLYTEK_SPARK = 500,\r
+    STR_MAX_ID = 501,\r
 }; // UIResourceTextId\r
 \r
 enum FontLanguageId : uint8_t {\r
-    LANGUAGE_ID_ZH,\r
     LANGUAGE_ID_EN,\r
+    LANGUAGE_ID_ZH,\r
     LANGUAGE_ID_MAX\r
 }; // UITextLanguageTextId\r
 }\r
index 33617b6..a84d383 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-06-20 15:14:43
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-08-08 17:07:30
+ * @LastEditTime: 2024-08-09 19:57:52
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/aivoice/include/AiVoiceModel.h
  */
 #ifndef AI_VOICE_MODEL_H
@@ -104,7 +104,7 @@ namespace OHOS
         static const uint16_t MaxChatContentListCount = 2;                   // 对话列表最大数量
         ChatContentItem chatTtems[MaxChatContentListCount] = {0, "", false}; // 对话项数组
         bool entryTextViewState{false};                                      // 进入返回结果界面的标志
-        std::map<int, std::pair<int, int>> selectAiModelToTextId;
+        std::map<int, std::pair<int, int>> selectAiModelToTextId;            // pair的参数类型<模型的textid,查询模型是否可用id>
         bool AiVoiceConnectStatus{false};                                    //与AI模型的连接状态
     };
 
index afd2f32..25cf523 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-06-20 14:44:22
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-08-03 17:46:15
+ * @LastEditTime: 2024-08-09 19:52:53
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/aivoice/include/AiVoicePresenter.h
  */
 #ifndef AI_VOICE_PRESENTER_H
@@ -29,6 +29,8 @@ namespace OHOS
             AIMODES_WENXINYIYAN = 0, /*文心一言*/
             AIMODES_KIMI,            /*KIMI*/
             AIMODES_DOUBAO,          /*豆包*/
+            AIMODES_TONGYI_QIANWEN,  /*通义千问*/
+            AIMODES_IFLYTEK_SPARK,   /*讯飞星火*/
             AIMODES_CHATGPT,         /*chatgpt*/
             AIMODES_MAX_NUM,
         } aimodels;
@@ -45,6 +47,8 @@ namespace OHOS
         bool ChangeToAIVoiceListeningView(bool val);
         bool ChangeViewAndLogicOperator(int16_t hideView, int16_t showView);
         void FunctionKeyOnClickToChangeAIModel(void);
+        void DragLeftToRightChangeAIModel(void);
+        void DragRightToLetfChangeAIModel(void);
 
     private:
         bool OnClick(UIView &view, const ClickEvent &event) override;
@@ -52,7 +56,7 @@ namespace OHOS
         bool OnDrag(UIView &view, const DragEvent &event) override;
         bool OnDragEnd(UIView &view, const DragEvent &event) override;
         bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件
-        void OnPickerStoped(UIPicker& picker) override;
+        void OnPickerStoped(UIPicker &picker) override;
 
         AiVoiceModel *model;
         bool X_DRAG_FLAG{false};
index 927d350..1a5aeb4 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-06-08 09:36:01
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-08-03 16:40:55
+ * @LastEditTime: 2024-08-09 20:14:30
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/respiratorytraining/include/AiVoiceView.h
  */
 #ifndef AI_VOICE_VIEW_H
 namespace OHOS
 {
     /*图片路径*/
-    static constexpr const char *AIMODEL_WENXINYIYAN_PATH = "/user/res/AIVoice/aimodels/aimodels_wenxinyiyan.bin"; /*文心一言*/
-    static constexpr const char *AIMODEL_CHATGPT_ON_PATH = "/user/res/AIVoice/aimodels/aimodels_chatgpt.bin";      /*ChatGPT*/
-    static constexpr const char *AIMODEL_KIMI_PATH = "/user/res/AIVoice/aimodels/aimodels_kimi.bin";               /*KIMI*/
-    static constexpr const char *AIMODEL_DOUBAO_PATH = "/user/res/AIVoice/aimodels/aimodels_doubao.bin";           /*豆包*/
+    static constexpr const char *AIMODEL_WENXINYIYAN_PATH = "/user/res/AIVoice/aimodels/aimodels_wenxinyiyan.bin";      /*文心一言*/
+    static constexpr const char *AIMODEL_CHATGPT_ON_PATH = "/user/res/AIVoice/aimodels/aimodels_chatgpt.bin";           /*ChatGPT*/
+    static constexpr const char *AIMODEL_KIMI_PATH = "/user/res/AIVoice/aimodels/aimodels_kimi.bin";                    /*KIMI*/
+    static constexpr const char *AIMODEL_DOUBAO_PATH = "/user/res/AIVoice/aimodels/aimodels_doubao.bin";                /*豆包*/
+    static constexpr const char *AIMODEL_TONGYI_QIANWEN_PATH = "/user/res/AIVoice/aimodels/aimodes_tongyi_qianwen.bin"; /*通义千问*/
+    static constexpr const char *AIMODEL_IFLYTEK_SPARK_PATH = "/user/res/AIVoice/aimodels/aimodes_iflytek_spark.bin";   /*讯飞星火*/
 
     /*组件ID*/
     static constexpr const char *AIVOICE_START_CHAT_BUTTON_VIEW_ID = "aivoice_start_chat_button_view_id"; // 开始对话
@@ -64,6 +66,8 @@ namespace OHOS
         {STR_AIMODES_WENXINYIYAN, AIMODEL_WENXINYIYAN_PATH},
         {STR_AIMODES_KIMI, AIMODEL_KIMI_PATH},
         {STR_AIMODELS_DOUBAO, AIMODEL_DOUBAO_PATH},
+        {STR_TONGYI_QIANWEN, AIMODEL_TONGYI_QIANWEN_PATH},
+        {STR_IFLYTEK_SPARK, AIMODEL_IFLYTEK_SPARK_PATH},
         {STR_AIMODES_CHATGPT, AIMODEL_CHATGPT_ON_PATH},
     };
 
index 0619ed0..f4ad066 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-06-20 15:14:50
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-08-08 17:07:46
+ * @LastEditTime: 2024-08-09 20:27:41
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoiceModel.cpp
  */
 #include "aivoice/include/AiVoiceModel.h"
@@ -437,7 +437,7 @@ namespace OHOS
         SendMsgToUIService(UI_UPDATE_AI_ANSWER_STR, 0, nullptr, 0);
     }
 
-    void AiVoiceModel::SetAiAnswerStrStr(std::string str,uint8_t type)
+    void AiVoiceModel::SetAiAnswerStrStr(std::string str, uint8_t type)
     {
         aiAnswerStr += str;
         SendMsgToUIService(UI_UPDATE_AI_ANSWER_STR, 0, nullptr, 0);
@@ -721,7 +721,9 @@ namespace OHOS
                 {0, {STR_AIMODES_WENXINYIYAN, 0}},
                 {1, {STR_AIMODES_KIMI, 2}},
                 {2, {STR_AIMODELS_DOUBAO, 3}},
-                {3, {STR_AIMODES_CHATGPT, 1}},
+                {3, {STR_TONGYI_QIANWEN, 4}},
+                {4, {STR_IFLYTEK_SPARK, 5}},
+                {5, {STR_AIMODES_CHATGPT, 1}},
             };
             textId = STR_AIMODES_WENXINYIYAN;
         }
@@ -732,6 +734,8 @@ namespace OHOS
                 {1, {STR_AIMODES_WENXINYIYAN, 0}},
                 {2, {STR_AIMODES_KIMI, 2}},
                 {3, {STR_AIMODELS_DOUBAO, 3}},
+                {4, {STR_TONGYI_QIANWEN, 4}},
+                {5, {STR_IFLYTEK_SPARK, 5}},
             };
             textId = STR_AIMODES_CHATGPT;
         }
index 6a61319..e457419 100644 (file)
@@ -1,8 +1,8 @@
 /*
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-06-20 15:11:17
- * @LastEditors: SnickerSun snickersun@163.com
- * @LastEditTime: 2024-08-06 17:40:32
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-08-09 20:23:58
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoicePresenter.cpp
  */
 #include "AppViewIDs.h"
@@ -143,6 +143,34 @@ namespace OHOS
         return;
     }
 
+    // 右滑切换模型
+    void AiVoicePresenter::DragLeftToRightChangeAIModel(void)
+    {
+        int index = model->GetSelectAiModel() + 1;
+        if (index >= AIMODES_MAX_NUM)
+        {
+            index = 0;
+        }
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AiModelsPresenter::index = %d", index);
+        model->SetSelectAiModel(index);
+        view_->ChangeAiModelAndUpdateComponentsStatus();
+        return;
+    }
+
+    // 左滑切换模型
+    void AiVoicePresenter::DragRightToLetfChangeAIModel(void)
+    {
+        int index = model->GetSelectAiModel() - 1;
+        if (index < 0)
+        {
+            index = AIMODES_CHATGPT;
+        }
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AiModelsPresenter::index = %d", index);
+        model->SetSelectAiModel(index);
+        view_->ChangeAiModelAndUpdateComponentsStatus();
+        return;
+    }
+
     bool AiVoicePresenter::ChangeViewAndLogicOperator(int16_t hideView, int16_t showView)
     {
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AiVoicePresenter::ChangeViewOperator");
@@ -333,13 +361,17 @@ namespace OHOS
         {
             return false;
         }
-
-        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && AiVoicePresenter::X_DRAG_FLAG)
+        if (event.GetDragDirection() == DragEvent::DIRECTION_RIGHT_TO_LEFT)
+        {
+            DragRightToLetfChangeAIModel();
+        }
+        else if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && AiVoicePresenter::X_DRAG_FLAG)
         {
             if (scrollView == view_->GetAiVoiceScrollView(AIVOICE_STARTCHAT_VIEWID))
             {
                 /*AI对话界面右滑退出当前Slice*/
-                NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+                // NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+                DragLeftToRightChangeAIModel();
             }
             else if (scrollView == view_->GetAiVoiceScrollView(AIVOICE_ALERT_APPBLUETOOTH_AND_4GNETWORK_VIEWID))
             {
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/AIVoice/aimodels/aimodes_iflytek_spark.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/AIVoice/aimodels/aimodes_iflytek_spark.bin
new file mode 100644 (file)
index 0000000..28e9cb3
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d94ee8748ec3c1158371636fc191a7168994eb5abad211e298304040bb8a5ff9
+size 9624
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/AIVoice/aimodels/aimodes_tongyi_qianwen.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/AIVoice/aimodels/aimodes_tongyi_qianwen.bin
new file mode 100644 (file)
index 0000000..dd2b1ea
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b05f1780a7493d9f15cddd1a63331e59dca7abb262ef209def18981b497975d5
+size 9624
index 0934269..7ab73a5 100644 (file)
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/en.lang and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/en.lang differ
index c251519..71fa640 100644 (file)
@@ -509,12 +509,14 @@ enum UIResourceTextId : uint16_t {
     STR_STEP_FREQUENCY = 496,\r
     STR_STEP_LENGTH = 497,\r
     STR_AVG_PACE = 498,\r
-    STR_MAX_ID = 499,\r
+    STR_TONGYI_QIANWEN = 499,\r
+    STR_IFLYTEK_SPARK = 500,\r
+    STR_MAX_ID = 501,\r
 }; // UIResourceTextId\r
 
 enum FontLanguageId : uint8_t {
-    LANGUAGE_ID_ZH,\r
     LANGUAGE_ID_EN,\r
+    LANGUAGE_ID_ZH,\r
     LANGUAGE_ID_MAX\r
 }; // UITextLanguageTextId\r
 }\r
index 3953e40..fd0fdf7 100644 (file)
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/zh.lang and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/zh.lang differ
index dfaa9c8..0e10562 100644 (file)
@@ -496,4 +496,6 @@ STR_CHARGE$Charging
 STR_CHARGE_NOTE$Currently charging, do not use detection\r
 STR_STEP_FREQUENCY$Step frequency (steps/min)\r
 STR_STEP_LENGTH$Stride length (CM)\r
-STR_AVG_PACE$Average pace
\ No newline at end of file
+STR_AVG_PACE$Average pace\r
+STR_TONGYI_QIANWEN$Tongyi Qianwen\r
+STR_IFLYTEK_SPARK$Xunfei Spark
\ No newline at end of file
index cc73fa7..e1b9379 100644 (file)
@@ -368,7 +368,7 @@ STR_RECORDING_LIST$录音列表
 STR_CRLEMPTY$当前录音列表为空\r
 STR_DO_NOT_DISTURB_MODE$开启勿扰模式,手表将不会发出震动与铃声,是否开启\r
 STR_CONNECTION_STATUS$连接状态\r
-STR_PHONE$手机\r
+STR_PHONE$电话\r
 STR_HEADSET$耳机\r
 STR_CONNECTED$已连接\r
 STR_DISCONNECTED$未连接\r
@@ -496,4 +496,6 @@ STR_CHARGE$正在充电
 STR_CHARGE_NOTE$当前处于充电中,请勿使用检测\r
 STR_STEP_FREQUENCY$步频(步/分钟)\r
 STR_STEP_LENGTH$步幅(CM)\r
-STR_AVG_PACE$平均配速
\ No newline at end of file
+STR_AVG_PACE$平均配速\r
+STR_TONGYI_QIANWEN$通义千问\r
+STR_IFLYTEK_SPARK$讯飞星火
\ No newline at end of file
index 515816b..c0bf0b9 100644 (file)
        <lanstr id="STR_STEP_FREQUENCY" value="Step frequency (steps/min)"/>
        <lanstr id="STR_STEP_LENGTH" value="Stride length (CM)"/>
        <lanstr id="STR_AVG_PACE" value="Average pace"/>
+       <lanstr id="STR_TONGYI_QIANWEN" value="Tongyi Qianwen"/>
+       <lanstr id="STR_IFLYTEK_SPARK" value="Xunfei Spark"/>
 </language>
index 5c549f3..bec22e9 100644 (file)
        <lanstr id="STR_CRLEMPTY" value="当前录音列表为空"/>
        <lanstr id="STR_DO_NOT_DISTURB_MODE" value="开启勿扰模式,手表将不会发出震动与铃声,是否开启"/>
        <lanstr id="STR_CONNECTION_STATUS" value="连接状态"/>
-       <lanstr id="STR_PHONE" value="手机"/>
+       <lanstr id="STR_PHONE" value="电话"/>
        <lanstr id="STR_HEADSET" value="耳机"/>
        <lanstr id="STR_CONNECTED" value="已连接"/>
        <lanstr id="STR_DISCONNECTED" value="未连接"/>
        <lanstr id="STR_STEP_FREQUENCY" value="步频(步/分钟)"/>
        <lanstr id="STR_STEP_LENGTH" value="步幅(CM)"/>
        <lanstr id="STR_AVG_PACE" value="平均配速"/>
+       <lanstr id="STR_TONGYI_QIANWEN" value="通义千问"/>
+       <lanstr id="STR_IFLYTEK_SPARK" value="讯飞星火"/>
 </language>
index 0934269..7ab73a5 100644 (file)
Binary files a/tools/language_tool/font/en.lang and b/tools/language_tool/font/en.lang differ
index c251519..71fa640 100644 (file)
@@ -509,12 +509,14 @@ enum UIResourceTextId : uint16_t {
     STR_STEP_FREQUENCY = 496,\r
     STR_STEP_LENGTH = 497,\r
     STR_AVG_PACE = 498,\r
-    STR_MAX_ID = 499,\r
+    STR_TONGYI_QIANWEN = 499,\r
+    STR_IFLYTEK_SPARK = 500,\r
+    STR_MAX_ID = 501,\r
 }; // UIResourceTextId\r
 
 enum FontLanguageId : uint8_t {
-    LANGUAGE_ID_ZH,\r
     LANGUAGE_ID_EN,\r
+    LANGUAGE_ID_ZH,\r
     LANGUAGE_ID_MAX\r
 }; // UITextLanguageTextId\r
 }\r
index 3953e40..fd0fdf7 100644 (file)
Binary files a/tools/language_tool/font/zh.lang and b/tools/language_tool/font/zh.lang differ