import sys from langchain_client import LangchainClient from tts import TextToSpeech langchain_client = LangchainClient() conversation_chain_history = langchain_client.create_model() tts_client = TextToSpeech() async def listen_print_loop(responses: object) -> str: num_chars_printed = 0 for response in responses: if not response.results: continue result = response.results[0] if not result.alternatives: continue transcript = result.alternatives[0].transcript overwrite_chars = " " * (num_chars_printed - len(transcript)) if not result.is_final: sys.stdout.write(transcript + overwrite_chars + "\r") sys.stdout.flush() num_chars_printed = len(transcript) else: print(transcript + overwrite_chars) result = langchain_client.invoke_llm(conversation_chain_history, transcript) return result, tts_client.text_to_speech(result)