modify nlp human

This commit is contained in:
brige 2024-10-23 19:58:41 +08:00
parent 855e307657
commit d95288d63e
6 changed files with 15 additions and 5 deletions

View File

@ -34,7 +34,7 @@ class AudioMalHandler(AudioHandler):
logging.info('chunk2mal run') logging.info('chunk2mal run')
while self._exit_event.is_set(): while self._exit_event.is_set():
self._run_step() self._run_step()
time.sleep(0.01) time.sleep(0.3)
logging.info('chunk2mal exit') logging.info('chunk2mal exit')

View File

@ -104,7 +104,7 @@ class HumanContext:
self._tts_handle = TTSAudioSplitHandle(self, self._mal_handler) self._tts_handle = TTSAudioSplitHandle(self, self._mal_handler)
self._tts = TTSEdgeHttp(self._tts_handle) self._tts = TTSEdgeHttp(self._tts_handle)
split = PunctuationSplit() split = PunctuationSplit()
self._nlp = DouBao(split, self._tts) self._nlp = DouBao(self, split, self._tts)
self._asr = SherpaNcnnAsr() self._asr = SherpaNcnnAsr()
self._asr.attach(self._nlp) self._asr.attach(self._nlp)
@ -113,3 +113,4 @@ class HumanContext:
self._tts.pause_talk() self._tts.pause_talk()
self._mal_handler.pause_talk() self._mal_handler.pause_talk()
self._infer_handler.pause_talk() self._infer_handler.pause_talk()
self._render_handler.pause_talk()

View File

@ -40,6 +40,10 @@ class HumanRender(AudioHandler):
type_ = 0 type_ = 0
self._video_render.put((res_frame, idx, type_)) self._video_render.put((res_frame, idx, type_))
def pause_talk(self):
self._voice_render.pause_talk()
self._video_render.pause_talk()
def stop(self): def stop(self):
self._voice_render.stop() self._voice_render.stop()
self._video_render.stop() self._video_render.stop()

View File

@ -8,8 +8,9 @@ logger = logging.getLogger(__name__)
class NLPBase(AsrObserver): class NLPBase(AsrObserver):
def __init__(self, split, callback=None): def __init__(self, context, split, callback=None):
self._ask_queue = AsyncTaskQueue() self._ask_queue = AsyncTaskQueue()
self._context = context
self._split_handle = split self._split_handle = split
self._callback = callback self._callback = callback
@ -36,6 +37,7 @@ class NLPBase(AsrObserver):
def completed(self, message: str): def completed(self, message: str):
logger.info(f'complete:{message}') logger.info(f'complete:{message}')
self._context.pause_talk()
self.ask(message) self.ask(message)
def ask(self, question): def ask(self, question):

View File

@ -10,8 +10,8 @@ logger = logging.getLogger(__name__)
class DouBao(NLPBase): class DouBao(NLPBase):
def __init__(self, split, callback=None): def __init__(self, context, split, callback=None):
super().__init__(split, callback) super().__init__(context, split, callback)
logger.info("DouBao init") logger.info("DouBao init")
# Access Key ID # Access Key ID
# AKLTYTdmOTBmNWFjODkxNDE2Zjk3MjU0NjRhM2JhM2IyN2Y # AKLTYTdmOTBmNWFjODkxNDE2Zjk3MjU0NjRhM2JhM2IyN2Y

View File

@ -30,6 +30,9 @@ class BaseRender(ABC):
ps = time.time() - self._play_clock.start_time ps = time.time() - self._play_clock.start_time
self._queue.put_nowait((frame, ps)) self._queue.put_nowait((frame, ps))
def pause_talk(self):
self._queue.queue.clear()
def stop(self): def stop(self):
self._queue.queue.clear() self._queue.queue.clear()
self._exit_event.clear() self._exit_event.clear()