human/tts/tts_base.py
2024-10-11 20:09:54 +08:00

49 lines
1.0 KiB
Python

#encoding = utf8
import logging
import time
from nlp import NLPCallback
from utils import AsyncTaskQueue
logger = logging.getLogger(__name__)
class TTSBase(NLPCallback):
def __init__(self, handle):
self._handle = handle
self._message_queue = AsyncTaskQueue()
self._message_queue.start_worker()
@property
def handle(self):
return self._handle
@handle.setter
def handle(self, value):
self._handle = value
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()