File size: 1,007 Bytes
27c3220
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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)