From a338d92bc854d8fbc5dafce2aadea39f224a4a7a Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Mon, 20 May 2024 20:05:21 +0800 Subject: [PATCH 1/2] =?UTF-8?q?[6.4.0][Feat]=E6=96=B0=E5=A2=9E=E8=AF=AD?= =?UTF-8?q?=E9=9F=B3=E6=89=93=E6=96=AD=E7=9A=84=E5=9B=9E=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/mogo/tts/base/IMogoTTSCallback.java | 3 +++ .../src/main/java/com/mogo/tts/iflytek/IFlyTekTts.kt | 2 +- tts/tts-pad/src/main/java/com/mogo/tts/pad/PadTTS.java | 10 ++++++++-- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/tts/tts-base/src/main/java/com/mogo/tts/base/IMogoTTSCallback.java b/tts/tts-base/src/main/java/com/mogo/tts/base/IMogoTTSCallback.java index 7f6d964542..d42ba17133 100644 --- a/tts/tts-base/src/main/java/com/mogo/tts/base/IMogoTTSCallback.java +++ b/tts/tts-base/src/main/java/com/mogo/tts/base/IMogoTTSCallback.java @@ -74,6 +74,9 @@ interface IMogoTTSCallback { default void onSpeakEnd( String speakText ) { } + default void onStopTts( String speakText ) { + } + default void onSpeakError( String speakText, String errorMsg) { } diff --git a/tts/tts-iflytek/src/main/java/com/mogo/tts/iflytek/IFlyTekTts.kt b/tts/tts-iflytek/src/main/java/com/mogo/tts/iflytek/IFlyTekTts.kt index 1897430cd1..43d7b0e2f7 100644 --- a/tts/tts-iflytek/src/main/java/com/mogo/tts/iflytek/IFlyTekTts.kt +++ b/tts/tts-iflytek/src/main/java/com/mogo/tts/iflytek/IFlyTekTts.kt @@ -156,7 +156,7 @@ class IFlyTekTts : IMogoTTS, InitListener { curTtsEntity?.let { val string = it.toString() if (speakVoiceMap.containsKey(string)) { - speakVoiceMap.remove(string) + speakVoiceMap.remove(string)?.onStopTts(string) } curTtsEntity = null } diff --git a/tts/tts-pad/src/main/java/com/mogo/tts/pad/PadTTS.java b/tts/tts-pad/src/main/java/com/mogo/tts/pad/PadTTS.java index 79987d66f3..b8cb7fad71 100644 --- a/tts/tts-pad/src/main/java/com/mogo/tts/pad/PadTTS.java +++ b/tts/tts-pad/src/main/java/com/mogo/tts/pad/PadTTS.java @@ -357,7 +357,10 @@ public class PadTTS implements IMogoTTS, VoiceClient.VoiceCmdCallBack { public void stopSpeakTts(String text) { if (mEngine != null && mHasAuth) { - mSpeakVoiceMap.remove(text); + IMogoTTSCallback callBack = mSpeakVoiceMap.remove(text); + if (callBack != null) { + callBack.onStopTts(curTtsContent); + } curTtsContent = ""; curTtsLevel = -1; mEngine.stop(); @@ -366,7 +369,10 @@ public class PadTTS implements IMogoTTS, VoiceClient.VoiceCmdCallBack { public void stopTts() { if (mEngine != null && mHasAuth) { - mSpeakVoiceMap.remove(curTtsContent); + IMogoTTSCallback callBack = mSpeakVoiceMap.remove(curTtsContent); + if (callBack != null) { + callBack.onStopTts(curTtsContent); + } // tts过程中调用stop不会有回调事件 curTtsContent = ""; curTtsLevel = -1; From adaa80e917e05648ebdf70e2c051dd509ad5b5f6 Mon Sep 17 00:00:00 2001 From: renwj Date: Tue, 21 May 2024 10:16:23 +0800 Subject: [PATCH 2/2] =?UTF-8?q?[6.4.0-hotfix][v2n]=20=E8=AF=AD=E9=9F=B3?= =?UTF-8?q?=E6=92=AD=E6=8A=A5=E6=B7=BB=E5=8A=A0=E6=89=93=E6=96=AD=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E7=9B=91=E5=90=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../function/chat/facade/voice/VoiceControlFacade.kt | 11 +++++++++++ .../eagle/core/function/hmi/ui/MoGoHmiProvider.kt | 5 +++++ 2 files changed, 16 insertions(+) diff --git a/core/function-impl/mogo-core-function-chat/src/main/java/com/mogo/eagle/core/function/chat/facade/voice/VoiceControlFacade.kt b/core/function-impl/mogo-core-function-chat/src/main/java/com/mogo/eagle/core/function/chat/facade/voice/VoiceControlFacade.kt index 1fb5dfd91f..3d05d2fa71 100644 --- a/core/function-impl/mogo-core-function-chat/src/main/java/com/mogo/eagle/core/function/chat/facade/voice/VoiceControlFacade.kt +++ b/core/function-impl/mogo-core-function-chat/src/main/java/com/mogo/eagle/core/function/chat/facade/voice/VoiceControlFacade.kt @@ -114,6 +114,17 @@ object VoiceControlFacade: IMoGoVoiceControlFacade, IMogoVoiceCmdCallBack, IMogo } } + override fun onStopTts(speakText: String?) { + super.onStopTts(speakText) + listeners + .filter { + it.get() != null + } + .forEach { + it.get()?.onSpeakEnd() + } + } + override fun register() { if (hasRegister.get()) { return diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt index 3c01dda4d9..cda2a7f5bf 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt @@ -167,6 +167,11 @@ class MoGoHmiProvider : IMoGoHmiProvider { super.onSpeakError(speakText, errorMsg) isPlayingTts.set(false) } + + override fun onStopTts(speakText: String?) { + super.onStopTts(speakText) + isPlayingTts.set(false) + } }) isPlayingTts.set(true) }