41 lines
924 B
Python
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()
|