[2.12.0-f] tts 级别

This commit is contained in:
yangyakun
2022-10-25 17:58:48 +08:00
parent 7e0a85073f
commit 79de6f731f
18 changed files with 100 additions and 72 deletions

View File

@@ -317,12 +317,6 @@ public abstract class BaseBusTabFragment<V extends IView, P extends Presenter<V>
});
}
public void showNotice(String notice) {
getActivity().runOnUiThread(() -> {
AIAssist.getInstance(getContext()).speakTTSVoice(notice);
});
}
public void playDI(){
SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(getContext(), R.raw.bus_di);
}

View File

@@ -60,6 +60,7 @@ import com.mogo.och.common.module.utils.NumberFormatUtil;
import com.mogo.och.common.module.utils.PinYinUtil;
import com.mogo.och.common.module.utils.SoundPoolHelper;
import com.mogo.och.common.module.utils.ToastUtilsOch;
import com.mogo.och.common.module.voice.VoiceNotice;
import com.mogo.service.statusmanager.IMogoStatusChangedListener;
import com.mogo.service.statusmanager.StatusDescriptor;
@@ -618,8 +619,7 @@ public class BusOrderModel {
queryBusRoutes();
arriveStationSuccess(arrivedStationIndex);
ttsTips(String.format(mContext
VoiceNotice.showNotice(String.format(mContext
.getString(R.string.bus_arrived_station_tip),
arriveStation));
@@ -697,20 +697,9 @@ public class BusOrderModel {
//车站10s后播报
private void leaveTTSTips(String nextStation) {
UiThreadHandler.postDelayed(new Runnable() {
@Override
public void run() {
ttsTips(String.format(mContext
.getString(R.string.bus_leave_station_tip),
nextStation));
}
},DELAY_10S);
}
private void ttsTips(String notice) {
UiThreadHandler.post(() ->{
AIAssist.getInstance(mContext).speakTTSVoice(notice);
});
VoiceNotice.showNotice(String.format(mContext
.getString(R.string.bus_leave_station_tip),
nextStation),DELAY_10S);
}
/**
@@ -881,7 +870,7 @@ public class BusOrderModel {
clearBusStationDatas();
queryBusRoutes();// 重新获取任务
startOrStopQueryPassengerWriteOff(false);
ttsTips(mContext.getString(R.string.bus_end_task_tip));
VoiceNotice.showNotice(mContext.getString(R.string.bus_end_task_tip));
}
}

View File

@@ -11,6 +11,7 @@ import androidx.lifecycle.LifecycleOwner;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.commons.mvp.Presenter;
import com.mogo.commons.voice.AIAssist;
import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo;
import com.mogo.eagle.core.data.config.FunctionBuildConfig;
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener;
@@ -31,6 +32,7 @@ import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean;
import com.mogo.och.common.module.biz.callback.ILoginCallback;
import com.mogo.och.common.module.manager.OCHAdasAbilityManager;
import com.mogo.och.common.module.utils.SoundPoolHelper;
import com.mogo.och.common.module.voice.VoiceNotice;
import com.zhidao.socket.utils.LoginStatusUtil;
import org.jetbrains.annotations.NotNull;
@@ -303,7 +305,7 @@ public class BusPresenter extends Presenter<BusFragment>
public void playPassenger(WriteOffPassenger passenger) {
int passengerNum = passenger.passengerSize;
if (passengerNum > 1){ //多人播报 "x人"
mView.showNotice(passengerNum + "");
VoiceNotice.showNotice(passengerNum+"", AIAssist.LEVEL3);
}else { //是 1 播放 "滴"
mView.playDI();
}

View File

@@ -39,8 +39,12 @@
<string name="bus_dialog_cancel">取消</string>
<string name="bus_no_task_tip">暂无任务</string>
<!-- region tts -->
<string name="bus_arrived_station_tip">已到达%1$s带好随身物品下车请注意。</string>
<string name="bus_leave_station_tip">车辆起步,请扶稳坐好,前方到站是%1$s请下车的乘客做好准备。</string>
<string name="bus_end_task_tip">感谢您体验\'蘑菇车联\'无人驾驶小巴车,请您携带好随身物品,我们下次再见。</string>
<string name="bus_arrived_station_tip">已到达%1$s带好随身物品下车请注意安全。</string>
<string name="bus_end_task_tip">感谢您体验\'蘑菇车联\'自动驾驶小巴车,请您携带好随身物品,我们下次再见。</string>
<!-- endregion -->
</resources>

View File

@@ -0,0 +1,39 @@
package com.mogo.och.common.module.voice
import com.mogo.commons.AbsMogoApplication
import com.mogo.commons.voice.AIAssist
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
object VoiceNotice {
@JvmStatic
fun showNotice(notice: String?) {
showNotice(notice, AIAssist.LEVEL0)
}
@JvmStatic
fun showNotice(notice: String?, level: Int) {
showNotice(notice,level,0)
}
@JvmStatic
fun showNotice(notice: String?, delayed: Long) {
showNotice(notice, AIAssist.LEVEL0, delayed)
}
@JvmStatic
fun showNotice(notice: String?, level: Int, delayed: Long = 0) {
notice?.let {
if (delayed == 0L) {
UiThreadHandler.post {
AIAssist.getInstance(AbsMogoApplication.getApp())
.speakTTSVoiceWithLevel(it, level)
}
} else {
UiThreadHandler.postDelayed({
AIAssist.getInstance(AbsMogoApplication.getApp())
.speakTTSVoiceWithLevel(it, level)
}, delayed)
}
}
}
}

View File

@@ -332,12 +332,6 @@ public abstract class BaseTaxiTabFragment<V extends IView, P extends Presenter<V
public void onAutopilotRecordConfig(@NonNull MessagePad.RecordDataConfig config) {
}
public void showNotice(String notice) {
getActivity().runOnUiThread(() -> {
AIAssist.getInstance(getContext()).speakTTSVoice(notice);
});
}
/**
* 改变自动驾驶状态
*

View File

@@ -34,6 +34,7 @@ import com.mogo.och.common.module.map.ICommonNaviChangedCallback;
import com.mogo.och.common.module.utils.DateTimeUtil;
import com.mogo.och.common.module.utils.NumberFormatUtil;
import com.mogo.och.common.module.utils.OCHThreadPoolManager;
import com.mogo.och.common.module.voice.VoiceNotice;
import com.mogo.och.taxi.constant.TaxiConst;
import com.mogo.och.taxi.constant.TaxiOrderStatusEnum;
import com.mogo.och.taxi.R;
@@ -400,7 +401,7 @@ public class CommonBeingServerdOrdersFragment extends BaseTaxiUIFragment
}
mDistanceAndTime2.setText(Html.fromHtml(strHtml2));
if (isFirstStartAutopilotDone){
showNotice(String.format(getResources()
VoiceNotice.showNotice(String.format(getResources()
.getString(R.string.module_och_taxi_order_server_start_auto_tip),
dis,disUnit,min));
isFirstStartAutopilotDone = false;
@@ -411,7 +412,7 @@ public class CommonBeingServerdOrdersFragment extends BaseTaxiUIFragment
private void speekVoice200mTipsOnce() {
mTtsLessThan200Tip = 1;
showNotice(getResources().getString(R.string.module_och_taxi_order_arrive_end_200m_tip));
VoiceNotice.showNotice(getResources().getString(R.string.module_och_taxi_order_arrive_end_200m_tip));
}
public void onCurrentOrderRouteInfoGot(OrderQueryRouteInfoRespBean.Result routeInfo) {// 单位 米, 秒
@@ -449,7 +450,7 @@ public class CommonBeingServerdOrdersFragment extends BaseTaxiUIFragment
mTaxiFragment.confirmAutopilotConditionByDriver();
}else if (TaxiOrderStatusEnum.ArriveAtEnd.getCode() == mCurrentOrder.orderStatus) {//点击了完成服务,结束订单并更新订单信息
mTaxiFragment.completeOrderService();
showNotice(getResources().getString(R.string.module_och_taxi_order_server_completed_tip));
//VoiceNotice.showNotice(getResources().getString(R.string.module_och_taxi_order_server_completed_tip));
}
}
@@ -471,7 +472,7 @@ public class CommonBeingServerdOrdersFragment extends BaseTaxiUIFragment
switch (ochStatus) {
case OnTheWayToStart:
mOrderCancel.setVisibility(View.VISIBLE);
showNotice(mActivity.getString(R.string.module_och_taxi_new_order));
VoiceNotice.showNotice(mActivity.getString(R.string.module_och_taxi_new_order));
mTtsLessThan200Tip = 0;
isFirstStartAutopilotDone = true;
double orderStartStationLat = order.startSiteGcjPoint.get(1);
@@ -485,7 +486,7 @@ public class CommonBeingServerdOrdersFragment extends BaseTaxiUIFragment
mTtsLessThan200Tip = 0;
isFirstStartAutopilotDone = true;
mOrderCancel.setVisibility(View.VISIBLE);
showNotice(mActivity.getString(R.string.module_och_taxi_order_cancel));
//VoiceNotice.showNotice(mActivity.getString(R.string.module_och_taxi_order_cancel));
showOrHideNavi(false);
setOrRemoveMapMaker(false, TaxiConst.TAXI_START_MAP_MAKER,order.startSitePoint,R.raw.star_marker);
setOrRemoveMapMaker(false, TaxiConst.TAXI_END_MAP_MAKER,order.endSitePoint,R.raw.end_marker);
@@ -497,9 +498,9 @@ public class CommonBeingServerdOrdersFragment extends BaseTaxiUIFragment
isFirstStartAutopilotDone = true;
mOrderCancel.setVisibility(View.VISIBLE);
if (TaxiOrderStatusEnum.UserArriveAtStart.getCode() == ochStatus.getCode()){
showNotice(mActivity.getString(R.string.module_och_taxi_order_status_ph_text_check_success));
VoiceNotice.showNotice(mActivity.getString(R.string.module_och_taxi_order_status_ph_text_check_success));
}else {
showNotice(mActivity.getString(R.string.module_och_taxi_order_status_ph_text));
VoiceNotice.showNotice(mActivity.getString(R.string.module_och_taxi_order_status_ph_text));
}
showOrHideNavi(false);
setOrRemoveMapMaker(true, TaxiConst.TAXI_START_MAP_MAKER,order.startSitePoint,R.raw.star_marker);
@@ -520,7 +521,7 @@ public class CommonBeingServerdOrdersFragment extends BaseTaxiUIFragment
case ArriveAtEnd:
mTtsLessThan200Tip = 0;
mOrderCancel.setVisibility(View.GONE);
showNotice(mActivity.getString(R.string.module_och_taxi_order_auto_arrive_end_tip));
VoiceNotice.showNotice(mActivity.getString(R.string.module_och_taxi_order_auto_arrive_end_tip));
showOrHideNavi(false);
setOrRemoveMapMaker(false, TaxiConst.TAXI_START_MAP_MAKER,order.startSitePoint,R.raw.star_marker);
setOrRemoveMapMaker(false, TaxiConst.TAXI_END_MAP_MAKER,order.endSitePoint,R.raw.end_marker);
@@ -531,7 +532,7 @@ public class CommonBeingServerdOrdersFragment extends BaseTaxiUIFragment
mTtsLessThan200Tip = 0;
isFirstStartAutopilotDone = true;
mOrderCancel.setVisibility(View.GONE);
showNotice("感谢您使用蘑菇智行,再见~");
VoiceNotice.showNotice("感谢您使用蘑菇智行,再见~");
showOrHideNavi(false);
break;
}
@@ -646,12 +647,6 @@ public class CommonBeingServerdOrdersFragment extends BaseTaxiUIFragment
});
}
public void showNotice(String notice) {
mActivity.runOnUiThread(() -> {
AIAssist.getInstance(getContext()).speakTTSVoice(notice);
});
}
@Override
public void onCurrentNaviDistAndTimeChanged(int meters, long timeInSecond) {
updateDistanceAndTime(meters, timeInSecond);

View File

@@ -12,6 +12,7 @@ import androidx.constraintlayout.widget.ConstraintLayout;
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
import com.mogo.och.common.module.utils.DateTimeUtil;
import com.mogo.och.common.module.voice.VoiceNotice;
import com.mogo.och.taxi.R;
import com.mogo.och.taxi.bean.OrderQueryRespBean;
@@ -93,11 +94,11 @@ public class TaxiGrabOrderFragment extends BaseTaxiUIFragment implements View.On
Calendar calendar = DateTimeUtil.formatLongToCalendar(order.bookingTime);
if (DateTimeUtil.compareDateIsCurrentDay(calendar)){
mOrderReserverTime.setText("用车时间:今天 "+ DateTimeUtil.formatCalendarToString(calendar, DateTimeUtil.TAXI_HH_mm));
getOchTaxiFragment().showNotice("预约单,今天"+ DateTimeUtil.formatCalendarToString(calendar, DateTimeUtil.TAXI_HH_mm)+""
VoiceNotice.showNotice("预约单,今天"+ DateTimeUtil.formatCalendarToString(calendar, DateTimeUtil.TAXI_HH_mm)+""
+order.startSiteAddr+""+order.endSiteAddr);
}else {
mOrderReserverTime.setText("用车时间:"+ DateTimeUtil.formatCalendarToString(calendar, DateTimeUtil.TAXI_MM_dd_HH_mm));
getOchTaxiFragment().showNotice("预约单,"+ DateTimeUtil.formatCalendarToString(calendar, DateTimeUtil.TAXI_MM_dd)+""
VoiceNotice.showNotice("预约单,"+ DateTimeUtil.formatCalendarToString(calendar, DateTimeUtil.TAXI_MM_dd)+""
+order.startSiteAddr+""+order.endSiteAddr);
}
mOrderStartStation.setText(order.startSiteAddr);
@@ -139,7 +140,7 @@ public class TaxiGrabOrderFragment extends BaseTaxiUIFragment implements View.On
// 接单成功,语音播报“抢单成功,请合理安排后续行程接送乘客”
// 接单未成功,语音播报“接单失败,请继续接单”
public void onGrabOrderSuccess(){//抢单成功更新btn 和 动画 语音
getOchTaxiFragment().showNotice("抢单成功,请合理安排后续行程接送乘客");
VoiceNotice.showNotice("抢单成功,请合理安排后续行程接送乘客");
mGrabResultAnimView.setVisibility(View.VISIBLE);
mGrabResultAnimView.setImageDrawable(getResources().getDrawable(R.drawable.grab_success_anmi_flow));
mOrderGrabBt.setClickable(false);
@@ -165,7 +166,7 @@ public class TaxiGrabOrderFragment extends BaseTaxiUIFragment implements View.On
//开启动画结束的监听
}
public void onGrabOrderFailed(){//抢单失败更新btn 和 动画 语音
getOchTaxiFragment().showNotice("接单失败,请继续接单");
VoiceNotice.showNotice("接单失败,请继续接单");
mGrabResultAnimView.setVisibility(View.VISIBLE);
mGrabResultAnimView.setImageDrawable(getResources().getDrawable(R.drawable.grab_failure_anmi_flow));
mOrderGrabBt.setClickable(false);

View File

@@ -2,8 +2,6 @@
<resources>
<string name="module_och_taxi_arrive_at_start_station">确认上车,行程开始</string>
<string name="module_och_taxi_arrive_at_end_station">到达站点,乘客已下车</string>
<string name="module_och_taxi_order_status_ph_text">已到达上车站点,等待乘客上车</string>
<string name="module_och_taxi_order_status_ph_text_check_success">乘客验证成功,请开始行程</string>
<string name="module_och_taxi_order_distance_anchor_text">预计里程</string>
<string name="module_och_taxi_order_distance_text_ph">3.2 km</string>
<string name="module_och_taxi_order_complete">请携带好随身物品,注意侧后\n方来车感谢体验蘑菇智行自\n动驾驶车</string>
@@ -11,10 +9,8 @@
<string name="module_och_taxi_on_the_way_2_end_station">送乘客至目的地</string>
<string name="module_och_taxi_waiting">等待乘客上车</string>
<string name="module_och_taxi_user_check_success">乘客已上车</string>
<string name="module_och_taxi_new_order">前往乘客上车地点</string>
<string name="module_och_taxi_arrive_at_end_station2">已到达乘客下车点</string>
<string name="module_och_taxi_order_completed">订单已完成</string>
<string name="module_och_taxi_order_cancel">订单已取消</string>
<string name="module_och_taxi_order_cancel_title">请选择取消订单的理由</string>
<string name="module_och_taxi_order_cancel_tip">出现异常情况时,可选择原因无责取消订单:</string>
<string name="module_och_taxi_order_cancel_commit">确认</string>
@@ -25,13 +21,22 @@
<string name="module_och_taxi_order_server_wait_passenger_start">等待乘客开始行程</string>
<string name="module_och_taxi_order_choose_start_autopilot_tip">请等待乘客启动自动驾驶,或您自行启动</string>
<string name="module_och_taxi_order_server_end">服务完成</string>
<string name="module_och_taxi_order_server_completed_tip">车辆已停稳,请携带好随身物品,下车请注意安全</string>
<string name="module_och_taxi_order_server_start_auto_tip">您好,本次自动驾驶体验里程共%1$s%2$s预计需要%3$d分钟我们即将出发。出于安全考虑建议您尽量不要与安全员交谈后排落座并系好安全带</string>
<string name="module_och_taxi_order_arrive_end_200m_tip">即将到达目的地,请拿好随身物品,准备下车</string>
<string name="module_och_taxi_order_auto_arrive_end_tip">您好,我们已到达目的地,本次体验结束。车辆停稳,请带好随身物品,谨防遗漏。感谢您的乘坐</string>
<string name="module_och_taxi_auto_disable_tip">自动驾驶状态为0不可用</string>
<string name="module_och_taxi_auto_disable_tip1">司机端未确认可以开启自动驾驶</string>
<string name="network_error_tip">网络异常,请稍后重试</string>
<string name="request_error_tip">请求出现异常,请稍后重试</string>
<!-- region tts -->
<string name="module_och_taxi_order_status_ph_text_check_success">乘客验证成功,请开始行程</string>
<string name="module_och_taxi_order_status_ph_text">已到达上车站点,等待乘客上车</string>
<string name="module_och_taxi_new_order">前往乘客上车地点</string>
<string name="module_och_taxi_order_cancel">订单已取消</string>
<string name="module_och_taxi_order_server_completed_tip">车辆已停稳,请携带好随身物品,下车请注意安全</string>
<string name="module_och_taxi_order_server_start_auto_tip">您好,本次行程共%1$s%2$s预计需要%3$d分钟我们即将出发。出于安全考虑建议您尽量不要与安全员交谈后排落座并系好安全带</string>
<string name="module_och_taxi_order_arrive_end_200m_tip">即将到达目的地,请拿好随身物品,准备下车</string>
<string name="module_och_taxi_order_auto_arrive_end_tip">您好,我们已到达目的地,本次体验结束。车辆停稳,请带好随身物品,谨防遗漏。感谢您的乘坐</string>
<!-- endregion -->
</resources>

View File

@@ -54,7 +54,7 @@ object VoiceControlFacade: IMoGoVoiceControlFacade, IMogoVoiceCmdCallBack, IMogo
override fun speak(context: Context, content: String, listener: IMoGoVoiceCallback) {
listeners += WeakReference(listener)
AIAssist.getInstance(context).speakTTSVoice(content, this)
AIAssist.getInstance(context).speakTTSVoiceWithLevel(content,AIAssist.LEVEL3 ,this)
}
override fun onCmdSelected(cmd: String?) {

View File

@@ -862,7 +862,7 @@ class MoGoHmiFragment : MvpFragment<MoGoHmiContract.View?, HmiPresenter?>(),
it.invokeOnCancellation {
AIAssist.getInstance(ctx).stopSpeakTts(text)
}
AIAssist.getInstance(ctx).speakTTSVoice(text, voiceCallback)
AIAssist.getInstance(ctx).speakTTSVoiceWithLevel(text, AIAssist.LEVEL2,voiceCallback)
} catch (t: Throwable) {
it.resumeWith(Result.success(Unit))
CallerLogger.d("$M_HMI$TAG", t.message)

View File

@@ -55,7 +55,7 @@ class PushViewModel(
VOICE_ACTION_PUSH_MAIN -> {
AnalyticsUtils.track(Config.NEWS_CARD_CLICK, "trigger_type", isClick)
if (isClick == "2") {
mVoiceClient.speakTTSVoice("好的", voiceCmdCallback)
mVoiceClient.speakTTSVoiceWithLevel("好的",AIAssist.LEVEL1, voiceCmdCallback)
}
if (it.mainSchema.isNotEmpty()) {
dealSchema(it.mainSchema, mContext)
@@ -71,7 +71,7 @@ class PushViewModel(
isClick, "btn_text", it.buttons[0].text
)
if (isClick == "2") {
mVoiceClient.speakTTSVoice("好的", voiceCmdCallback)
mVoiceClient.speakTTSVoiceWithLevel("好的", AIAssist.LEVEL1,voiceCmdCallback)
}
if (it.buttons[0].action.isNotEmpty()) {
dealSchema(it.buttons[0].action, mContext)
@@ -87,7 +87,7 @@ class PushViewModel(
isClick, "btn_text", it.buttons[1].text
)
if (isClick == "2") {
mVoiceClient.speakTTSVoice("好的", voiceCmdCallback)
mVoiceClient.speakTTSVoiceWithLevel("好的",AIAssist.LEVEL1 ,voiceCmdCallback)
}
if (it.buttons[1].action.isNotEmpty()) {
dealSchema(it.buttons[1].action, mContext)
@@ -100,7 +100,7 @@ class PushViewModel(
isClick
)
if (isClick == "2") {
mVoiceClient.speakTTSVoice("好的", voiceCmdCallback)
mVoiceClient.speakTTSVoiceWithLevel("好的",AIAssist.LEVEL1, voiceCmdCallback)
}
}
}
@@ -170,7 +170,7 @@ class PushViewModel(
}
fun speakDefault(voice: String) {
mVoiceClient.speakTTSVoice(voice, voiceCmdCallback)
mVoiceClient.speakTTSVoiceWithLevel(voice,AIAssist.LEVEL3 ,voiceCmdCallback)
}
fun pauseAnimator(on: Boolean) {

View File

@@ -34,7 +34,7 @@ public class RoadConditionUtils {
* 显示Toast
*/
private static void showTip() {
AIAssist.getInstance(Utils.getApp()).speakTTSVoice("已反馈", null);
AIAssist.getInstance(Utils.getApp()).speakTTSVoiceWithLevel("已反馈", AIAssist.LEVEL2,null);
TipToast.tip("已反馈");
}
}

View File

@@ -126,7 +126,7 @@ public class CarZegoLiveVideoView extends RoundLayout {
@Override
public void onError(String errorMsg) {
refreshStatusToListener(false);
AIAssist.getInstance(Utils.getApp()).speakTTSVoice("直播获取识败,可以对我说重试", null);
AIAssist.getInstance(Utils.getApp()).speakTTSVoiceWithLevel("直播获取识败,可以对我说重试", AIAssist.LEVEL3);
stopLive();
mLoading.setVisibility(GONE);
mClLoadError.setVisibility(VISIBLE);

View File

@@ -209,7 +209,7 @@ public class V2XCrossRoadVideoView extends RoundLayout {
mClLoadError.setVisibility(GONE);
} else if (event < 0) {
refreshStatusToListener(false);
AIAssist.getInstance(Utils.getApp()).speakTTSVoice("直播获取识败,可以对我说重试", null);
AIAssist.getInstance(Utils.getApp()).speakTTSVoiceWithLevel("直播获取识败,可以对我说重试", AIAssist.LEVEL3);
stopLive();
mLoading.setVisibility(GONE);
mClLoadError.setVisibility(VISIBLE);

View File

@@ -150,7 +150,7 @@ public class V2XLiveGSYVideoView extends RoundLayout {
mLoading.setVisibility(GONE);
mClLoadError.setVisibility(GONE);
} else if (event < 0) {
AIAssist.getInstance(Utils.getApp()).speakTTSVoice("直播获取失败,可以对我说重试", null);
AIAssist.getInstance(Utils.getApp()).speakTTSVoiceWithLevel("直播获取失败,可以对我说重试", AIAssist.LEVEL3);
stopLive(mCarLiveInfo);
mLoading.setVisibility(GONE);
mClLoadError.setVisibility(VISIBLE);

View File

@@ -20,6 +20,11 @@ public class AIAssist {
private static volatile AIAssist sInstance;
public static final int LEVEL0 = 3;//P0
public static final int LEVEL1 = 2;//P1
public static final int LEVEL2 = 1;//P2
public static final int LEVEL3 = 0;//P3
private IMogoTTS mTTS;
public static AIAssist getInstance(Context context) {

View File

@@ -29,13 +29,13 @@ enum class EventTypeEnum(
//施工
FOURS_ROAD_WORK(
"10006", "道路施工", "前方施工", R.drawable.icon_warning_v2x_road_construction,
"前方施工", "道路施工"
"前方施工", "前方施工"
),
//施工-AI云下发
AI_ROAD_WORK(
"100061", "道路施工", "前方施工", R.drawable.icon_warning_v2x_road_construction,
"前方施工", "道路施工"
"前方施工", "前方施工"
),
//拥堵