|
|
|
|
@ -62,7 +62,7 @@ class AppGeneratorTTSPublisher:
|
|
|
|
|
self.msg_text = ""
|
|
|
|
|
self._audio_queue: queue.Queue[AudioTrunk] = queue.Queue()
|
|
|
|
|
self._msg_queue: queue.Queue[WorkflowQueueMessage | MessageQueueMessage | None] = queue.Queue()
|
|
|
|
|
self.match = re.compile(r"[。.!?\n]")
|
|
|
|
|
self.match = re.compile(r"[。.!?]")
|
|
|
|
|
self.model_manager = ModelManager()
|
|
|
|
|
self.model_instance = self.model_manager.get_default_model_instance(
|
|
|
|
|
tenant_id=self.tenant_id, model_type=ModelType.TTS
|
|
|
|
|
@ -73,7 +73,6 @@ class AppGeneratorTTSPublisher:
|
|
|
|
|
if not voice or voice not in values:
|
|
|
|
|
self.voice = self.voices[0].get("value")
|
|
|
|
|
self.MAX_SENTENCE = 2
|
|
|
|
|
self.MAX_CHARS_WITHOUT_DELIMITER = 100
|
|
|
|
|
self._last_audio_event: Optional[AudioTrunk] = None
|
|
|
|
|
# FIXME better way to handle this threading.start
|
|
|
|
|
threading.Thread(target=self._runtime).start()
|
|
|
|
|
@ -114,23 +113,13 @@ class AppGeneratorTTSPublisher:
|
|
|
|
|
self.msg_text += message.event.outputs.get("output", "")
|
|
|
|
|
self.last_message = message
|
|
|
|
|
sentence_arr, text_tmp = self._extract_sentence(self.msg_text)
|
|
|
|
|
|
|
|
|
|
if len(sentence_arr) >= min(self.MAX_SENTENCE, 7) or (
|
|
|
|
|
len(sentence_arr) == 0 and text_tmp and len(text_tmp) >= self.MAX_CHARS_WITHOUT_DELIMITER
|
|
|
|
|
):
|
|
|
|
|
if len(sentence_arr) >= min(self.MAX_SENTENCE, 7):
|
|
|
|
|
self.MAX_SENTENCE += 1
|
|
|
|
|
|
|
|
|
|
if sentence_arr:
|
|
|
|
|
text_content = "".join(sentence_arr)
|
|
|
|
|
else:
|
|
|
|
|
text_content = text_tmp[: self.MAX_CHARS_WITHOUT_DELIMITER]
|
|
|
|
|
text_tmp = text_tmp[self.MAX_CHARS_WITHOUT_DELIMITER :]
|
|
|
|
|
|
|
|
|
|
text_content = "".join(sentence_arr)
|
|
|
|
|
futures_result = self.executor.submit(
|
|
|
|
|
_invoice_tts, text_content, self.model_instance, self.tenant_id, self.voice
|
|
|
|
|
)
|
|
|
|
|
future_queue.put(futures_result)
|
|
|
|
|
|
|
|
|
|
if text_tmp:
|
|
|
|
|
self.msg_text = text_tmp
|
|
|
|
|
else:
|
|
|
|
|
@ -162,8 +151,6 @@ class AppGeneratorTTSPublisher:
|
|
|
|
|
result = []
|
|
|
|
|
for i in tx:
|
|
|
|
|
end = i.regs[0][1]
|
|
|
|
|
sentence = org_text[start:end].strip()
|
|
|
|
|
if sentence:
|
|
|
|
|
result.append(sentence)
|
|
|
|
|
result.append(org_text[start:end])
|
|
|
|
|
start = end
|
|
|
|
|
return result, org_text[start:]
|
|
|
|
|
|