2024-10-10 11:01:13 +00:00
|
|
|
#encoding = utf8
|
|
|
|
|
|
|
|
import logging
|
|
|
|
import time
|
|
|
|
|
|
|
|
from nlp import NLPCallback
|
|
|
|
from utils import AsyncTaskQueue
|
|
|
|
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
|
|
|
|
|
|
class TTSBase(NLPCallback):
|
2024-10-11 12:09:54 +00:00
|
|
|
def __init__(self, handle):
|
|
|
|
self._handle = handle
|
2024-10-10 11:01:13 +00:00
|
|
|
self._message_queue = AsyncTaskQueue()
|
|
|
|
self._message_queue.start_worker()
|
|
|
|
|
2024-10-11 12:09:54 +00:00
|
|
|
@property
|
|
|
|
def handle(self):
|
|
|
|
return self._handle
|
|
|
|
|
|
|
|
@handle.setter
|
|
|
|
def handle(self, value):
|
|
|
|
self._handle = value
|
|
|
|
|
2024-10-10 11:01:13 +00:00
|
|
|
async def _request(self, txt: str):
|
|
|
|
print('_request:', txt)
|
|
|
|
t = time.time()
|
|
|
|
await self._on_request(txt)
|
|
|
|
print(f'-------tts time:{time.time() - t:.4f}s')
|
|
|
|
await self._on_handle()
|
|
|
|
|
|
|
|
async def _on_request(self, text: str):
|
|
|
|
pass
|
|
|
|
|
|
|
|
async def _on_handle(self):
|
|
|
|
pass
|
|
|
|
|
|
|
|
def on_message(self, txt: str):
|
|
|
|
self.message(txt)
|
|
|
|
|
|
|
|
def message(self, txt):
|
|
|
|
logger.info(f'message:{txt}')
|
|
|
|
print(f'message:{txt}')
|
|
|
|
self._message_queue.add_task(self._request(txt))
|
|
|
|
|
|
|
|
def stop(self):
|
|
|
|
self._message_queue.stop()
|