From 0ee8a837a24740cf627e26762af6665b74ebf532 Mon Sep 17 00:00:00 2001 From: luozheng <1732036298@qq.com> Date: Fri, 28 Nov 2025 11:59:34 +0800 Subject: [PATCH] =?utf8?q?n9=E4=B9=9D=E5=A4=A9=E5=A4=A7=E6=A8=A1=E5=9E=8B?= =?utf8?q?=E6=9B=BF=E6=8D=A2=E4=B8=BA=E2=80=9C=E6=98=9F=E8=BE=B0=E5=BA=B7?= =?utf8?q?=E7=91=9E=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../nativeui/aivoice/include/AiVoiceModel.h | 2 ++ .../nativeui/aivoice/include/AiVoiceView.h | 5 +++++ .../src/AiVoiceBluetoothFailedStartView.cpp | 16 ++++++++++++++-- .../nativeui/aivoice/src/AiVoiceView.cpp | 16 ++++++++++++++-- .../aivoice/src/AivoiceConnectTimeoutView.cpp | 16 ++++++++++++++-- .../src/AivoiceMobileDataFailedStartView.cpp | 16 ++++++++++++++-- .../aivoice/src/AivoiceReturnResultTextView.cpp | 16 ++++++++++++++-- .../res/AIVoice/aimodels/aimodes_xingchen.bin | Bin 0 -> 14376 bytes .../res/AIVoice/aimodels/aimodes_xingchen.bin | Bin 0 -> 14376 bytes 9 files changed, 77 insertions(+), 10 deletions(-) create mode 100644 code/sdk/files/fd230/fs/user/res/AIVoice/aimodels/aimodes_xingchen.bin create mode 100644 code/sdk/files/n9/fs/user/res/AIVoice/aimodels/aimodes_xingchen.bin diff --git a/code/sdk/application/wearable/n9/nativeapp/nativeui/aivoice/include/AiVoiceModel.h b/code/sdk/application/wearable/n9/nativeapp/nativeui/aivoice/include/AiVoiceModel.h index a048d2db2..4a13a3736 100644 --- a/code/sdk/application/wearable/n9/nativeapp/nativeui/aivoice/include/AiVoiceModel.h +++ b/code/sdk/application/wearable/n9/nativeapp/nativeui/aivoice/include/AiVoiceModel.h @@ -30,6 +30,8 @@ // 设置当前使用的音频类型,0 表示 PCM,1 表示 SBC,2 表示 MSBC #define CURRENT_AIAUDIO_TYPE AIAUDIO_TYPE_SBC +#define AI_VOICE_XINGCHEN 0 //打开星辰康瑞的宏 + #if defined(SUPPORT_CHINA_MOBILE_DMP) || defined(SUPPORT_CHINA_MOBILE_AI_REGULATION) || defined(SUPPORT_CHINA_MOBILE_AI_REGULATION) #define AI_VOICE_FD230 // 九天版本 #elif defined(BOARD_N9) diff --git a/code/sdk/application/wearable/n9/nativeapp/nativeui/aivoice/include/AiVoiceView.h b/code/sdk/application/wearable/n9/nativeapp/nativeui/aivoice/include/AiVoiceView.h index 48c5cb6b1..4afda324b 100644 --- a/code/sdk/application/wearable/n9/nativeapp/nativeui/aivoice/include/AiVoiceView.h +++ b/code/sdk/application/wearable/n9/nativeapp/nativeui/aivoice/include/AiVoiceView.h @@ -44,6 +44,7 @@ namespace OHOS static constexpr const char *AIMODEL_IFLYTEK_SPARK_PATH = "/user/res/AIVoice/aimodels/aimodes_iflytek_spark.bin"; /*讯飞星火*/ static constexpr const char *AIMODEL_DEEPSEEK_PATH = "/user/res/AIVoice/aimodels/aimodes_deepseek.bin"; /*deepseek*/ static constexpr const char *AIMODEL_LINGXI_PATH = "/user/res/AIVoice/aimodels/aimodels_lingxi.bin"; /*jiutian*/ + static constexpr const char *AIMODEL_XINGCHEN_PATH = "/user/res/AIVoice/aimodels/aimodes_xingchen.bin"; /*星辰ai*/ /*组件ID*/ static constexpr const char *AIVOICE_START_CHAT_BUTTON_VIEW_ID = "aivoice_start_chat_button_view_id"; // 开始对话 @@ -79,7 +80,11 @@ namespace OHOS {STR_DEEPSEEK, AIMODEL_DEEPSEEK_PATH}, {STR_IFLYTEK_SPARK, AIMODEL_IFLYTEK_SPARK_PATH}, {STR_AIMODES_CHATGPT, AIMODEL_CHATGPT_ON_PATH}, + #if (AI_VOICE_LINGXI) {STR_JIUTIAN, AIMODEL_LINGXI_PATH}, + #else + {STR_JIUTIAN, AIMODEL_XINGCHEN_PATH}, + #endif }; class AiVoicePresenter; diff --git a/code/sdk/application/wearable/n9/nativeapp/nativeui/aivoice/src/AiVoiceBluetoothFailedStartView.cpp b/code/sdk/application/wearable/n9/nativeapp/nativeui/aivoice/src/AiVoiceBluetoothFailedStartView.cpp index a3563a5e1..0b188355b 100644 --- a/code/sdk/application/wearable/n9/nativeapp/nativeui/aivoice/src/AiVoiceBluetoothFailedStartView.cpp +++ b/code/sdk/application/wearable/n9/nativeapp/nativeui/aivoice/src/AiVoiceBluetoothFailedStartView.cpp @@ -90,8 +90,14 @@ namespace OHOS label->SetPosition(labelconfig.left, labelconfig.top, labelconfig.width, labelconfig.height); label->SetStyle(STYLE_TEXT_FONT, labelconfig.fontSize); label->SetStyle(STYLE_LINE_HEIGHT, labelconfig.lineHeigh); - if(labelconfig.textId == STR_JIUTIAN) + if(labelconfig.textId == STR_JIUTIAN) + { + #if AI_VOICE_XINGCHEN + label->SetText("星辰康瑞"); + #else label->SetText("中国移动智能助理灵犀"); + #endif + } else label->SetTextId(labelconfig.textId); label->SetTextId(labelconfig.textId); @@ -279,8 +285,14 @@ namespace OHOS { if (title) { - if(textId == STR_JIUTIAN) + if(textId == STR_JIUTIAN) + { + #if AI_VOICE_XINGCHEN + title->SetText("星辰康瑞"); + #else title->SetText("中国移动智能助理灵犀"); + #endif + } else title->SetTextId(textId); title->ForceResetText(); diff --git a/code/sdk/application/wearable/n9/nativeapp/nativeui/aivoice/src/AiVoiceView.cpp b/code/sdk/application/wearable/n9/nativeapp/nativeui/aivoice/src/AiVoiceView.cpp index 139c98e01..ffc786103 100644 --- a/code/sdk/application/wearable/n9/nativeapp/nativeui/aivoice/src/AiVoiceView.cpp +++ b/code/sdk/application/wearable/n9/nativeapp/nativeui/aivoice/src/AiVoiceView.cpp @@ -179,8 +179,14 @@ namespace OHOS label->SetPosition(labelconfig.left, labelconfig.top, labelconfig.width, labelconfig.height); label->SetStyle(STYLE_TEXT_FONT, labelconfig.fontSize); label->SetStyle(STYLE_LINE_HEIGHT, labelconfig.lineHeigh); - if(labelconfig.textId == STR_JIUTIAN) + if(labelconfig.textId == STR_JIUTIAN) + { + #if AI_VOICE_XINGCHEN + label->SetText("星辰康瑞"); + #else label->SetText("中国移动智能助理灵犀"); + #endif + } else label->SetTextId(labelconfig.textId); label->SetLineBreakMode(labelconfig.lineBreakMode); @@ -1168,8 +1174,14 @@ namespace OHOS int textId = AiVoiceModel::GetInstance().GetAiModelTextId(); if (title) { - if(textId == STR_JIUTIAN) + if(textId == STR_JIUTIAN) + { + #if AI_VOICE_XINGCHEN + title->SetText("星辰康瑞"); + #else title->SetText("中国移动智能助理灵犀"); + #endif + } else title->SetTextId(textId); title->ForceResetText(); diff --git a/code/sdk/application/wearable/n9/nativeapp/nativeui/aivoice/src/AivoiceConnectTimeoutView.cpp b/code/sdk/application/wearable/n9/nativeapp/nativeui/aivoice/src/AivoiceConnectTimeoutView.cpp index e021a488d..5d6519886 100644 --- a/code/sdk/application/wearable/n9/nativeapp/nativeui/aivoice/src/AivoiceConnectTimeoutView.cpp +++ b/code/sdk/application/wearable/n9/nativeapp/nativeui/aivoice/src/AivoiceConnectTimeoutView.cpp @@ -82,8 +82,14 @@ namespace OHOS label->SetPosition(labelconfig.left, labelconfig.top, labelconfig.width, labelconfig.height); label->SetStyle(STYLE_TEXT_FONT, labelconfig.fontSize); label->SetStyle(STYLE_LINE_HEIGHT, labelconfig.lineHeigh); - if(labelconfig.textId == STR_JIUTIAN) + if(labelconfig.textId == STR_JIUTIAN) + { + #if AI_VOICE_XINGCHEN + label->SetText("星辰康瑞"); + #else label->SetText("中国移动智能助理灵犀"); + #endif + } else label->SetTextId(labelconfig.textId); label->SetLineBreakMode(labelconfig.lineBreakMode); @@ -269,8 +275,14 @@ namespace OHOS { if (title) { - if(textId == STR_JIUTIAN) + if(textId == STR_JIUTIAN) + { + #if AI_VOICE_XINGCHEN + title->SetText("星辰康瑞"); + #else title->SetText("中国移动智能助理灵犀"); + #endif + } else title->SetTextId(textId); title->ForceResetText(); diff --git a/code/sdk/application/wearable/n9/nativeapp/nativeui/aivoice/src/AivoiceMobileDataFailedStartView.cpp b/code/sdk/application/wearable/n9/nativeapp/nativeui/aivoice/src/AivoiceMobileDataFailedStartView.cpp index 53fa0c882..9aef7a8dc 100644 --- a/code/sdk/application/wearable/n9/nativeapp/nativeui/aivoice/src/AivoiceMobileDataFailedStartView.cpp +++ b/code/sdk/application/wearable/n9/nativeapp/nativeui/aivoice/src/AivoiceMobileDataFailedStartView.cpp @@ -90,8 +90,14 @@ namespace OHOS label->SetPosition(labelconfig.left, labelconfig.top, labelconfig.width, labelconfig.height); label->SetStyle(STYLE_TEXT_FONT, labelconfig.fontSize); label->SetStyle(STYLE_LINE_HEIGHT, labelconfig.lineHeigh); - if(labelconfig.textId == STR_JIUTIAN) + if(labelconfig.textId == STR_JIUTIAN) + { + #if AI_VOICE_XINGCHEN + label->SetText("星辰康瑞"); + #else label->SetText("中国移动智能助理灵犀"); + #endif + } else label->SetTextId(labelconfig.textId); label->SetLineBreakMode(labelconfig.lineBreakMode); @@ -279,8 +285,14 @@ namespace OHOS { if (title) { - if(textId == STR_JIUTIAN) + if(textId == STR_JIUTIAN) + { + #if AI_VOICE_XINGCHEN + title->SetText("星辰康瑞"); + #else title->SetText("中国移动智能助理灵犀"); + #endif + } else title->SetTextId(textId); title->ForceResetText(); diff --git a/code/sdk/application/wearable/n9/nativeapp/nativeui/aivoice/src/AivoiceReturnResultTextView.cpp b/code/sdk/application/wearable/n9/nativeapp/nativeui/aivoice/src/AivoiceReturnResultTextView.cpp index 7bd902733..fbced1a42 100644 --- a/code/sdk/application/wearable/n9/nativeapp/nativeui/aivoice/src/AivoiceReturnResultTextView.cpp +++ b/code/sdk/application/wearable/n9/nativeapp/nativeui/aivoice/src/AivoiceReturnResultTextView.cpp @@ -133,8 +133,14 @@ namespace OHOS label->SetPosition(labelconfig.left, labelconfig.top, labelconfig.width, labelconfig.height); label->SetStyle(STYLE_TEXT_FONT, labelconfig.fontSize); label->SetStyle(STYLE_LINE_HEIGHT, labelconfig.lineHeight); - if(labelconfig.textId == STR_JIUTIAN) + if(labelconfig.textId == STR_JIUTIAN) + { + #if AI_VOICE_XINGCHEN + label->SetText("星辰康瑞"); + #else label->SetText("中国移动智能助理灵犀"); + #endif + } else label->SetTextId(labelconfig.textId); label->SetLineBreakMode(labelconfig.lineBreakMode); @@ -359,8 +365,14 @@ namespace OHOS { if (title) { - if(textId == STR_JIUTIAN) + if(textId == STR_JIUTIAN) + { + #if AI_VOICE_XINGCHEN + title->SetText("星辰康瑞"); + #else title->SetText("中国移动智能助理灵犀"); + #endif + } else title->SetTextId(textId); title->ForceResetText(); diff --git a/code/sdk/files/fd230/fs/user/res/AIVoice/aimodels/aimodes_xingchen.bin b/code/sdk/files/fd230/fs/user/res/AIVoice/aimodels/aimodes_xingchen.bin new file mode 100644 index 0000000000000000000000000000000000000000..06ae1f4b434ab0d53f7af8fc48b1039f180c5c3c GIT binary patch literal 14376 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