File size: 1,284 Bytes
83bdf6a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import gradio as gr
import os
import whisper
from groq import Groq
from gtts import gTTS

# Initialize Whisper model for transcription
model = whisper.load_model("base")

# Set up Groq API
GROQ_API_KEY="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"
client = Groq(api_key=GROQ_API_KEY)


# Function to query the LLM using Groq API
def get_llm_response(input_text):
    chat_completion = client.chat.completions.create(
        messages=[{
            "role": "user",
            "content": input_text,
        }],
        model="llama3-8b-8192",
    )
    return chat_completion.choices[0].message.content


# Function to convert text to speech using gTTS
def text_to_speech(text,output_audio="output_audio.mp3"):
    tts = gTTS(text)
    tts.save(output_audio)
    return output_audio


def chatbot(audio):
  result=model.transcribe(audio)
  user_text=result['text']
  response_text=get_llm_response(user_text)
  output_audio=text_to_speech(response_text)
  return response_text,output_audio


# Create Gradio interface for microphone input
iface = gr.Interface(
    fn=chatbot,
    inputs=gr.Audio(type="filepath"),  # Capturing audio from the microphone
    outputs=[gr.Textbox(),gr.Audio(type="filepath")],  # Outputting audio file path
    live=True
)

iface.launch()