Spaces:
Sleeping
Sleeping
# Import libraries | |
import whisper | |
import os | |
from gtts import gTTS | |
import gradio as gr | |
from groq import Groq | |
# Load Whisper model for transcription | |
model = whisper.load_model("base") | |
GROQ_API_KEY= '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' | |
client= Groq(api_key=GROQ_API_KEY) | |
# Function to get the LLM response from Groq | |
def get_llm_response(user_input): | |
chat_completion = client.chat.completions.create( | |
messages=[{"role": "user", "content": user_input}], | |
model="llama3-8b-8192", # Replace with your desired model | |
) | |
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 | |
# Main chatbot function to handle audio input and output | |
def chatbot(audio): | |
# Step 1: Transcribe the audio using Whisper | |
result = model.transcribe(audio) | |
user_text = result["text"] | |
# Step 2: Get LLM response from Groq | |
response_text = get_llm_response(user_text) | |
# Step 3: Convert the response text to speech | |
output_audio = text_to_speech(response_text) | |
return response_text, output_audio | |
# Gradio interface for real-time interaction | |
iface = gr.Interface( | |
fn=chatbot, | |
inputs=gr.Audio(type="filepath"), # Input from mic or file | |
outputs=[gr.Textbox(), gr.Audio(type="filepath")], # Output: response text and audio | |
live=True | |
) | |
# Launch the Gradio app | |
iface.launch() | |