|
|
@@ -108,6 +108,14 @@ public abstract class AbstractChatRobot implements IChatRobot {
|
|
|
return TtsProvider.TX_TTS1.equalsIgnoreCase(ttsProvider);
|
|
|
}
|
|
|
|
|
|
+ protected boolean isViiTorProvider() {
|
|
|
+ return TtsProvider.VIITOR.equalsIgnoreCase(ttsProvider);
|
|
|
+ }
|
|
|
+
|
|
|
+ protected boolean isResumeStreamingProvider() {
|
|
|
+ return isTxTts1Provider() || isViiTorProvider();
|
|
|
+ }
|
|
|
+
|
|
|
protected boolean isTxTts1FlushBoundary(String input) {
|
|
|
if (StringUtils.isEmpty(input)) {
|
|
|
return false;
|
|
|
@@ -133,7 +141,7 @@ public abstract class AbstractChatRobot implements IChatRobot {
|
|
|
if (isXfyunTtsProvider()) {
|
|
|
return false;
|
|
|
}
|
|
|
- if (isTxTts1Provider()) {
|
|
|
+ if (isResumeStreamingProvider()) {
|
|
|
return ttsTextLength >= 5 && isTxTts1FlushBoundary(speechContent);
|
|
|
}
|
|
|
return ttsTextLength >= 5 && checkPauseFlag(speechContent);
|
|
|
@@ -222,7 +230,7 @@ public abstract class AbstractChatRobot implements IChatRobot {
|
|
|
flushTtsRequestQueue();
|
|
|
}else if(TtsChannelState.TRYING_OPEN.getCode().equals(ttsChannelState.getCode())) {
|
|
|
ttsRequestQueue.add(text);
|
|
|
- if (isTxTts1Provider()) {
|
|
|
+ if (isResumeStreamingProvider()) {
|
|
|
flushTtsRequestQueue();
|
|
|
}
|
|
|
}
|
|
|
@@ -252,7 +260,8 @@ public abstract class AbstractChatRobot implements IChatRobot {
|
|
|
|
|
|
private String buildSpeakCommand(String text) {
|
|
|
if (!TtsProvider.XFYUN.equalsIgnoreCase(ttsProvider)
|
|
|
- && !TtsProvider.TX_TTS1.equalsIgnoreCase(ttsProvider)) {
|
|
|
+ && !TtsProvider.TX_TTS1.equalsIgnoreCase(ttsProvider)
|
|
|
+ && !TtsProvider.VIITOR.equalsIgnoreCase(ttsProvider)) {
|
|
|
return String.format("%s|%s|%s", ttsProvider, ttsVoiceName, text);
|
|
|
}
|
|
|
|
|
|
@@ -283,7 +292,7 @@ public abstract class AbstractChatRobot implements IChatRobot {
|
|
|
flushTtsRequestQueue();
|
|
|
}else if(TtsChannelState.TRYING_OPEN.getCode().equals(ttsChannelState.getCode())) {
|
|
|
ttsRequestQueue.add(cmd);
|
|
|
- if (isTxTts1Provider()) {
|
|
|
+ if (isResumeStreamingProvider()) {
|
|
|
flushTtsRequestQueue();
|
|
|
}
|
|
|
}
|
|
|
@@ -294,7 +303,7 @@ public abstract class AbstractChatRobot implements IChatRobot {
|
|
|
if (TtsChannelState.OPENED.getCode().equals(ttsChannelState.getCode())) {
|
|
|
return true;
|
|
|
}
|
|
|
- return isTxTts1Provider() && TtsChannelState.TRYING_OPEN.getCode().equals(ttsChannelState.getCode());
|
|
|
+ return isResumeStreamingProvider() && TtsChannelState.TRYING_OPEN.getCode().equals(ttsChannelState.getCode());
|
|
|
}
|
|
|
|
|
|
private void sendTtsResumeCommand(String text) {
|