[feature]

[删除b2司机屏的一个tts]
This commit is contained in:
yangyakun
2024-03-11 20:29:00 +08:00
parent 3b819318da
commit 21b3832f93
14 changed files with 325 additions and 235 deletions

View File

@@ -31,10 +31,12 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager;
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager;
import com.mogo.eagle.core.function.call.autopilot.CallerPlanningRottingListenerManager;
import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.eagle.core.utilcode.mogo.logger.Logger;
import com.mogo.eagle.core.utilcode.util.CoordinateUtils;
import com.mogo.eagle.core.utilcode.util.DrivingDirectionUtils;
import com.mogo.eagle.core.utilcode.util.GsonUtils;
import com.mogo.eagle.core.utilcode.util.NetworkUtils;
import com.mogo.eagle.core.utilcode.util.StringUtils;
import com.mogo.eagle.core.utilcode.util.ToastUtils;
@@ -56,6 +58,8 @@ import com.mogo.och.bus.presenter.BusModelLoopManager;
import com.mogo.och.bus.util.BusAnalyticsManager;
import com.mogo.och.bus.util.BusSendTripInfoManager;
import com.mogo.och.bus.util.BusTrajectoryManager;
import com.mogo.och.bus.util.BusVoiceManager;
import com.mogo.och.common.module.bean.dpmsg.AppConnectMsg;
import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager;
import com.mogo.och.common.module.biz.common.socketmessage.data.OCHOperationalMessage;
import com.mogo.och.common.module.biz.constant.OchCommonConst;
@@ -73,8 +77,6 @@ import com.mogo.och.common.module.utils.NumberFormatUtil;
import com.mogo.och.common.module.utils.OCHThreadPoolManager;
import com.mogo.och.common.module.utils.PinYinUtil;
import com.mogo.och.common.module.utils.ToastUtilsOch;
import com.mogo.och.common.module.voice.VoiceManager;
import com.mogo.och.common.module.voice.VoiceNotice;
import org.jetbrains.annotations.NotNull;
@@ -777,7 +779,7 @@ public class OrderModel {
, arriveStation
, isLastStop);
}
VoiceManager.INSTANCE.arrivedStationBus(arriveStation,arriveStationKr);
BusVoiceManager.INSTANCE.arrivedStationBus(arriveStation,arriveStationKr);
}
/**
@@ -843,7 +845,7 @@ public class OrderModel {
//车站10s后播报
private void leaveTTSTips(String nextStation,String nextStationKr) {
UiThreadHandler.postDelayed(() -> VoiceManager.INSTANCE.leaveStationBus(nextStation,nextStationKr),DELAY_10S);
UiThreadHandler.postDelayed(() -> BusVoiceManager.INSTANCE.leaveStationBus(nextStation,nextStationKr),DELAY_10S);
}
/**
@@ -990,8 +992,7 @@ public class OrderModel {
OCHSocketMessageManager.INSTANCE.pushAppOperationalMsgBox(
DateTimeUtil.getCurrentTimeStamp(),
tips,OCHSocketMessageManager.OPERATION_SYSTEM);
//语音提示
VoiceNotice.showNotice(tips);
BusVoiceManager.INSTANCE.leafTime(tips);
}
Runnable tip1Runnable = () -> {
@@ -1103,7 +1104,7 @@ public class OrderModel {
}
private void ttsEndTask() {
VoiceManager.INSTANCE.endOrderBus();
BusVoiceManager.INSTANCE.endOrderBus();
}
/**
@@ -1152,6 +1153,10 @@ public class OrderModel {
}
public void sendWriteOffNumToClient(String msg){
AppConnectMsg passengerMsg = new AppConnectMsg(false,true,msg,-1);
CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING,
GsonUtils.toJson(passengerMsg).getBytes());
}
// 车机端上传心跳数据(只在出车状态时上传)

View File

@@ -11,7 +11,6 @@ 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.data.map.MogoLocation;
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener;
@@ -28,11 +27,11 @@ import com.mogo.och.bus.callback.ISlidePannelHideCallback;
import com.mogo.och.bus.fragment.BusFragment;
import com.mogo.och.bus.model.OrderModel;
import com.mogo.och.bus.util.BusTrajectoryManager;
import com.mogo.och.bus.util.BusVoiceManager;
import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean;
import com.mogo.och.common.module.biz.callback.ILoginCallback;
import com.mogo.och.common.module.biz.constant.LoginStatusManager;
import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager;
import com.mogo.och.common.module.voice.VoiceNotice;
import com.zhjt.mogo.adas.data.AdasConstants;
import java.util.ArrayList;
@@ -280,13 +279,12 @@ public class BusPresenter extends Presenter<BusFragment>
public void playPassenger(WriteOffPassenger passenger) {
int passengerNum = passenger.passengerSize;
if (passengerNum > 1){ //多人播报 "x人" ---》x人核验通过
VoiceNotice.showNotice(passengerNum+"人核验通过", AIAssist.LEVEL3);
OrderModel.getInstance().sendWriteOffNumToClient(passengerNum+"人核验通过");
}else { //是 1 播放 "滴" 2022.11.09 改为: "核验通过"
// mView.playDI();
VoiceNotice.showNotice("核验通过", AIAssist.LEVEL3);
OrderModel.getInstance().sendWriteOffNumToClient("核验通过");
}
BusVoiceManager.INSTANCE.writeOffCount(passengerNum);
}
@Override

View File

@@ -0,0 +1,91 @@
package com.mogo.och.bus.util
import com.mogo.commons.AbsMogoApplication
import com.mogo.commons.voice.AIAssist
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.och.bus.R
import com.mogo.och.common.module.voice.VoiceNotice
import com.mogo.tts.base.LangTtsEntity
import com.mogo.tts.base.LanguageType
import java.util.ArrayList
object BusVoiceManager {
fun writeOffCount(successNum:Int){
if(successNum<=1){
VoiceNotice.showNotice("核验通过", AIAssist.LEVEL3);
}else{
VoiceNotice.showNotice("$successNum 人核验通过", AIAssist.LEVEL3);
}
}
fun arrivedStationBus(siteNameCN: String?, siteNameKR: String?) {
if (AppIdentityModeUtils.isM2(FunctionBuildConfig.appIdentityMode)) {
return
}
val context = AbsMogoApplication.getApp()
val list: MutableList<LangTtsEntity> = ArrayList()
siteNameCN?.let {
val chineseTTS = LangTtsEntity(
context.getString(R.string.bus_arrived_station_tip, it),
LanguageType.CHINESE
)
val engTTS = LangTtsEntity(
context.getString(R.string.bus_arrived_station_english_tip, it),
LanguageType.CHINESE
)
val koreanTTS = LangTtsEntity(
context.getString(R.string.bus_arrived_station_korean_tip, siteNameKR?:it),
LanguageType.KOREAN
)
list.add(chineseTTS)
list.add(engTTS)
list.add(koreanTTS)
}
VoiceNotice.showNotice(list, AIAssist.LEVEL1,null)
}
fun leaveStationBus(siteNameCN: String?, siteNameKR: String?) {
val list: MutableList<LangTtsEntity> = ArrayList()
val context = AbsMogoApplication.getApp()
siteNameCN?.let {
val chineseTTS = LangTtsEntity(
context.getString(R.string.bus_leave_station_tip, it),
LanguageType.CHINESE
)
val engTTS = LangTtsEntity(
context.getString(R.string.bus_leave_station_english_tip, it),
LanguageType.CHINESE
)
list.add(chineseTTS)
list.add(engTTS)
val koreanTTS = LangTtsEntity(
context.getString(R.string.bus_leave_station_korean_tip, siteNameKR ?: it),
LanguageType.KOREAN
)
list.add(koreanTTS)
}
VoiceNotice.showNotice(list, AIAssist.LEVEL1,null)
}
fun endOrderBus() {
val context = AbsMogoApplication.getApp()
val list: MutableList<LangTtsEntity> = ArrayList()
val chineseTTS = LangTtsEntity(context.getString(R.string.bus_end_task_tip), LanguageType.CHINESE)
val engTTS = LangTtsEntity(context.getString(R.string.bus_end_task_english_tip), LanguageType.ENGLISH)
val koreanTTS = LangTtsEntity(context.getString(R.string.bus_end_task_korean_tip), LanguageType.KOREAN)
list.add(chineseTTS)
list.add(engTTS)
list.add(koreanTTS)
VoiceNotice.showNotice(list, AIAssist.LEVEL0,null)
}
fun leafTime(tips: String) {
//语音提示
VoiceNotice.showNotice(tips);
}
}

View File

@@ -40,8 +40,11 @@
<string name="bus_no_task_tip">暂无任务</string>
<string name="bus_before_tips_s">距离发车时间还有%1$s分钟</string>
<string name="bus_pingxing_driver">平行驾驶</string>
<!-- region tts -->
<string name="bus_arrived_station_tip">已到达%1$s带好随身物品下车请注意安全。</string>
<string name="bus_arrived_station_english_tip">We are arriving at %1$s get off with your belongings</string>
<string name="bus_arrived_station_korean_tip">%1$s 역에 도착했습니다 , 소지품 챙겨서 내리세요</string>
@@ -53,10 +56,6 @@
<string name="bus_end_task_tip">感谢您体验\'蘑菇车联\'自动驾驶小巴车,我们下次再见。</string>
<string name="bus_end_task_english_tip">Thank you for experiencing the self-driving minibus. See you next time</string>
<string name="bus_end_task_korean_tip">자율주행 버스를 체험해 주셔서 감사합니다. 다음에 또 뵙겠습니다</string>
<!-- endregion -->
<string name="bus_before_tips_s">距离发车时间还有%1$s分钟</string>
<string name="bus_pingxing_driver">平行驾驶</string>
</resources>

View File

@@ -31,6 +31,7 @@ import com.mogo.och.charter.passenger.callback.*
import com.mogo.och.charter.passenger.constant.CharterPassengerConst
import com.mogo.och.common.module.manager.loopmanager.BizLoopManager
import com.mogo.och.charter.passenger.net.BusPassengerServiceManager
import com.mogo.och.charter.passenger.utils.CharterVoiceManager
import com.mogo.och.common.module.wigets.toast.ToastCharterUtils
import com.mogo.och.charter.passenger.utils.VoiceFocusManager
import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg
@@ -49,7 +50,6 @@ import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.common.module.utils.PinYinUtil
import com.mogo.och.common.module.utils.RxUtils
import com.mogo.och.common.module.voice.VoiceManager
import com.mogo.och.common.module.voice.VoiceNotice
import io.reactivex.Observable
import io.reactivex.disposables.Disposable
@@ -578,7 +578,7 @@ object CharterPassengerModel {
AbsMogoApplication.getApp()
.getString(R.string.charter_p_end_order_15min), 2
)
VoiceManager.surplus15min(VoiceFocusManager.getVoiceCmdCallBack())
CharterVoiceManager.surplus15min(VoiceFocusManager.getVoiceCmdCallBack())
d(M_BUS_P + TAG, "倒计时15分钟${it.orderNo}")
SharedPrefsMgr.getInstance()
.putBoolean("${it.orderNo}$min5Speak", true)
@@ -980,7 +980,7 @@ object CharterPassengerModel {
if (order != null && lineId != null && siteId != null) {
OchChainLogManager.writeChainLog(this.orderInfo.toString(),"到站成功:${order.siteName}")
BeautifyManager.notifyViewChange(BeautifyManager.ChangeTypeEnum.ARRIVED_DEST)
VoiceManager.arrivedStation(
CharterVoiceManager.arrivedStation(
order.siteName!!,
order.siteNameKr ?: "",
VoiceFocusManager.getVoiceCmdCallBack()
@@ -1119,7 +1119,7 @@ object CharterPassengerModel {
fun leaveStation() {
orderInfo?.siteName?.let { cn ->
VoiceManager.leaveStation(
CharterVoiceManager.leaveStation(
cn,
orderInfo?.siteNameKr ?: "",
VoiceFocusManager.getVoiceCmdCallBack()

View File

@@ -17,8 +17,8 @@ import com.mogo.eagle.core.utilcode.util.BarUtils
import com.mogo.eagle.core.utilcode.util.ClickUtils
import com.mogo.och.charter.passenger.R
import com.mogo.och.charter.passenger.presenter.BusPassengerCarUseAndNoOrderPresenter
import com.mogo.och.charter.passenger.utils.CharterVoiceManager
import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorManager
import com.mogo.och.common.module.voice.VoiceManager
import kotlinx.android.synthetic.main.charter_p_order_end.iv_end_order_closedoor
import kotlinx.android.synthetic.main.charter_p_order_end.iv_end_order_opendoor
@@ -154,7 +154,7 @@ class M1CarUserNoOrderFragment :
CallerLogger.d(M_BUS_P + TAG, "已经添加正在移除")
}
m1CarUserNoOrderFragment.show(parentFragmentManager, TAG)
VoiceManager.endOrder()
CharterVoiceManager.endOrder()
CallerLogger.d(M_BUS_P + TAG, "展示开关门")
} else {
CallerLogger.d(M_BUS_P + TAG, "dialog 1s内执行一次")

View File

@@ -0,0 +1,88 @@
package com.mogo.och.charter.passenger.utils
import com.mogo.commons.AbsMogoApplication
import com.mogo.commons.voice.AIAssist
import com.mogo.och.charter.passenger.R
import com.mogo.och.common.module.voice.VoiceNotice
import com.mogo.tts.base.IMogoTTSCallback
import com.mogo.tts.base.LangTtsEntity
import com.mogo.tts.base.LanguageType
import java.util.ArrayList
object CharterVoiceManager {
fun arrivedStation(siteNameCN: String?, siteNameKR: String?,callBack: IMogoTTSCallback?=null) {
val contenxt = AbsMogoApplication.getApp()
val list: MutableList<LangTtsEntity> = ArrayList()
siteNameCN?.let {
val chineseTTS = LangTtsEntity(
contenxt.getString(R.string.charter_arrived_station_zh, it),
LanguageType.CHINESE
)
val engTTS = LangTtsEntity(
contenxt.getString(R.string.charter_arrived_station_en, it),
LanguageType.CHINESE
)
val koreanTTS = LangTtsEntity(
contenxt.getString(R.string.charter_arrived_station_ko, siteNameKR?:it),
LanguageType.KOREAN
)
list.add(chineseTTS)
list.add(engTTS)
list.add(koreanTTS)
}
VoiceNotice.showNotice(list, AIAssist.LEVEL1,callBack)
}
fun leaveStation(siteNameCN: String?, siteNameKR: String?,callBack: IMogoTTSCallback?=null) {
val list: MutableList<LangTtsEntity> = ArrayList()
val contenxt = AbsMogoApplication.getApp()
siteNameCN?.let {
val chineseTTS = LangTtsEntity(
contenxt.getString(R.string.charter_leave_station_zh, it),
LanguageType.CHINESE
)
val engTTS = LangTtsEntity(
contenxt.getString(R.string.charter_leave_station_en, it),
LanguageType.CHINESE
)
list.add(chineseTTS)
list.add(engTTS)
val koreanTTS = LangTtsEntity(
contenxt.getString(R.string.charter_leave_station_ko, siteNameKR ?: it),
LanguageType.KOREAN
)
list.add(koreanTTS)
}
VoiceNotice.showNotice(list, AIAssist.LEVEL1,callBack)
}
fun surplus15min(callBack: IMogoTTSCallback?=null) {
val contenxt = AbsMogoApplication.getApp()
val list: MutableList<LangTtsEntity> = ArrayList()
val chineseTTS = LangTtsEntity(contenxt.getString(R.string.charter_surplus15_order_zh), LanguageType.CHINESE)
val engTTS = LangTtsEntity(contenxt.getString(R.string.charter_surplus15_order_en), LanguageType.ENGLISH)
val koreanTTS = LangTtsEntity(contenxt.getString(R.string.charter_surplus15_order_ko), LanguageType.KOREAN)
list.add(chineseTTS)
list.add(engTTS)
list.add(koreanTTS)
VoiceNotice.showNotice(list, AIAssist.LEVEL0,callBack)
}
fun endOrder(){
endOrder(null)
}
fun endOrder(callBack: IMogoTTSCallback?=null) {
val contenxt = AbsMogoApplication.getApp()
val list: MutableList<LangTtsEntity> = ArrayList()
val chineseTTS = LangTtsEntity(contenxt.getString(R.string.charter_end_order_zh), LanguageType.CHINESE)
val engTTS = LangTtsEntity(contenxt.getString(R.string.charter_end_order_en), LanguageType.ENGLISH)
val koreanTTS = LangTtsEntity(contenxt.getString(R.string.charter_end_order_ko), LanguageType.KOREAN)
list.add(chineseTTS)
list.add(engTTS)
list.add(koreanTTS)
VoiceNotice.showNotice(list, AIAssist.LEVEL0,callBack)
}
}

View File

@@ -62,12 +62,20 @@
<!-- <string name="m1_novice_guidance_tts">感谢您体验蘑菇车联自动驾驶小巴车,本次旅程已结束,期待下次再见</string>-->
<string name="charter_arrived_station_en">We are arriving at %1$s</string>
<string name="charter_arrived_station_ko">%1$s 역에 도착했습니다</string>
<string name="charter_arrived_station_zh">已到达%1$s</string>
<string name="charter_leave_station_zh">车辆起步,请扶稳坐好,前方到站 %1$s</string>
<string name="charter_leave_station_en">The next station is %1$s</string>
<string name="charter_leave_station_ko">전방에서 역에 도착하는 %1$s</string>
<string name="charter_surplus15_order_zh">15分钟后包车就要结束了稍后小助手会自动为您寻找停车点</string>
<string name="charter_surplus15_order_en">There are 15 minutes left from the end of chartering. Please arrange your time reasonably</string>
<string name="charter_surplus15_order_ko">전세버스 종료 후 15분 남았습니다. 여행 시간을 합리적으로 안배해 주십시오</string>
<string name="charter_end_order_zh">感谢您体验\'蘑菇车联\'自动驾驶小巴车,本次旅程已结束,我们下次乘车再见</string>
<string name="charter_end_order_en">Thank you for experiencing the self-driving minibus. See you next time</string>
<string name="charter_end_order_ko">자율주행 버스를 체험해 주셔서 감사합니다. 다음에 또 뵙겠습니다</string>
</resources>

View File

@@ -1,166 +0,0 @@
package com.mogo.och.common.module.voice
import com.mogo.commons.AbsMogoApplication
import com.mogo.commons.voice.AIAssist
import com.mogo.och.common.module.R
import com.mogo.tts.base.IMogoTTSCallback
import com.mogo.tts.base.LangTtsEntity
import com.mogo.tts.base.LanguageType
import java.util.ArrayList
object VoiceManager {
fun arrivedStation(siteNameCN: String?) {
arrivedStation(siteNameCN,"")
}
fun arrivedStation(siteNameCN: String?,siteNameKR: String?) {
arrivedStation(siteNameCN,siteNameKR,null)
}
fun arrivedStation(siteNameCN: String?, siteNameKR: String?,callBack: IMogoTTSCallback?=null) {
val contenxt = AbsMogoApplication.getApp()
val list: MutableList<LangTtsEntity> = ArrayList()
siteNameCN?.let {
val chineseTTS = LangTtsEntity(
contenxt.getString(R.string.arrived_station_zh, it),
LanguageType.CHINESE
)
val engTTS = LangTtsEntity(
contenxt.getString(R.string.arrived_station_en, it),
LanguageType.CHINESE
)
val koreanTTS = LangTtsEntity(
contenxt.getString(R.string.arrived_station_ko, siteNameKR?:it),
LanguageType.KOREAN
)
list.add(chineseTTS)
list.add(engTTS)
list.add(koreanTTS)
}
VoiceNotice.showNotice(list, AIAssist.LEVEL1,callBack)
}
fun leaveStation(siteNameCN: String?){
leaveStation(siteNameCN,"")
}
fun leaveStation(siteNameCN: String?,siteNameKR: String?){
leaveStation(siteNameCN,siteNameKR,null)
}
fun leaveStation(siteNameCN: String?, siteNameKR: String?,callBack: IMogoTTSCallback?=null) {
val list: MutableList<LangTtsEntity> = ArrayList()
val contenxt = AbsMogoApplication.getApp()
siteNameCN?.let {
val chineseTTS = LangTtsEntity(
contenxt.getString(R.string.leave_station_zh, it),
LanguageType.CHINESE
)
val engTTS = LangTtsEntity(
contenxt.getString(R.string.leave_station_en, it),
LanguageType.CHINESE
)
list.add(chineseTTS)
list.add(engTTS)
val koreanTTS = LangTtsEntity(
contenxt.getString(R.string.leave_station_ko, siteNameKR ?: it),
LanguageType.KOREAN
)
list.add(koreanTTS)
}
VoiceNotice.showNotice(list, AIAssist.LEVEL1,callBack)
}
fun surplus5min(){
surplus15min(null)
}
fun surplus15min(callBack: IMogoTTSCallback?=null) {
val contenxt = AbsMogoApplication.getApp()
val list: MutableList<LangTtsEntity> = ArrayList()
val chineseTTS = LangTtsEntity(contenxt.getString(R.string.surplus15_order_zh), LanguageType.CHINESE)
val engTTS = LangTtsEntity(contenxt.getString(R.string.surplus15_order_en), LanguageType.ENGLISH)
val koreanTTS = LangTtsEntity(contenxt.getString(R.string.surplus15_order_ko), LanguageType.KOREAN)
list.add(chineseTTS)
list.add(engTTS)
list.add(koreanTTS)
VoiceNotice.showNotice(list, AIAssist.LEVEL0,callBack)
}
fun endOrder(){
endOrder(null)
}
fun endOrder(callBack: IMogoTTSCallback?=null) {
val contenxt = AbsMogoApplication.getApp()
val list: MutableList<LangTtsEntity> = ArrayList()
val chineseTTS = LangTtsEntity(contenxt.getString(R.string.end_order_zh), LanguageType.CHINESE)
val engTTS = LangTtsEntity(contenxt.getString(R.string.end_order_en), LanguageType.ENGLISH)
val koreanTTS = LangTtsEntity(contenxt.getString(R.string.end_order_ko), LanguageType.KOREAN)
list.add(chineseTTS)
list.add(engTTS)
list.add(koreanTTS)
VoiceNotice.showNotice(list, AIAssist.LEVEL0,callBack)
}
fun arrivedStationBus(siteNameCN: String?, siteNameKR: String?) {
val context = AbsMogoApplication.getApp()
val list: MutableList<LangTtsEntity> = ArrayList()
siteNameCN?.let {
val chineseTTS = LangTtsEntity(
context.getString(R.string.bus_arrived_station_tip, it),
LanguageType.CHINESE
)
val engTTS = LangTtsEntity(
context.getString(R.string.bus_arrived_station_english_tip, it),
LanguageType.CHINESE
)
val koreanTTS = LangTtsEntity(
context.getString(R.string.bus_arrived_station_korean_tip, siteNameKR?:it),
LanguageType.KOREAN
)
list.add(chineseTTS)
list.add(engTTS)
list.add(koreanTTS)
}
VoiceNotice.showNotice(list, AIAssist.LEVEL1,null)
}
fun leaveStationBus(siteNameCN: String?, siteNameKR: String?) {
val list: MutableList<LangTtsEntity> = ArrayList()
val context = AbsMogoApplication.getApp()
siteNameCN?.let {
val chineseTTS = LangTtsEntity(
context.getString(R.string.bus_leave_station_tip, it),
LanguageType.CHINESE
)
val engTTS = LangTtsEntity(
context.getString(R.string.bus_leave_station_english_tip, it),
LanguageType.CHINESE
)
list.add(chineseTTS)
list.add(engTTS)
val koreanTTS = LangTtsEntity(
context.getString(R.string.bus_leave_station_korean_tip, siteNameKR ?: it),
LanguageType.KOREAN
)
list.add(koreanTTS)
}
VoiceNotice.showNotice(list, AIAssist.LEVEL1,null)
}
fun endOrderBus() {
val context = AbsMogoApplication.getApp()
val list: MutableList<LangTtsEntity> = ArrayList()
val chineseTTS = LangTtsEntity(context.getString(R.string.bus_end_task_tip), LanguageType.CHINESE)
val engTTS = LangTtsEntity(context.getString(R.string.bus_end_task_english_tip), LanguageType.ENGLISH)
val koreanTTS = LangTtsEntity(context.getString(R.string.bus_end_task_korean_tip), LanguageType.KOREAN)
list.add(chineseTTS)
list.add(engTTS)
list.add(koreanTTS)
VoiceNotice.showNotice(list, AIAssist.LEVEL0,null)
}
}

View File

@@ -15,34 +15,6 @@
<string name="network_error_tip">网络异常,请稍后重试</string>
<string name="request_error_tip">请求出现异常,请稍后重试</string>
<string name="arrived_station_en">We are arriving at %1$s</string>
<string name="arrived_station_ko">%1$s 역에 도착했습니다</string>
<string name="arrived_station_zh">已到达%1$s</string>
<string name="leave_station_zh">车辆起步,请扶稳坐好,前方到站 %1$s</string>
<string name="leave_station_en">The next station is %1$s</string>
<string name="leave_station_ko">전방에서 역에 도착하는 %1$s</string>
<string name="surplus15_order_zh">15分钟后包车就要结束了稍后小助手会自动为您寻找停车点</string>
<string name="surplus15_order_en">There are 15 minutes left from the end of chartering. Please arrange your time reasonably</string>
<string name="surplus15_order_ko">전세버스 종료 후 15분 남았습니다. 여행 시간을 합리적으로 안배해 주십시오</string>
<string name="end_order_zh">感谢您体验\'蘑菇车联\'自动驾驶小巴车,本次旅程已结束,我们下次乘车再见</string>
<string name="end_order_en">Thank you for experiencing the self-driving minibus. See you next time</string>
<string name="end_order_ko">자율주행 버스를 체험해 주셔서 감사합니다. 다음에 또 뵙겠습니다</string>
<string name="bus_arrived_station_tip">已到达%1$s带好随身物品下车请注意安全。</string>
<string name="bus_arrived_station_english_tip">We are arriving at %1$s get off with your belongings</string>
<string name="bus_arrived_station_korean_tip">%1$s 역에 도착했습니다 , 소지품 챙겨서 내리세요</string>
<string name="bus_leave_station_tip">车辆起步,请扶稳坐好,前方到站是%1$s请下车的乘客做好准备。</string>
<string name="bus_leave_station_english_tip">The next station is %1$s please get ready for your arrival</string>
<string name="bus_leave_station_korean_tip">전방에서 역에 도착하는 %1$s ,차에서 내리는 승객은 준비하세요</string>
<string name="bus_end_task_tip">感谢您体验\'蘑菇车联\'自动驾驶小巴车,我们下次再见。</string>
<string name="bus_end_task_english_tip">Thank you for experiencing the self-driving minibus. See you next time</string>
<string name="bus_end_task_korean_tip">자율주행 버스를 체험해 주셔서 감사합니다. 다음에 또 뵙겠습니다</string>
<string name="qr_cancel">取消</string>
<string name="bind_driver_qr_title">扫描二维码完成车辆绑定</string>
</resources>

View File

@@ -22,6 +22,7 @@ import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters;
import com.mogo.eagle.core.data.config.FunctionBuildConfig;
import com.mogo.eagle.core.data.map.MogoLocation;
import com.mogo.och.bus.bean.BusRoutesResponse;
import com.mogo.och.bus.util.ShuttleVoiceManager;
import com.mogo.och.common.module.bean.dpmsg.AppConnectMsg;
import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg;
import com.mogo.och.common.module.bean.dpmsg.DPMsgType;
@@ -64,8 +65,6 @@ import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager
import com.mogo.och.common.module.utils.DateTimeUtil;
import com.mogo.och.common.module.utils.NumberFormatUtil;
import com.mogo.och.common.module.utils.PinYinUtil;
import com.mogo.och.common.module.voice.VoiceManager;
import com.mogo.och.common.module.voice.VoiceNotice;
import com.mogo.och.common.module.bean.dpmsg.BusCacheKey;
import com.mogo.och.data.bean.BusTransferData;
import com.mogo.och.data.manager.cache.CacheDataManager;
@@ -719,7 +718,7 @@ public class OrderModel {
, isLastStop);
}
VoiceManager.INSTANCE.arrivedStationBus(arriveStation,arriveStationKr);
ShuttleVoiceManager.INSTANCE.arrivedStationBus(arriveStation,arriveStationKr);
sendArrivedStationToClient(arriveStation);
@@ -823,7 +822,7 @@ public class OrderModel {
UiThreadHandler.postDelayed(new Runnable() {
@Override
public void run() {//延迟10s播报
VoiceManager.INSTANCE.leaveStationBus(nextStation,nextStationKr);
ShuttleVoiceManager.INSTANCE.leaveStationBus(nextStation,nextStationKr);
}
},DELAY_10S);
@@ -974,8 +973,7 @@ public class OrderModel {
OCHSocketMessageManager.INSTANCE.pushAppOperationalMsgBox(
DateTimeUtil.getCurrentTimeStamp(),
tips,OCHSocketMessageManager.OPERATION_SYSTEM);
//语音提示
VoiceNotice.showNotice(tips);
ShuttleVoiceManager.INSTANCE.showLeafTime(tips);
}
Runnable tip1Runnable = new Runnable() {
@@ -1059,7 +1057,7 @@ public class OrderModel {
clearBusStationDatas();
queryBusRoutes();// 重新获取任务
removeTipRunnables();
VoiceManager.INSTANCE.endOrderBus();
ShuttleVoiceManager.INSTANCE.endOrderBus();
sendEndTaskToClient();
}
}

View File

@@ -18,6 +18,7 @@ import com.mogo.eagle.core.utilcode.util.GsonUtils
import com.mogo.och.bus.bean.WriteOffCountResponse
import com.mogo.och.bus.bean.WriteOffPassenger
import com.mogo.och.bus.net.OrderServiceManager
import com.mogo.och.bus.util.ShuttleVoiceManager
import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg
import com.mogo.och.common.module.bean.dpmsg.DPMsgType
import com.mogo.och.common.module.bean.dpmsg.WriteOffDevicesMsg
@@ -27,7 +28,6 @@ import com.mogo.och.common.module.biz.constant.OchCommonConst
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
import com.mogo.och.common.module.manager.loopmanager.BizLoopManager
import com.mogo.och.common.module.manager.loopmanager.LoopInfo
import com.mogo.och.common.module.voice.VoiceNotice.showNotice
import io.reactivex.Observable
import io.reactivex.ObservableEmitter
import io.reactivex.ObservableOnSubscribe
@@ -137,7 +137,7 @@ object TicketModel : IReceivedMsgListener, IMogoOnMessageListener<WriteOffPassen
// writeOffMsg.orderNo?:""
// )
} else { // 核验失败
showNotice("验票失败,${writeOffMsg.failedReason ?: ""}", AIAssist.LEVEL3)
ShuttleVoiceManager.writeOffFaile("验票失败,${writeOffMsg.failedReason ?: ""}")
saveMsgBox(
MsgBoxBean(
MsgBoxType.V2X, V2XMsg(
@@ -187,12 +187,11 @@ object TicketModel : IReceivedMsgListener, IMogoOnMessageListener<WriteOffPassen
private fun playPassenger(ticketSize: Int,phone:String,ticketName:String,orderNo:String) {
if (ticketSize > 1) { //多人播报 "x人" ---》x人核验通过
showNotice(ticketSize.toString() + "人核验通过", AIAssist.LEVEL3)
OrderModel.getInstance().sendWriteOffNumToClient(ticketSize.toString() + "人核验通过")
} else { //是 1 播放 "滴" 2022.11.09 改为: "核验通过"
showNotice("核验通过", AIAssist.LEVEL3)
OrderModel.getInstance().sendWriteOffNumToClient("核验通过")
}
ShuttleVoiceManager.writeOffCount(ticketSize)
var tempPhone = phone
if (tempPhone.length > 8) {

View File

@@ -0,0 +1,96 @@
package com.mogo.och.bus.util
import com.mogo.commons.AbsMogoApplication
import com.mogo.commons.voice.AIAssist
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.och.bus.R
import com.mogo.och.common.module.voice.VoiceNotice
import com.mogo.tts.base.LangTtsEntity
import com.mogo.tts.base.LanguageType
import java.util.ArrayList
object ShuttleVoiceManager {
fun arrivedStationBus(siteNameCN: String?, siteNameKR: String?) {
if (AppIdentityModeUtils.isM2(FunctionBuildConfig.appIdentityMode)) {
return
}
val context = AbsMogoApplication.getApp()
val list: MutableList<LangTtsEntity> = ArrayList()
siteNameCN?.let {
val chineseTTS = LangTtsEntity(
context.getString(R.string.bus_arrived_station_tip, it),
LanguageType.CHINESE
)
val engTTS = LangTtsEntity(
context.getString(R.string.bus_arrived_station_english_tip, it),
LanguageType.CHINESE
)
val koreanTTS = LangTtsEntity(
context.getString(R.string.bus_arrived_station_korean_tip, siteNameKR?:it),
LanguageType.KOREAN
)
list.add(chineseTTS)
list.add(engTTS)
list.add(koreanTTS)
}
VoiceNotice.showNotice(list, AIAssist.LEVEL1,null)
}
fun leaveStationBus(siteNameCN: String?, siteNameKR: String?) {
val list: MutableList<LangTtsEntity> = ArrayList()
val context = AbsMogoApplication.getApp()
siteNameCN?.let {
val chineseTTS = LangTtsEntity(
context.getString(R.string.bus_leave_station_tip, it),
LanguageType.CHINESE
)
val engTTS = LangTtsEntity(
context.getString(R.string.bus_leave_station_english_tip, it),
LanguageType.CHINESE
)
list.add(chineseTTS)
list.add(engTTS)
val koreanTTS = LangTtsEntity(
context.getString(R.string.bus_leave_station_korean_tip, siteNameKR ?: it),
LanguageType.KOREAN
)
list.add(koreanTTS)
}
VoiceNotice.showNotice(list, AIAssist.LEVEL1,null)
}
fun endOrderBus() {
val context = AbsMogoApplication.getApp()
val list: MutableList<LangTtsEntity> = ArrayList()
val chineseTTS = LangTtsEntity(context.getString(R.string.bus_end_task_tip), LanguageType.CHINESE)
val engTTS = LangTtsEntity(context.getString(R.string.bus_end_task_english_tip), LanguageType.ENGLISH)
val koreanTTS = LangTtsEntity(context.getString(R.string.bus_end_task_korean_tip), LanguageType.KOREAN)
list.add(chineseTTS)
list.add(engTTS)
list.add(koreanTTS)
VoiceNotice.showNotice(list, AIAssist.LEVEL0,null)
}
fun writeOffCount(successNum:Int){
if(successNum<=1){
VoiceNotice.showNotice("核验通过", AIAssist.LEVEL3);
}else{
VoiceNotice.showNotice("$successNum 人核验通过", AIAssist.LEVEL3)
}
}
// 距离发车还有1分钟
fun showLeafTime(tips: String) {
//语音提示
VoiceNotice.showNotice(tips)
}
fun writeOffFaile(reaseon:String) {
VoiceNotice.showNotice("验票失败,${reaseon}", AIAssist.LEVEL3)
}
}

View File

@@ -43,6 +43,12 @@
<string name="shuttle_write_off_count_default">本站核销成功0人</string>
<string name="bus_before_tips_s">距离发车时间还有%1$s分钟</string>
<string name="bus_pingxing_driver">平行驾驶</string>
<!-- region tts -->
<string name="bus_arrived_station_tip">已到达%1$s带好随身物品下车请注意安全。</string>
<string name="bus_arrived_station_english_tip">We are arriving at %1$s get off with your belongings</string>
@@ -57,8 +63,4 @@
<string name="bus_end_task_korean_tip">자율주행 버스를 체험해 주셔서 감사합니다. 다음에 또 뵙겠습니다</string>
<!-- endregion -->
<string name="bus_before_tips_s">距离发车时间还有%1$s分钟</string>
<string name="bus_pingxing_driver">平行驾驶</string>
</resources>