diff --git a/core/handle/audioHandle.py b/core/handle/audioHandle.py index 0a826752..0a5b130f 100644 --- a/core/handle/audioHandle.py +++ b/core/handle/audioHandle.py @@ -27,7 +27,6 @@ async def handleAudioMessage(conn, audio): conn.asr_server_receive = False text, file_path = conn.asr.speech_to_text(conn.asr_audio, conn.session_id) logger.info(f"识别文本: {text}") - text_len, text_without_punctuation = remove_punctuation_and_length(text) if text_len <= conn.max_cmd_length and await handleCMDMessage(conn, text_without_punctuation): return @@ -38,6 +37,28 @@ async def handleAudioMessage(conn, audio): conn.asr_audio.clear() conn.reset_vad_states() +async def handleCMDMessage(conn, text): + cmd_exit = conn.cmd_exit + for cmd in cmd_exit: + if text == cmd: + logger.info("识别到明确的退出命令".format(text)) + await finishToChat(conn) + return True + return False + +async def finishToChat(conn): + await conn.close() + +async def isLLMWantToFinsih(conn): + first_text = conn.tts_first_text + last_text = conn.tts_last_text + _, last_text_without_punctuation = remove_punctuation_and_length(last_text) + if "再见" in last_text_without_punctuation or "拜拜" in last_text_without_punctuation: + return True + _, first_text_without_punctuation = remove_punctuation_and_length(first_text) + if "再见" in first_text_without_punctuation or "拜拜" in first_text_without_punctuation: + return True + return False async def handleCMDMessage(conn, text): cmd_exit = conn.cmd_exit