diff --git a/.idea/misc.xml b/.idea/misc.xml
index 2dc54c489f..707ee6e613 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,6 +1,6 @@
* 语音助手通信助手 */ -public class AIAssist implements VoiceClient.VoiceCmdCallBack { +public class AIAssist implements VoiceClient.VoiceCmdCallBack , OnTtsListener { private static final String TAG = "AIAssist"; private static volatile AIAssist sInstance; private String mLastQAndASpeakText; private boolean mHasFlush = false; + private boolean mInitReady = false; public static AIAssist getInstance( Context context ) { if ( sInstance == null ) { @@ -56,6 +61,7 @@ public class AIAssist implements VoiceClient.VoiceCmdCallBack { } private final VoiceClient mVoiceClient; + private MogoVoiceManager mogoVoiceManager; // 免唤醒指令 private Map< String, List< IMogoVoiceCmdCallBack > > mCmdMap = new HashMap<>(); // 问答指令 @@ -70,7 +76,7 @@ public class AIAssist implements VoiceClient.VoiceCmdCallBack { mVoiceClient = new VoiceClient( context.getApplicationContext() ); mVoiceClient.setCallBack( this ); initFlushStatus( context ); - + initSpeech( context ); Logger.w( TAG, "voice is ready = %s", mHasFlush ); } @@ -78,6 +84,24 @@ public class AIAssist implements VoiceClient.VoiceCmdCallBack { mHasFlush = isVoiceServiceReady( context ); } + /** + * 初始化 + */ + private void initSpeech( Context context ){ + mogoVoiceManager = MogoVoiceManagerImpl.getInstance(); + mogoVoiceManager.init(context, new OnConnStatusListener() { + @Override + public void onSuccess() { + mInitReady = true; + } + + @Override + public void onFailed() { + + } + }); + } + /** * 是否语音注册成功 * @return @@ -185,7 +209,6 @@ public class AIAssist implements VoiceClient.VoiceCmdCallBack { } } - /** * 语音播报 * @@ -402,4 +425,36 @@ public class AIAssist implements VoiceClient.VoiceCmdCallBack { return false; } + public void speakTTSAndDuck(String text ){ + speakTTSAndDuck(text,null); + } + + public void speakTTSAndDuck( String text, IMogoVoiceCmdCallBack callBack ){ + try { + if( mInitReady ){ + mSpeakVoiceMap.put( text, callBack ); + mogoVoiceManager.toSpeak( text, -3, this); + } + } catch ( Exception e ) { + } + } + + @Override + public void onTtsStart(String ext) { + + } + + @Override + public void onTtsFinish(String speakText) { + IMogoVoiceCmdCallBack callBack = mSpeakVoiceMap.remove( speakText ); + if ( callBack != null ) { + callBack.onSpeakEnd( speakText ); + } + } + + @Override + public void onTtsError(String ext) { + + } + } diff --git a/gradle.properties b/gradle.properties index 65b4818a3b..f8d5fe5ffb 100644 --- a/gradle.properties +++ b/gradle.properties @@ -27,29 +27,30 @@ PASSWORD=xintai2018 RELEASE=false # 模块版本 ## 工程内模块 -MOGO_COMMONS_VERSION=1.0.3.3 -MOGO_UTILS_VERSION=1.0.3.3 -MAP_AMAP_VERSION=1.0.3.4 -MOGO_MAP_VERSION=1.0.3.4 -MOGO_MAP_API_VERSION=1.0.3.4 -MOGO_SERVICE_VERSION=1.0.3.5 -MOGO_SERVICE_API_VERSION=1.0.3.5 -MOGO_CONNECTION_VERSION=1.0.3.4 -MOGO_MODULE_APPS_VERSION=1.0.3.4 -MOGO_MODULE_NAVI_VERSION=1.0.3.4 -MOGO_MODULE_SHARE_VERSION=1.0.3.4 -MOGO_MODULE_COMMON_VERSION=1.0.3.4 -MOGO_MODULE_MAIN_VERSION=1.0.3.4 -MOGO_MODULE_MAP_VERSION=1.0.3.4 -MOGO_MODULE_SERVICE_VERSION=1.0.3.4 -MOGO_MODULE_EXTENSIONS_VERSION=1.0.3.5 -MOGO_MODULE_SEARCH_VERSION=1.0.3.4 -MOGO_MODULE_BACK_VERSION=1.0.3.4 -MOGO_MODULE_GPS_SIMULATOR_VERSION=1.0.3.4 -MOGO_MODULE_GPS_SIMULATOR_DEBUG_VERSION=1.0.3.4 -MOGO_MODULE_GPS_SIMULATOR_NOOP_VERSION=1.0.3.4 -MOGO_MODULE_AUTHORIZE_VERSION=1.0.3.4 -MOGO_MODULE_GUIDE_VERSION=1.0.3.4 +MOGO_COMMONS_VERSION=1.0.3.8 +MOGO_UTILS_VERSION=1.0.3.8 +MAP_AMAP_VERSION=1.0.3.8 +MOGO_MAP_VERSION=1.0.3.8 +MOGO_MAP_API_VERSION=1.0.3.8 +MOGO_SERVICE_VERSION=1.0.3.8 +MOGO_SERVICE_API_VERSION=1.0.3.8 +MOGO_CONNECTION_VERSION=1.0.3.8 +MOGO_MODULE_APPS_VERSION=1.0.3.8 +MOGO_MODULE_NAVI_VERSION=1.0.3.8 +MOGO_MODULE_SHARE_VERSION=1.0.3.8 +MOGO_MODULE_COMMON_VERSION=1.0.3.8 +MOGO_MODULE_MAIN_VERSION=1.0.3.8 +MOGO_MODULE_MAP_VERSION=1.0.3.8 +MOGO_MODULE_SERVICE_VERSION=1.0.3.8 +MOGO_MODULE_EXTENSIONS_VERSION=1.0.3.8 +MOGO_MODULE_SEARCH_VERSION=1.0.3.8 +MOGO_MODULE_BACK_VERSION=1.0.3.8 +MOGO_MODULE_GPS_SIMULATOR_VERSION=1.0.3.8 +MOGO_MODULE_GPS_SIMULATOR_DEBUG_VERSION=1.0.3.8 +MOGO_MODULE_GPS_SIMULATOR_NOOP_VERSION=1.0.3.8 +MOGO_MODULE_AUTHORIZE_VERSION=1.0.3.8 +MOGO_MODULE_GUIDE_VERSION=1.0.3.8 + ## 工程外部模块 # 探路 @@ -65,13 +66,12 @@ MOGO_MODULE_GUIDESHOW_PROVIDER_VERSION=1.0.2-SNAPSHOT # 在线车辆F MOGO_MODULE_ONLINECAR_VERSION=1.0.3.1 # v2x -MOGO_MODULE_V2X_VERSION=1.0.3.2 +MOGO_MODULE_V2X_VERSION=1.0.3.3-SNAPSHOT # 媒体卡片 -MOGO_MODULE_MEDIA_VERSION=1.0.4 +MOGO_MODULE_MEDIA_VERSION=1.0.4.1 # 推送 MOGO_MODULE_PUSH_VERSION=1.0.1 # 广告资源位 MOGO_MODULE_AD_CARD_VERSION=1.0.1 # 新鲜事 MOGO_MODULE_FRESH_NEWS_VERSION=1.0.3.2 - diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/AMapNaviListenerAdapter.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/AMapNaviListenerAdapter.java index b851ca258c..5e1eff04c3 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/AMapNaviListenerAdapter.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/AMapNaviListenerAdapter.java @@ -15,6 +15,8 @@ import com.amap.api.navi.model.AimLessModeCongestionInfo; import com.amap.api.navi.model.AimLessModeStat; import com.amap.api.navi.model.NaviInfo; import com.autonavi.tbt.TrafficFacilityInfo; +import com.mogo.commons.AbsMogoApplication; +import com.mogo.commons.voice.AIAssist; import com.mogo.map.MogoLatLng; import com.mogo.utils.logger.Logger; import java.util.List; @@ -64,6 +66,7 @@ public abstract class AMapNaviListenerAdapter implements AMapNaviListener { public void onGetNavigationText( String s ) { mLastSpeakWord = s; Logger.d( TAG, s ); + AIAssist.getInstance(AbsMogoApplication.getApp()).speakTTSAndDuck(s); } @Override diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java index 431b4be417..e9a150116b 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java @@ -78,7 +78,7 @@ public class NaviClient implements IMogoNavi { mContext = context; mAMapNavi = AMapNavi.getInstance( context ); mAMapNavi.setEmulatorNaviSpeed( 120 ); - mAMapNavi.setUseInnerVoice( true, true ); + mAMapNavi.setUseInnerVoice( false, true ); mAMapNaviListener = new NaviListenerAdapter( context, mAMapNavi, this ); mAimlessModeListener = new AimlessModeListenerAdapter() { };