opti_render #3
@ -30,11 +30,11 @@ class AsrBase:
|
||||
pass
|
||||
|
||||
def _notify_process(self, message: str):
|
||||
EventBus().post('clear_cache')
|
||||
for observer in self._observers:
|
||||
observer.process(message)
|
||||
|
||||
def _notify_complete(self, message: str):
|
||||
EventBus().post('clear_cache')
|
||||
for observer in self._observers:
|
||||
observer.completed(message)
|
||||
|
||||
|
@ -23,7 +23,6 @@ class AudioInferenceHandler(AudioHandler):
|
||||
super().__init__(context, handler)
|
||||
|
||||
EventBus().register('stop', self._on_stop)
|
||||
EventBus().register('clear_cache', self.on_clear_cache)
|
||||
self._mal_queue = SyncQueue(1, "AudioInferenceHandler_Mel")
|
||||
self._audio_queue = SyncQueue(context.batch_size * 2, "AudioInferenceHandler_Audio")
|
||||
|
||||
@ -37,15 +36,10 @@ class AudioInferenceHandler(AudioHandler):
|
||||
|
||||
def __del__(self):
|
||||
EventBus().unregister('stop', self._on_stop)
|
||||
EventBus().unregister('clear_cache', self.on_clear_cache)
|
||||
|
||||
def _on_stop(self, *args, **kwargs):
|
||||
self.stop()
|
||||
|
||||
def on_clear_cache(self, *args, **kwargs):
|
||||
self._mal_queue.clear()
|
||||
self._audio_queue.clear()
|
||||
|
||||
def on_handle(self, stream, type_):
|
||||
if not self._is_running:
|
||||
return
|
||||
|
@ -44,7 +44,6 @@ class AudioInferenceOnnxHandler(AudioHandler):
|
||||
super().__init__(context, handler)
|
||||
|
||||
EventBus().register('stop', self._on_stop)
|
||||
EventBus().register('clear_cache', self.on_clear_cache)
|
||||
self._mal_queue = SyncQueue(1, "AudioInferenceHandler_Mel")
|
||||
self._audio_queue = SyncQueue(context.batch_size * 2, "AudioInferenceHandler_Audio")
|
||||
|
||||
@ -58,15 +57,10 @@ class AudioInferenceOnnxHandler(AudioHandler):
|
||||
|
||||
def __del__(self):
|
||||
EventBus().unregister('stop', self._on_stop)
|
||||
EventBus().unregister('clear_cache', self.on_clear_cache)
|
||||
|
||||
def _on_stop(self, *args, **kwargs):
|
||||
self.stop()
|
||||
|
||||
def on_clear_cache(self, *args, **kwargs):
|
||||
self._mal_queue.clear()
|
||||
self._audio_queue.clear()
|
||||
|
||||
def on_handle(self, stream, type_):
|
||||
if not self._is_running:
|
||||
return
|
||||
@ -196,3 +190,4 @@ class AudioInferenceOnnxHandler(AudioHandler):
|
||||
print('AudioInferenceHandler111')
|
||||
self._mal_queue.clear()
|
||||
print('AudioInferenceHandler222')
|
||||
super().pause_talk()
|
||||
|
@ -124,3 +124,4 @@ class AudioMalHandler(AudioHandler):
|
||||
def pause_talk(self):
|
||||
print('AudioMalHandler pause_talk', self._queue.size())
|
||||
self._queue.clear()
|
||||
super().pause_talk()
|
||||
|
@ -19,7 +19,6 @@ class HumanRender(AudioHandler):
|
||||
super().__init__(context, handler)
|
||||
|
||||
EventBus().register('stop', self._on_stop)
|
||||
EventBus().register('clear_cache', self.on_clear_cache)
|
||||
play_clock = PlayClock()
|
||||
self._voice_render = VoiceRender(play_clock, context)
|
||||
self._video_render = VideoRender(play_clock, context, self)
|
||||
@ -36,14 +35,10 @@ class HumanRender(AudioHandler):
|
||||
|
||||
def __del__(self):
|
||||
EventBus().unregister('stop', self._on_stop)
|
||||
EventBus().unregister('clear_cache', self.on_clear_cache)
|
||||
|
||||
def _on_stop(self, *args, **kwargs):
|
||||
self.stop()
|
||||
|
||||
def on_clear_cache(self, *args, **kwargs):
|
||||
self._queue.clear()
|
||||
|
||||
def _on_run(self):
|
||||
logging.info('human render run')
|
||||
while self._exit_event.is_set() and self._is_running:
|
||||
@ -96,8 +91,8 @@ class HumanRender(AudioHandler):
|
||||
|
||||
def pause_talk(self):
|
||||
logging.info('hunan pause_talk')
|
||||
# self._voice_render.pause_talk()
|
||||
# self._video_render.pause_talk()
|
||||
self._queue.clear()
|
||||
super().pause_talk()
|
||||
|
||||
def stop(self):
|
||||
logging.info('hunan render stop')
|
||||
|
@ -29,4 +29,8 @@ class AudioHandler(ABC):
|
||||
logging.info(f'_handler is None')
|
||||
|
||||
def pause_talk(self):
|
||||
pass
|
||||
if self._handler is not None:
|
||||
self._handler.pause_talk()
|
||||
else:
|
||||
logging.info(f'next_pause_talk _handler is None')
|
||||
|
||||
|
@ -28,7 +28,9 @@ class NLPBase(AsrObserver):
|
||||
|
||||
def on_clear_cache(self, *args, **kwargs):
|
||||
logger.info('NLPBase clear_cache')
|
||||
self._ask_queue.clear()
|
||||
self.pause_talk()
|
||||
if self._callback is not None:
|
||||
self._callback.on_clear()
|
||||
|
||||
@property
|
||||
def callback(self):
|
||||
@ -74,6 +76,5 @@ class NLPBase(AsrObserver):
|
||||
|
||||
def pause_talk(self):
|
||||
logger.info('NLPBase pause_talk')
|
||||
self._is_running = False
|
||||
self._ask_queue.clear()
|
||||
|
@ -7,3 +7,7 @@ class NLPCallback(ABC):
|
||||
@abstractmethod
|
||||
def on_message(self, txt: str):
|
||||
pass
|
||||
|
||||
@abstractmethod
|
||||
def on_clear(self):
|
||||
pass
|
||||
|
@ -20,18 +20,13 @@ class TTSAudioHandle(AudioHandler):
|
||||
self._index = -1
|
||||
|
||||
EventBus().register('stop', self._on_stop)
|
||||
EventBus().register('clear_cache', self.on_clear_cache)
|
||||
|
||||
def __del__(self):
|
||||
EventBus().unregister('stop', self._on_stop)
|
||||
EventBus().unregister('clear_cache', self.on_clear_cache)
|
||||
|
||||
def _on_stop(self, *args, **kwargs):
|
||||
self.stop()
|
||||
|
||||
def on_clear_cache(self, *args, **kwargs):
|
||||
self._index = -1
|
||||
|
||||
@property
|
||||
def sample_rate(self):
|
||||
return self._sample_rate
|
||||
@ -51,7 +46,8 @@ class TTSAudioHandle(AudioHandler):
|
||||
pass
|
||||
|
||||
def pause_talk(self):
|
||||
pass
|
||||
self._index = -1
|
||||
super().pause_talk()
|
||||
|
||||
|
||||
class TTSAudioSplitHandle(TTSAudioHandle):
|
||||
@ -103,8 +99,8 @@ class TTSAudioSplitHandle(TTSAudioHandle):
|
||||
self._is_running = False
|
||||
self._thread.join()
|
||||
|
||||
def on_clear_cache(self, *args, **kwargs):
|
||||
super().on_clear_cache()
|
||||
def pause_talk(self):
|
||||
super().pause_talk()
|
||||
with self._lock:
|
||||
self._current = 0
|
||||
self._priority_queue.clear()
|
||||
|
@ -16,18 +16,18 @@ class TTSBase(NLPCallback):
|
||||
self._message_queue = AsyncTaskQueue('TTSBaseQueue', 5)
|
||||
self._is_running = True
|
||||
EventBus().register('stop', self.on_stop)
|
||||
EventBus().register('clear_cache', self.on_clear_cache)
|
||||
|
||||
def __del__(self):
|
||||
EventBus().unregister('stop', self.on_stop)
|
||||
EventBus().unregister('clear_cache', self.on_clear_cache)
|
||||
|
||||
def on_stop(self, *args, **kwargs):
|
||||
self.stop()
|
||||
|
||||
def on_clear_cache(self, *args, **kwargs):
|
||||
logger.info('TTSBase clear_cache')
|
||||
self._message_queue.clear()
|
||||
def on_clear(self):
|
||||
self.pause_talk()
|
||||
|
||||
if self._handle is not None:
|
||||
self._handle.pause_talk()
|
||||
|
||||
@property
|
||||
def handle(self):
|
||||
|
@ -97,8 +97,8 @@ class TTSEdgeHttp(TTSBase):
|
||||
# if self._byte_stream is not None and not self._byte_stream.closed:
|
||||
# self._byte_stream.close()
|
||||
|
||||
def on_clear_cache(self, *args, **kwargs):
|
||||
def on_clear(self):
|
||||
logger.info('TTSEdgeHttp clear_cache')
|
||||
super().on_clear_cache(*args, **kwargs)
|
||||
for response in self._response_list:
|
||||
response.close()
|
||||
super().on_clear()
|
||||
|
Loading…
Reference in New Issue
Block a user