human/tts/tts_base.py
2024-10-10 19:01:13 +08:00

41 lines
924 B
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):
self._sample_rate = 16000
self._message_queue = AsyncTaskQueue()
self._message_queue.start_worker()
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()