正在查看: Petal Maps v4.7.0.310001 应用的 VoiceIntentionUnderstandImpl.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: Petal Maps v4.7.0.310001 应用的 VoiceIntentionUnderstandImpl.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.huawei.hiassistant.voice.intentionunderstand;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.huawei.hiassistant.platform.base.VoiceKitSdkContext;
import com.huawei.hiassistant.platform.base.bean.InteractionIdInfo;
import com.huawei.hiassistant.platform.base.bean.recognize.HeaderPayload;
import com.huawei.hiassistant.platform.base.bean.recognize.MessageConstants;
import com.huawei.hiassistant.platform.base.bean.recognize.Session;
import com.huawei.hiassistant.platform.base.bean.util.GsonUtils;
import com.huawei.hiassistant.platform.base.fullduplex.FullDuplex;
import com.huawei.hiassistant.platform.base.module.IntentionUnderstandInterface;
import com.huawei.hiassistant.platform.base.module.ModuleInstanceFactory;
import com.huawei.hiassistant.platform.base.msg.AssistantMessage;
import com.huawei.hiassistant.platform.base.northinterface.recognize.RecognizerIntent;
import com.huawei.hiassistant.platform.base.util.BaseUtils;
import com.huawei.hiassistant.platform.base.util.CountryUtil;
import com.huawei.hiassistant.platform.base.util.DeviceUtil;
import com.huawei.hiassistant.platform.base.util.IAssistantConfig;
import com.huawei.hiassistant.platform.base.util.KitLog;
import com.huawei.hiassistant.platform.base.util.NetworkUtil;
import com.huawei.hiassistant.platform.base.util.PackageUtil;
import com.huawei.hiassistant.platform.base.util.SecureIntentUtil;
import com.huawei.hiassistant.platform.base.util.UuidUtils;
import com.huawei.hiassistant.platform.base.util.VoiceBusinessFlowCache;
import com.huawei.hiassistant.voice.abilityconnector.recognizer.local.nlu.NluRecognizeParam;
import com.huawei.hiassistant.voice.common.bean.DialogRequestParam;
import com.huawei.hiassistant.voice.common.util.CommonDataUtil;
import com.huawei.hiassistant.voice.intentionunderstand.VoiceIntentionUnderstandImpl;
import defpackage.ad4;
import defpackage.joa;
import defpackage.kq1;
import defpackage.uq1;
import defpackage.yna;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Optional;
import java.util.function.Consumer;
import java.util.function.Function;
public class VoiceIntentionUnderstandImpl implements IntentionUnderstandInterface {
private static final String DATA_FORMAT = "yyyy-MM-dd HH:mm:ss";
private static final String GREEN_ASR_ORIGIN_TEXT_KEY = "origText";
private static final String GREEN_ASR_RESULT_INTENTS = "intents";
private static final String IS_TEXT_RECOGNIZE = "isTextRecognize";
private static final String NAMESPACE_SYSTEM = "System";
private static final String NAME_CLIENT_CONTEXT = "ClientContext";
private static final String RO_PRODUCT_BRAND = "ro.product.brand";
private static final String TAG = "VoiceIntentionUnderstandImpl";
private IntentionUnderstandInterface.CallBack intentionUnderstandCallBack = new IntentionUnderstandInterface.CallBack() {
@Override
public void onResult(AssistantMessage<?> assistantMessage) {
KitLog.error(VoiceIntentionUnderstandImpl.TAG, "unexpected method onResult call");
}
@Override
public void onStart() {
KitLog.error(VoiceIntentionUnderstandImpl.TAG, "unexpected method onStart call");
}
};
private String constructNluRecognizeParam(Session session, String str, String str2) {
Session nluParamSession = getNluParamSession(session);
NluRecognizeParam nluRecognizeParam = new NluRecognizeParam();
nluRecognizeParam.setSession(nluParamSession);
nluRecognizeParam.setBody(getNluParamRecognizeBody(str, str2, nluParamSession));
String json = GsonUtils.toJson(nluRecognizeParam);
KitLog.debug(TAG, "nlu params is : {}", json);
return json;
}
private NluRecognizeParam.ActiveDialogue getActiveDialogue(DialogRequestParam dialogRequestParam) {
final NluRecognizeParam.ActiveDialogue activeDialogue = new NluRecognizeParam.ActiveDialogue();
Optional.ofNullable((JsonObject) Optional.ofNullable(dialogRequestParam).map(new Function() {
@Override
public final Object apply(Object obj) {
List contexts;
contexts = ((DialogRequestParam) obj).getContexts();
return contexts;
}
}).map(new Function() {
@Override
public final Object apply(Object obj) {
HeaderPayload lambda$getActiveDialogue$8;
lambda$getActiveDialogue$8 = VoiceIntentionUnderstandImpl.lambda$getActiveDialogue$8((List) obj);
return lambda$getActiveDialogue$8;
}
}).map(new yna()).map(new joa()).map(new Function() {
@Override
public final Object apply(Object obj) {
JsonObject lambda$getActiveDialogue$9;
lambda$getActiveDialogue$9 = VoiceIntentionUnderstandImpl.lambda$getActiveDialogue$9((JsonObject) obj);
return lambda$getActiveDialogue$9;
}
}).orElse(null)).ifPresent(new Consumer() {
@Override
public final void accept(Object obj) {
VoiceIntentionUnderstandImpl.lambda$getActiveDialogue$10(NluRecognizeParam.ActiveDialogue.this, (JsonObject) obj);
}
});
return activeDialogue;
}
public static String getFormattedDate() {
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(System.currentTimeMillis()));
}
private NluRecognizeParam.DeviceInfo getNluParamDeviceInfo() {
Context appContext = IAssistantConfig.getInstance().getAppContext();
NluRecognizeParam.DeviceInfo deviceInfo = new NluRecognizeParam.DeviceInfo();
deviceInfo.setSysVersion(PackageUtil.getAppVersionByCache(appContext)).setDevF(DeviceUtil.getDevF(appContext)).setDeviceType(DeviceUtil.getDeviceName()).setDeviceBrand(DeviceUtil.getDeviceBrand());
return deviceInfo;
}
private NluRecognizeParam.NluRecognizeBody getNluParamRecognizeBody(String str, String str2, Session session) {
DialogRequestParam nluParamDialogRequestParam = CommonDataUtil.getNluParamDialogRequestParam(session);
String str3 = IAssistantConfig.getInstance().sdkConfig().isHiaiSupportLLM() ? "LLM" : MessageConstants.Receiver.MSG_RECEIVER_NLU;
NluRecognizeParam.NluRecognizeBody userInfo = new NluRecognizeParam.NluRecognizeBody().setDeviceInfo(getNluParamDeviceInfo()).setUserInfo(getNluParamUserInfo(nluParamDialogRequestParam));
if (TextUtils.isEmpty(str)) {
str = "";
}
return userInfo.setText(str).setTimestamp(getFormattedDate()).setTimeZone(CountryUtil.getTimeZone()).setLanguageCode(TextUtils.isEmpty(IAssistantConfig.getCurrentVoiceLang()) ? "zh" : IAssistantConfig.getCurrentVoiceLang()).setSpeechAccent((String) VoiceKitSdkContext.getInstance().get(RecognizerIntent.EXT_SPEECH_ACCENT, String.class).orElse("mandarin")).setMessageId(session.getMessageId()).setRequestId(UuidUtils.getUuid()).setRequestType(str3).setFullDuplexMode(session.isFullDuplexMode()).setFirstDialog(FullDuplex.stateManager().isFirstDialog(InteractionIdInfo.build(session.getSessionId(), session.getInteractionId()))).setTtsSpeaking(getTtsSpeakingState(nluParamDialogRequestParam)).setRejectionMode(getRejectionMode(nluParamDialogRequestParam)).setNluResult(str2).setSceneParams(CommonDataUtil.getSceneParams(nluParamDialogRequestParam)).setActiveDialogue(getActiveDialogue(nluParamDialogRequestParam)).setIdsContext(VoiceBusinessFlowCache.getInstance().getLatestIdsData());
}
private Session getNluParamSession(Session session) {
Session sessionInstanceWithInitialData = CommonDataUtil.getSessionInstanceWithInitialData(session);
sessionInstanceWithInitialData.setMessageName(MessageConstants.MessageName.MSG_NAME_START_RECOGNIZE).setReceiver(MessageConstants.Receiver.MSG_RECEIVER_NLU).setSender(IAssistantConfig.getInstance().getAppContext().getPackageName());
if (VoiceKitSdkContext.getInstance().get(RecognizerIntent.EXT_WAKEUP_TYPE) instanceof String) {
sessionInstanceWithInitialData.setWakeupType((String) VoiceKitSdkContext.getInstance().get(RecognizerIntent.EXT_WAKEUP_TYPE));
}
return sessionInstanceWithInitialData;
}
private NluRecognizeParam.UserInfo getNluParamUserInfo(DialogRequestParam dialogRequestParam) {
String packageName = IAssistantConfig.getInstance().getAppContext().getPackageName();
NluRecognizeParam.UserInfo userInfo = new NluRecognizeParam.UserInfo();
userInfo.setHomeCountry(CountryUtil.getDeviceLocate()).setUid((String) VoiceKitSdkContext.getInstance().get(RecognizerIntent.EXT_DEVICE_ID_3RD, String.class).orElse("")).setPackageName(packageName).setOwnerId("").setRoamingCountry(CountryUtil.getRoamingCountryCode()).setWakeUpWord(getWakeUpWord(dialogRequestParam));
return userInfo;
}
private String getRejectionMode(DialogRequestParam dialogRequestParam) {
return (String) Optional.ofNullable(dialogRequestParam).map(new Function() {
@Override
public final Object apply(Object obj) {
List contexts;
contexts = ((DialogRequestParam) obj).getContexts();
return contexts;
}
}).map(new Function() {
@Override
public final Object apply(Object obj) {
HeaderPayload lambda$getRejectionMode$5;
lambda$getRejectionMode$5 = VoiceIntentionUnderstandImpl.lambda$getRejectionMode$5((List) obj);
return lambda$getRejectionMode$5;
}
}).map(new yna()).map(new joa()).map(new Function() {
@Override
public final Object apply(Object obj) {
JsonElement lambda$getRejectionMode$6;
lambda$getRejectionMode$6 = VoiceIntentionUnderstandImpl.lambda$getRejectionMode$6((JsonObject) obj);
return lambda$getRejectionMode$6;
}
}).map(new uq1()).orElse(null);
}
private boolean getTtsSpeakingState(DialogRequestParam dialogRequestParam) {
return ((Boolean) Optional.ofNullable(dialogRequestParam).map(new Function() {
@Override
public final Object apply(Object obj) {
List contexts;
contexts = ((DialogRequestParam) obj).getContexts();
return contexts;
}
}).map(new Function() {
@Override
public final Object apply(Object obj) {
HeaderPayload lambda$getTtsSpeakingState$2;
lambda$getTtsSpeakingState$2 = VoiceIntentionUnderstandImpl.lambda$getTtsSpeakingState$2((List) obj);
return lambda$getTtsSpeakingState$2;
}
}).map(new yna()).map(new joa()).map(new Function() {
@Override
public final Object apply(Object obj) {
JsonElement lambda$getTtsSpeakingState$3;
lambda$getTtsSpeakingState$3 = VoiceIntentionUnderstandImpl.lambda$getTtsSpeakingState$3((JsonObject) obj);
return lambda$getTtsSpeakingState$3;
}
}).map(new ad4()).orElse(Boolean.FALSE)).booleanValue();
}
private JsonArray getWakeUpWord(DialogRequestParam dialogRequestParam) {
JsonArray jsonArray = new JsonArray();
try {
return (JsonArray) Optional.ofNullable(dialogRequestParam).map(new Function() {
@Override
public final Object apply(Object obj) {
List contexts;
contexts = ((DialogRequestParam) obj).getContexts();
return contexts;
}
}).map(new Function() {
@Override
public final Object apply(Object obj) {
HeaderPayload lambda$getWakeUpWord$12;
lambda$getWakeUpWord$12 = VoiceIntentionUnderstandImpl.lambda$getWakeUpWord$12((List) obj);
return lambda$getWakeUpWord$12;
}
}).map(new yna()).map(new joa()).map(new Function() {
@Override
public final Object apply(Object obj) {
JsonElement lambda$getWakeUpWord$13;
lambda$getWakeUpWord$13 = VoiceIntentionUnderstandImpl.lambda$getWakeUpWord$13((JsonObject) obj);
return lambda$getWakeUpWord$13;
}
}).map(new kq1()).orElse(new JsonArray());
} catch (IllegalStateException unused) {
KitLog.error(TAG, "IllegalStateException");
return jsonArray;
}
}
public static void lambda$getActiveDialogue$10(NluRecognizeParam.ActiveDialogue activeDialogue, JsonObject jsonObject) {
activeDialogue.setExpectedIntent((String) Optional.ofNullable(jsonObject.get("expectedIntent")).map(new uq1()).orElse("")).setNeedClarify(((Boolean) Optional.ofNullable(jsonObject.get("isNeedClarify")).map(new ad4()).orElse(Boolean.FALSE)).booleanValue());
}
public static HeaderPayload lambda$getActiveDialogue$8(List list) {
return BaseUtils.parseHeaderPayload(list, NAME_CLIENT_CONTEXT, NAMESPACE_SYSTEM);
}
public static JsonObject lambda$getActiveDialogue$9(JsonObject jsonObject) {
return jsonObject.getAsJsonObject("activeDialogue");
}
public static HeaderPayload lambda$getRejectionMode$5(List list) {
return BaseUtils.parseHeaderPayload(list, NAME_CLIENT_CONTEXT, NAMESPACE_SYSTEM);
}
public static JsonElement lambda$getRejectionMode$6(JsonObject jsonObject) {
return jsonObject.get("rejectionMode");
}
public static HeaderPayload lambda$getTtsSpeakingState$2(List list) {
return BaseUtils.parseHeaderPayload(list, NAME_CLIENT_CONTEXT, NAMESPACE_SYSTEM);
}
public static JsonElement lambda$getTtsSpeakingState$3(JsonObject jsonObject) {
return jsonObject.get("isTtsSpeaking");
}
public static HeaderPayload lambda$getWakeUpWord$12(List list) {
return BaseUtils.parseHeaderPayload(list, NAME_CLIENT_CONTEXT, NAMESPACE_SYSTEM);
}
public static JsonElement lambda$getWakeUpWord$13(JsonObject jsonObject) {
return jsonObject.get("wakeUpWord");
}
public void lambda$startIntentionUnderstand$0(Intent intent, AssistantMessage assistantMessage, Bundle bundle) {
String stringFromBundle = BaseUtils.getStringFromBundle(bundle, "origText");
String stringFromBundle2 = BaseUtils.getStringFromBundle(bundle, GREEN_ASR_RESULT_INTENTS);
if (NetworkUtil.isNetworkAvailable(IAssistantConfig.getInstance().getAppContext())) {
intent.putExtra(RecognizerIntent.EXT_INIT_IF_NECESSARY, false);
}
intent.putExtra(IS_TEXT_RECOGNIZE, SecureIntentUtil.getSecureBundleBoolean(bundle, IS_TEXT_RECOGNIZE, false));
ModuleInstanceFactory.Ability.recognize().startNluAnalyze(assistantMessage.getHeader(), constructNluRecognizeParam(assistantMessage.getHeader(), stringFromBundle, stringFromBundle2), intent);
}
@Override
public void handleIntentionUnderstandResult(AssistantMessage<?> assistantMessage) {
if (assistantMessage != null) {
this.intentionUnderstandCallBack.onResult(assistantMessage);
}
}
@Override
public void init(IntentionUnderstandInterface.CallBack callBack) {
if (callBack == null) {
KitLog.error(TAG, "IntentionUnderstandInterface callBack null");
} else {
this.intentionUnderstandCallBack = callBack;
}
}
@Override
public void startIntentionUnderstand(final AssistantMessage<?> assistantMessage) {
if (assistantMessage == null) {
return;
}
Object body = assistantMessage.getBody();
if (body == null) {
String str = (String) VoiceKitSdkContext.getInstance().get("dataType", String.class).orElse("");
if (TextUtils.equals(str, RecognizerIntent.COMMAND_DATA_TYPE) || TextUtils.equals(str, RecognizerIntent.SCENARIO_DATA_TYPE)) {
ModuleInstanceFactory.Ability.recognize().startNluAnalyze(assistantMessage.getHeader(), constructNluRecognizeParam(assistantMessage.getHeader(), "", ""), new Intent());
return;
}
return;
}
final Intent intent = new Intent();
if (!(body instanceof Intent)) {
if (body instanceof Bundle) {
BaseUtils.getTargetInstance(body, Bundle.class).ifPresent(new Consumer() {
@Override
public final void accept(Object obj) {
VoiceIntentionUnderstandImpl.this.lambda$startIntentionUnderstand$0(intent, assistantMessage, (Bundle) obj);
}
});
return;
} else {
KitLog.debug(TAG, "startIntentionUnderstand else", new Object[0]);
return;
}
}
Intent intent2 = (Intent) BaseUtils.getTargetInstance(body, Intent.class).get();
String constructNluRecognizeParam = constructNluRecognizeParam(assistantMessage.getHeader(), intent2.hasExtra("text") ? SecureIntentUtil.getSecureIntentString(intent2, "text") : "", "");
intent.putExtra(IS_TEXT_RECOGNIZE, true);
if (intent2.hasExtra("requestType")) {
intent.putExtra("requestType", SecureIntentUtil.getSecureIntentString(intent2, "requestType"));
}
if (intent2.hasExtra(RecognizerIntent.EXT_RECOGNIZE_MODE)) {
intent.putExtra(RecognizerIntent.EXT_RECOGNIZE_MODE, SecureIntentUtil.getSecureIntentString(intent2, RecognizerIntent.EXT_RECOGNIZE_MODE));
}
ModuleInstanceFactory.Ability.recognize().startNluAnalyze(assistantMessage.getHeader(), constructNluRecognizeParam, intent);
}
}