* @Author: luozheng 1732036298@qq.com
* @Date: 2024-06-20 15:14:43
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-12 11:00:22
+ * @LastEditTime: 2024-07-12 16:02:11
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/aivoice/include/AiVoiceModel.h
*/
#ifndef AI_VOICE_MODEL_H
#include "iostream"
#include "string"
#include "ChatContentItem.h"
+#define AIAUDIO_TYPE_PCM 0
+#define AIAUDIO_TYPE_SBC 1
+#define AIAUDIO_TYPE_MSBC 2
+
+// 设置当前使用的音频类型,0 表示 PCM,1 表示 SBC,2 表示 MSBC
+#define CURRENT_AIAUDIO_TYPE AIAUDIO_TYPE_PCM
-#define IS_AIAUDIO_TYPE_PCM 1 /*AI录音文件是否是pcm格式*/
namespace OHOS
{
AiVoiceModel &operator=(const AiVoiceModel &) = delete;
// 私有成员变量
-#if IS_AIAUDIO_TYPE_PCM
+#if CURRENT_AIAUDIO_TYPE == AIAUDIO_TYPE_PCM
std::string AIAIAudioPath = "/user/userdata/AiRecording/AIAudio.pcm"; // AI录音的文件路径
-#else
+#elif CURRENT_AIAUDIO_TYPE == AIAUDIO_TYPE_SBC
std::string AIAIAudioPath = "/user/userdata/AiRecording/AIAudio.sbc"; // AI录音的文件路径
+#elif CURRENT_AIAUDIO_TYPE == AIAUDIO_TYPE_MSBC
+ std::string AIAIAudioPath = "/user/userdata/AiRecording/AIAudio.msbc"; // AI录音的文件路径
#endif
std::string userQuestionStr; // 用户提出的问题
std::string aiAnswerStr; // AI回答的问题
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-06-20 15:14:50
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-12 10:59:18
+ * @LastEditTime: 2024-07-12 19:01:19
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoiceModel.cpp
*/
#include "aivoice/include/AiVoiceModel.h"
/* -------------------------------------------------------------------------- */
aiAnswerStr += str;
/* -------------------------------------------------------------------------- */
- if (!UpdateAiAnswerStr())
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AiVoiceModel::UpdateAiAnswerStr fail!!");
- }
+ // if (!UpdateAiAnswerStr())
+ // {
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AiVoiceModel::UpdateAiAnswerStr fail!!");
+ // }
+ SendMsgToUIService(UI_UPDATE_AI_QUESTION_STR, 0, nullptr, 0);
}
/*清空上次用户问题和Ai回答字符串*/
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "uapi_delete_files fail!!");
}
-#if IS_AIAUDIO_TYPE_PCM
+#if CURRENT_AIAUDIO_TYPE == AIAUDIO_TYPE_PCM
const char *defaultArgs[6] = {"01", "pcm", "16000", "1", "16", audioPath.c_str()};
-#else
+#elif CURRENT_AIAUDIO_TYPE == AIAUDIO_TYPE_SBC
const char *defaultArgs[6] = {"01", "sbc", "16000", "1", "16", audioPath.c_str()};
+#elif CURRENT_AIAUDIO_TYPE == AIAUDIO_TYPE_MSBC
+ const char *defaultArgs[6] = {"01", "msbc", "16000", "1", "16", audioPath.c_str()};
#endif
AudioCaptureSample(6, (const char **)defaultArgs);
}
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-06-12 11:44:04
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-06-25 17:58:27
+ * @LastEditTime: 2024-07-12 18:56:55
* @FilePath: /FD230/code/sdk/application/wearable/nativeapp/nativeui/uiservice/include/ui_service.h
*/
/*
UI_UPDATE_SYSTEM_VOLUME, //更新系统音量
UI_UPDATE_CALL_VOLUME, //更新通话音量
UI_UPDATE_VIBRATION_MODE, //更新震动模式
- UI_UPDATE_SILENT_MODE, //更新静音模式
+ UI_UPDATE_SILENT_MODE, //更新静音模式
UI_UPDATE_WEATHER_DATA, //天气数据更新
- UI_AI_RESPONSE_USERDATA, //跳转到返回结果视图
+ UI_AI_RESPONSE_USERDATA, //跳转到返回结果视图
+ UI_UPDATE_AI_QUESTION_STR, //更新AI答案的字符串
MAX_NUM_HANDLER,
} UiServiceMsgId;
static void HandleUpdateVibrationMode(Request *request);
static void HandleUpdateSilentMode(Request *request);
static void HandleAiResponseUserData(Request *request);
+static void HandleUpdateAIQuestionStr(Request *request);
// 消息处理程序项数组(每个消息类型对应一个处理函数,函数名以 Handle 开头)
MsgHandlerEntry msgHandlers[] = {
{UI_UPDATE_VIBRATION_MODE, HandleUpdateVibrationMode},
{UI_UPDATE_SILENT_MODE, HandleUpdateSilentMode},
{UI_AI_RESPONSE_USERDATA, HandleAiResponseUserData},
+ {UI_UPDATE_AI_QUESTION_STR, HandleUpdateAIQuestionStr},
};
/* -------------------------------------------------------------------------- */
static void ScreenTurnOn(Request *request)
GraphicService::GetInstance()->PostGraphicEvent(
std::bind(&OHOS::AiVoiceModel::ChangeToReturnResultTextView, &OHOS::AiVoiceModel::GetInstance()));
}
+
+//处理更新AI答案字符串
+void HandleUpdateAIQuestionStr(Request *request)
+{
+ WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateAIQuestionStr");
+ GraphicService::GetInstance()->PostGraphicEvent(
+ std::bind(&OHOS::AiVoiceModel::UpdateAiAnswerStr, &OHOS::AiVoiceModel::GetInstance()));
+}
/* -------------------------------------------------------------------------- */
#ifdef __cplusplus
}