yzx пре 2 недеља
родитељ
комит
46451b986d
1 измењених фајлова са 20 додато и 3 уклоњено
  1. 20 3
      src/main/java/com/telerobot/fs/robot/AbstractChatRobot.java

+ 20 - 3
src/main/java/com/telerobot/fs/robot/AbstractChatRobot.java

@@ -160,14 +160,13 @@ public abstract class AbstractChatRobot implements IChatRobot {
 
     @Override
     public synchronized void flushTtsRequestQueue(){
-       if(TtsChannelState.OPENED.getCode().equals(ttsChannelState.getCode())) {
+       if (canFlushTtsRequestQueue()) {
            while (true) {
                String text = ttsRequestQueue.poll();
                if (StringUtils.isEmpty(text)) {
                    break;
                }
-               EslConnectionUtil.sendExecuteCommand(ttsProvider + "_resume", text, uuid);
-               logger.info("{} sendTtsRequest tts_resume text {}", uuid, text);
+               sendTtsResumeCommand(text);
            }
        }else{
            logger.error("{} execute flushTtsRequestQueue error, ttsChannelState is not opened.", uuid);
@@ -223,6 +222,9 @@ public abstract class AbstractChatRobot implements IChatRobot {
             flushTtsRequestQueue();
         }else  if(TtsChannelState.TRYING_OPEN.getCode().equals(ttsChannelState.getCode()))  {
             ttsRequestQueue.add(text);
+            if (isTxTts1Provider()) {
+                flushTtsRequestQueue();
+            }
         }
     }
 
@@ -281,10 +283,25 @@ public abstract class AbstractChatRobot implements IChatRobot {
             flushTtsRequestQueue();
         }else  if(TtsChannelState.TRYING_OPEN.getCode().equals(ttsChannelState.getCode()))  {
             ttsRequestQueue.add(cmd);
+            if (isTxTts1Provider()) {
+                flushTtsRequestQueue();
+            }
         }
 
     }
 
+    private boolean canFlushTtsRequestQueue() {
+        if (TtsChannelState.OPENED.getCode().equals(ttsChannelState.getCode())) {
+            return true;
+        }
+        return isTxTts1Provider() && TtsChannelState.TRYING_OPEN.getCode().equals(ttsChannelState.getCode());
+    }
+
+    private void sendTtsResumeCommand(String text) {
+        EslConnectionUtil.sendExecuteCommand(ttsProvider + "_resume", text, uuid);
+        logger.info("{} sendTtsRequest tts_resume text {}", uuid, text);
+    }
+
     protected  void addDialogue(String role, String content){
         // 避免重试时重复记录
         if (llmRoundMessages.size() > 0) {