TTS文本过滤

This commit is contained in:
Sakura-RanChen
2026-01-07 17:38:38 +08:00
parent a731c1d01f
commit 24519a2732
6 changed files with 44 additions and 35 deletions
@@ -185,20 +185,21 @@ class TTSProvider(TTSProviderBase):
# 过滤Markdown # 过滤Markdown
filtered_text = MarkdownCleaner.clean_markdown(text) filtered_text = MarkdownCleaner.clean_markdown(text)
# 发送continue-task消息 if filtered_text:
continue_task_message = { # 发送continue-task消息
"header": { continue_task_message = {
"action": "continue-task", "header": {
"task_id": self.conn.sentence_id, "action": "continue-task",
"streaming": "duplex", "task_id": self.conn.sentence_id,
}, "streaming": "duplex",
"payload": {"input": {"text": filtered_text}}, },
} "payload": {"input": {"text": filtered_text}},
}
await self.ws.send(json.dumps(continue_task_message))
self.last_active_time = time.time()
logger.bind(tag=TAG).debug(f"已发送文本: {filtered_text}")
await self.ws.send(json.dumps(continue_task_message))
self.last_active_time = time.time()
logger.bind(tag=TAG).debug(f"已发送文本: {filtered_text}")
return
except Exception as e: except Exception as e:
logger.bind(tag=TAG).error(f"发送TTS文本失败: {str(e)}") logger.bind(tag=TAG).error(f"发送TTS文本失败: {str(e)}")
if self.ws: if self.ws:
@@ -288,18 +288,19 @@ class TTSProvider(TTSProviderBase):
logger.bind(tag=TAG).warning(f"WebSocket连接不存在,终止发送文本") logger.bind(tag=TAG).warning(f"WebSocket连接不存在,终止发送文本")
return return
filtered_text = MarkdownCleaner.clean_markdown(text) filtered_text = MarkdownCleaner.clean_markdown(text)
run_request = { if filtered_text:
"header": { run_request = {
"message_id": uuid.uuid4().hex, "header": {
"task_id": self.task_id, "message_id": uuid.uuid4().hex,
"namespace": "FlowingSpeechSynthesizer", "task_id": self.task_id,
"name": "RunSynthesis", "namespace": "FlowingSpeechSynthesizer",
"appkey": self.appkey, "name": "RunSynthesis",
}, "appkey": self.appkey,
"payload": {"text": filtered_text}, },
} "payload": {"text": filtered_text},
await self.ws.send(json.dumps(run_request)) }
self.last_active_time = time.time() await self.ws.send(json.dumps(run_request))
self.last_active_time = time.time()
return return
except Exception as e: except Exception as e:
@@ -4,15 +4,15 @@ import json
import queue import queue
import asyncio import asyncio
import traceback import traceback
from typing import Callable, Any
import websockets import websockets
from typing import Callable, Any
from core.utils.tts import MarkdownCleaner from core.utils.tts import MarkdownCleaner
from config.logger import setup_logging from config.logger import setup_logging
from core.utils import opus_encoder_utils from core.utils import opus_encoder_utils
from core.utils.util import check_model_key from core.utils.util import check_model_key
from core.providers.tts.base import TTSProviderBase from core.providers.tts.base import TTSProviderBase
from core.providers.tts.dto.dto import SentenceType, ContentType, InterfaceType from core.providers.tts.dto.dto import SentenceType, ContentType, InterfaceType
from asyncio import Task
TAG = __name__ TAG = __name__
@@ -340,8 +340,9 @@ class TTSProvider(TTSProviderBase):
# 过滤Markdown # 过滤Markdown
filtered_text = MarkdownCleaner.clean_markdown(text) filtered_text = MarkdownCleaner.clean_markdown(text)
# 发送文本 if filtered_text:
await self.send_text(self.voice, filtered_text, self.conn.sentence_id) # 发送文本
await self.send_text(self.voice, filtered_text, self.conn.sentence_id)
return return
except Exception as e: except Exception as e:
logger.bind(tag=TAG).error(f"发送TTS文本失败: {str(e)}") logger.bind(tag=TAG).error(f"发送TTS文本失败: {str(e)}")
@@ -237,10 +237,10 @@ class TTSProvider(TTSProviderBase):
return return
filtered_text = MarkdownCleaner.clean_markdown(text) filtered_text = MarkdownCleaner.clean_markdown(text)
if filtered_text:
# 发送文本合成请求 # 发送文本合成请求
run_request = self._build_base_request(status=1,text=filtered_text) run_request = self._build_base_request(status=1,text=filtered_text)
await self.ws.send(json.dumps(run_request)) await self.ws.send(json.dumps(run_request))
return return
except Exception as e: except Exception as e:
+1 -1
View File
@@ -2,7 +2,7 @@ import json
TAG = __name__ TAG = __name__
EMOJI_MAP = { EMOJI_MAP = {
"😂": "laughing", "😂": "funny",
"😭": "crying", "😭": "crying",
"😠": "angry", "😠": "angry",
"😔": "sad", "😔": "sad",
+7 -1
View File
@@ -1,9 +1,11 @@
import os import os
import re import re
import sys import sys
from config.logger import setup_logging
import importlib import importlib
from config.logger import setup_logging
from core.utils.textUtils import check_emoji
logger = setup_logging() logger = setup_logging()
punctuation_set = { punctuation_set = {
@@ -135,4 +137,8 @@ class MarkdownCleaner:
for regex, replacement in MarkdownCleaner.REGEXES: for regex, replacement in MarkdownCleaner.REGEXES:
text = regex.sub(replacement, text) text = regex.sub(replacement, text)
# 去除emoji表情
text = check_emoji(text)
return text.strip() return text.strip()