|
@@ -252,6 +252,7 @@ public class RobotChat extends RobotBase {
|
|
|
String eventSubClass = headers.get("Event-Subclass");
|
|
String eventSubClass = headers.get("Event-Subclass");
|
|
|
String playbackFilePath = headers.get("Playback-File-Path");
|
|
String playbackFilePath = headers.get("Playback-File-Path");
|
|
|
String detail = headers.get("Ecc365-Event-Detail");
|
|
String detail = headers.get("Ecc365-Event-Detail");
|
|
|
|
|
+ boolean txTts1Provider = TtsProvider.TX_TTS1.equalsIgnoreCase(chatRobot.getAccount().voiceSource);
|
|
|
logger.info("{} Event-Name:{} ", getTraceId(), eventName);
|
|
logger.info("{} Event-Name:{} ", getTraceId(), eventName);
|
|
|
if(EventNames.PLAYBACK_START.equalsIgnoreCase(eventName)){
|
|
if(EventNames.PLAYBACK_START.equalsIgnoreCase(eventName)){
|
|
|
|
|
|
|
@@ -295,7 +296,9 @@ public class RobotChat extends RobotBase {
|
|
|
|
|
|
|
|
if(EventNames.PLAYBACK_STOP.equalsIgnoreCase(detail)) {
|
|
if(EventNames.PLAYBACK_STOP.equalsIgnoreCase(detail)) {
|
|
|
logger.info("{} ************ streaming tts playback finished.", getTraceId());
|
|
logger.info("{} ************ streaming tts playback finished.", getTraceId());
|
|
|
- chatRobot.setTtsChannelState(TtsChannelState.CLOSED);
|
|
|
|
|
|
|
+ if (!txTts1Provider) {
|
|
|
|
|
+ chatRobot.setTtsChannelState(TtsChannelState.CLOSED);
|
|
|
|
|
+ }
|
|
|
recvPlayBackEndEvent = true;
|
|
recvPlayBackEndEvent = true;
|
|
|
playbackEndTime = System.currentTimeMillis();
|
|
playbackEndTime = System.currentTimeMillis();
|
|
|
releasePlayBackFinishedSignal();
|
|
releasePlayBackFinishedSignal();
|
|
@@ -401,18 +404,21 @@ public class RobotChat extends RobotBase {
|
|
|
"TtsEvent".equalsIgnoreCase(eventSubClass)
|
|
"TtsEvent".equalsIgnoreCase(eventSubClass)
|
|
|
)) {
|
|
)) {
|
|
|
String event = headers.get("Tts-Event-Detail");
|
|
String event = headers.get("Tts-Event-Detail");
|
|
|
|
|
+ String errorDetails = headers.get("Error-Details");
|
|
|
// #region debug-point vt-tts-custom-event-detail
|
|
// #region debug-point vt-tts-custom-event-detail
|
|
|
logger.info("{} dbg_vt_tts_custom eventSubClass={}, event={}, errorDetails={}, recvPlayBackEndEvent={}, ttsChannelClosed={}, inSpeaking={}",
|
|
logger.info("{} dbg_vt_tts_custom eventSubClass={}, event={}, errorDetails={}, recvPlayBackEndEvent={}, ttsChannelClosed={}, inSpeaking={}",
|
|
|
getTraceId(),
|
|
getTraceId(),
|
|
|
eventSubClass,
|
|
eventSubClass,
|
|
|
event,
|
|
event,
|
|
|
- headers.get("Error-Details"),
|
|
|
|
|
|
|
+ errorDetails,
|
|
|
recvPlayBackEndEvent,
|
|
recvPlayBackEndEvent,
|
|
|
ttsChannelClosed,
|
|
ttsChannelClosed,
|
|
|
interactiveParam.checkInSpeaking());
|
|
interactiveParam.checkInSpeaking());
|
|
|
// #endregion
|
|
// #endregion
|
|
|
if("Speech-Closed".equalsIgnoreCase(event)){
|
|
if("Speech-Closed".equalsIgnoreCase(event)){
|
|
|
- chatRobot.setTtsChannelState(TtsChannelState.CLOSED);
|
|
|
|
|
|
|
+ if (!txTts1Provider || !"round-complete-keep-ws".equalsIgnoreCase(errorDetails)) {
|
|
|
|
|
+ chatRobot.setTtsChannelState(TtsChannelState.CLOSED);
|
|
|
|
|
+ }
|
|
|
logger.info("{} TtsChannelClosed = true.", getTraceId());
|
|
logger.info("{} TtsChannelClosed = true.", getTraceId());
|
|
|
ttsChannelClosed = true;
|
|
ttsChannelClosed = true;
|
|
|
recvPlayBackEndEvent = true;
|
|
recvPlayBackEndEvent = true;
|