modfiy abort
This commit is contained in:
parent
7406552289
commit
92b912e162
@ -34,6 +34,7 @@ class AsrBase:
|
|||||||
observer.process(message)
|
observer.process(message)
|
||||||
|
|
||||||
def _notify_complete(self, message: str):
|
def _notify_complete(self, message: str):
|
||||||
|
EventBus().post('clear_cache')
|
||||||
for observer in self._observers:
|
for observer in self._observers:
|
||||||
observer.completed(message)
|
observer.completed(message)
|
||||||
|
|
||||||
|
@ -22,6 +22,7 @@ class AudioInferenceHandler(AudioHandler):
|
|||||||
super().__init__(context, handler)
|
super().__init__(context, handler)
|
||||||
|
|
||||||
EventBus().register('stop', self._on_stop)
|
EventBus().register('stop', self._on_stop)
|
||||||
|
EventBus().register('clear_cache', self.on_clear_cache)
|
||||||
self._mal_queue = SyncQueue(1, "AudioInferenceHandler_Mel")
|
self._mal_queue = SyncQueue(1, "AudioInferenceHandler_Mel")
|
||||||
self._audio_queue = SyncQueue(context.batch_size * 2, "AudioInferenceHandler_Audio")
|
self._audio_queue = SyncQueue(context.batch_size * 2, "AudioInferenceHandler_Audio")
|
||||||
|
|
||||||
@ -35,10 +36,15 @@ class AudioInferenceHandler(AudioHandler):
|
|||||||
|
|
||||||
def __del__(self):
|
def __del__(self):
|
||||||
EventBus().unregister('stop', self._on_stop)
|
EventBus().unregister('stop', self._on_stop)
|
||||||
|
EventBus().unregister('clear_cache', self.on_clear_cache)
|
||||||
|
|
||||||
def _on_stop(self, *args, **kwargs):
|
def _on_stop(self, *args, **kwargs):
|
||||||
self.stop()
|
self.stop()
|
||||||
|
|
||||||
|
def on_clear_cache(self, *args, **kwargs):
|
||||||
|
self._mal_queue.clear()
|
||||||
|
self._audio_queue.clear()
|
||||||
|
|
||||||
def on_handle(self, stream, type_):
|
def on_handle(self, stream, type_):
|
||||||
if not self._is_running:
|
if not self._is_running:
|
||||||
return
|
return
|
||||||
|
@ -19,6 +19,7 @@ class AudioMalHandler(AudioHandler):
|
|||||||
super().__init__(context, handler)
|
super().__init__(context, handler)
|
||||||
|
|
||||||
EventBus().register('stop', self._on_stop)
|
EventBus().register('stop', self._on_stop)
|
||||||
|
EventBus().register('clear_cache', self.on_clear_cache)
|
||||||
|
|
||||||
self._is_running = True
|
self._is_running = True
|
||||||
self._queue = SyncQueue(context.batch_size * 2, "AudioMalHandler_queue")
|
self._queue = SyncQueue(context.batch_size * 2, "AudioMalHandler_queue")
|
||||||
@ -34,10 +35,15 @@ class AudioMalHandler(AudioHandler):
|
|||||||
|
|
||||||
def __del__(self):
|
def __del__(self):
|
||||||
EventBus().unregister('stop', self._on_stop)
|
EventBus().unregister('stop', self._on_stop)
|
||||||
|
EventBus().unregister('clear_cache', self.on_clear_cache)
|
||||||
|
|
||||||
def _on_stop(self, *args, **kwargs):
|
def _on_stop(self, *args, **kwargs):
|
||||||
self.stop()
|
self.stop()
|
||||||
|
|
||||||
|
def on_clear_cache(self, *args, **kwargs):
|
||||||
|
self.frames.clear()
|
||||||
|
self._queue.clear()
|
||||||
|
|
||||||
def on_message(self, message):
|
def on_message(self, message):
|
||||||
super().on_message(message)
|
super().on_message(message)
|
||||||
|
|
||||||
|
@ -19,6 +19,7 @@ class HumanRender(AudioHandler):
|
|||||||
super().__init__(context, handler)
|
super().__init__(context, handler)
|
||||||
|
|
||||||
EventBus().register('stop', self._on_stop)
|
EventBus().register('stop', self._on_stop)
|
||||||
|
EventBus().register('clear_cache', self.on_clear_cache)
|
||||||
play_clock = PlayClock()
|
play_clock = PlayClock()
|
||||||
self._voice_render = VoiceRender(play_clock, context)
|
self._voice_render = VoiceRender(play_clock, context)
|
||||||
self._video_render = VideoRender(play_clock, context, self)
|
self._video_render = VideoRender(play_clock, context, self)
|
||||||
@ -35,10 +36,14 @@ class HumanRender(AudioHandler):
|
|||||||
|
|
||||||
def __del__(self):
|
def __del__(self):
|
||||||
EventBus().unregister('stop', self._on_stop)
|
EventBus().unregister('stop', self._on_stop)
|
||||||
|
EventBus().unregister('clear_cache', self.on_clear_cache)
|
||||||
|
|
||||||
def _on_stop(self, *args, **kwargs):
|
def _on_stop(self, *args, **kwargs):
|
||||||
self.stop()
|
self.stop()
|
||||||
|
|
||||||
|
def on_clear_cache(self, *args, **kwargs):
|
||||||
|
self._queue.clear()
|
||||||
|
|
||||||
def _on_run(self):
|
def _on_run(self):
|
||||||
logging.info('human render run')
|
logging.info('human render run')
|
||||||
while self._exit_event.is_set() and self._is_running:
|
while self._exit_event.is_set() and self._is_running:
|
||||||
|
@ -17,13 +17,19 @@ class NLPBase(AsrObserver):
|
|||||||
self._is_running = True
|
self._is_running = True
|
||||||
|
|
||||||
EventBus().register('stop', self.on_stop)
|
EventBus().register('stop', self.on_stop)
|
||||||
|
EventBus().register('clear_cache', self.on_clear_cache)
|
||||||
|
|
||||||
def __del__(self):
|
def __del__(self):
|
||||||
EventBus().unregister('stop', self.on_stop)
|
EventBus().unregister('stop', self.on_stop)
|
||||||
|
EventBus().unregister('clear_cache', self.on_clear_cache)
|
||||||
|
|
||||||
def on_stop(self, *args, **kwargs):
|
def on_stop(self, *args, **kwargs):
|
||||||
self.stop()
|
self.stop()
|
||||||
|
|
||||||
|
def on_clear_cache(self, *args, **kwargs):
|
||||||
|
logger.info('NLPBase clear_cache')
|
||||||
|
self._ask_queue.clear()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def callback(self):
|
def callback(self):
|
||||||
return self._callback
|
return self._callback
|
||||||
|
@ -16,13 +16,19 @@ class TTSBase(NLPCallback):
|
|||||||
self._message_queue = AsyncTaskQueue('TTSBaseQueue', 5)
|
self._message_queue = AsyncTaskQueue('TTSBaseQueue', 5)
|
||||||
self._is_running = True
|
self._is_running = True
|
||||||
EventBus().register('stop', self.on_stop)
|
EventBus().register('stop', self.on_stop)
|
||||||
|
EventBus().register('clear_cache', self.on_clear_cache)
|
||||||
|
|
||||||
def __del__(self):
|
def __del__(self):
|
||||||
EventBus().unregister('stop', self.on_stop)
|
EventBus().unregister('stop', self.on_stop)
|
||||||
|
EventBus().unregister('clear_cache', self.on_clear_cache)
|
||||||
|
|
||||||
def on_stop(self, *args, **kwargs):
|
def on_stop(self, *args, **kwargs):
|
||||||
self.stop()
|
self.stop()
|
||||||
|
|
||||||
|
def on_clear_cache(self, *args, **kwargs):
|
||||||
|
logger.info('TTSBase clear_cache')
|
||||||
|
self._message_queue.clear()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def handle(self):
|
def handle(self):
|
||||||
return self._handle
|
return self._handle
|
||||||
|
@ -21,6 +21,7 @@ class TTSEdgeHttp(TTSBase):
|
|||||||
# self._url = 'http://localhost:8082/v1/audio/speech'
|
# self._url = 'http://localhost:8082/v1/audio/speech'
|
||||||
self._url = 'https://tts.mzzsfy.eu.org/v1/audio/speech'
|
self._url = 'https://tts.mzzsfy.eu.org/v1/audio/speech'
|
||||||
logger.info(f"TTSEdge init, {voice}")
|
logger.info(f"TTSEdge init, {voice}")
|
||||||
|
self._response_list = []
|
||||||
|
|
||||||
async def _on_async_request(self, data):
|
async def _on_async_request(self, data):
|
||||||
async with aiohttp.ClientSession() as session:
|
async with aiohttp.ClientSession() as session:
|
||||||
@ -35,11 +36,12 @@ class TTSEdgeHttp(TTSBase):
|
|||||||
|
|
||||||
def _on_sync_request(self, data):
|
def _on_sync_request(self, data):
|
||||||
response = requests.post(self._url, json=data)
|
response = requests.post(self._url, json=data)
|
||||||
|
self._response_list.append(response)
|
||||||
|
stream = None
|
||||||
if response.status_code == 200:
|
if response.status_code == 200:
|
||||||
stream = BytesIO(response.content)
|
stream = BytesIO(response.content)
|
||||||
|
self._response_list.remove(response)
|
||||||
return stream
|
return stream
|
||||||
else:
|
|
||||||
return None
|
|
||||||
|
|
||||||
async def _on_request(self, txt: str):
|
async def _on_request(self, txt: str):
|
||||||
logger.info(f'TTSEdgeHttp, _on_request, txt:{txt}')
|
logger.info(f'TTSEdgeHttp, _on_request, txt:{txt}')
|
||||||
@ -91,3 +93,9 @@ class TTSEdgeHttp(TTSBase):
|
|||||||
print('TTSEdge close')
|
print('TTSEdge close')
|
||||||
# if self._byte_stream is not None and not self._byte_stream.closed:
|
# if self._byte_stream is not None and not self._byte_stream.closed:
|
||||||
# self._byte_stream.close()
|
# self._byte_stream.close()
|
||||||
|
|
||||||
|
def on_clear_cache(self, *args, **kwargs):
|
||||||
|
logger.info('TTSEdgeHttp clear_cache')
|
||||||
|
super().on_clear_cache(*args, **kwargs)
|
||||||
|
for response in self._response_list:
|
||||||
|
response.close()
|
||||||
|
Loading…
Reference in New Issue
Block a user