voicetovoiceBot / app.py
SajidMajeed's picture
Create app.py
83bdf6a verified
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()