opti_render #3

Manually merged
brige merged 15 commits from opti_render into develop 2024-12-23 22:40:16 +00:00
11 changed files with 28 additions and 38 deletions
Showing only changes of commit 23cab9d86b - Show all commits

View File

@ -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)

View File

@ -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

View File

@ -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()

View File

@ -124,3 +124,4 @@ class AudioMalHandler(AudioHandler):
def pause_talk(self):
print('AudioMalHandler pause_talk', self._queue.size())
self._queue.clear()
super().pause_talk()

View File

@ -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')

View File

@ -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')

View File

@ -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()

View File

@ -7,3 +7,7 @@ class NLPCallback(ABC):
@abstractmethod
def on_message(self, txt: str):
pass
@abstractmethod
def on_clear(self):
pass

View File

@ -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()

View File

@ -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):

View File

@ -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()