#1st Line install Libraries:- #!pip install gradio groq openai-whisper gtts numpy pydub requests #!apt-get install -y ffmpeg #2nd Line generate API key from GROQ:- #import os #os.environ["GROQ_API_KEY"] = "Mention_your API_Key_here" #3rd Line Code:- import os import gradio as gr from groq import Groq, GroqError import whisper from gtts import gTTS import tempfile import logging import numpy as np from pydub import AudioSegment # Set up logging logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) # Set up Groq API key groq_api_key = os.getenv('groq_api_key') #GROQ_API_KEY = "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" if not groq_api_key: raise ValueError("GROQ_API_KEY is not set.") try: groq_client = Groq(api_key=groq_api_key) logger.info("Groq API key is set and client is initialized.") except GroqError as e: logger.error(f"Failed to initialize Groq client: {e}") raise try: # Load Whisper model whisper_model = whisper.load_model("base") logger.info("Whisper model loaded successfully.") except Exception as e: logger.error(f"Failed to load Whisper model: {e}") raise def process_audio(audio_file): try: # Transcribe audio using Whisper result = whisper_model.transcribe(audio_file) user_text = result['text'] logger.info(f"Transcription successful: {user_text}") except Exception as e: logger.error(f"Error in transcribing audio: {e}") return "Error in transcribing audio.", None try: # Generate response using Llama 8b model with Groq API chat_completion = groq_client.chat.completions.create( messages=[ { "role": "user", "content": user_text, } ], model="llama3-8b-8192", ) response_text = chat_completion.choices[0].message.content logger.info(f"Received response from Groq API: {response_text}") except GroqError as e: logger.error(f"Error in generating response with Groq API: {e}") return "Error in generating response with Groq API.", None try: # Convert response text to speech using gTTS tts = gTTS(text=response_text, lang='en') audio_file = tempfile.NamedTemporaryFile(delete=False, suffix='.mp3') tts.save(audio_file.name) logger.info("Text-to-speech conversion successful.") except Exception as e: logger.error(f"Error in text-to-speech conversion: {e}") return "Error in text-to-speech conversion.", None return response_text, audio_file.name # Create Gradio interface iface = gr.Interface( fn=process_audio, inputs=gr.Audio(type="filepath"), title="AI-Powered Converter", outputs=[gr.Textbox(label="Response"), gr.Audio(label="Response Audio")], live=True ) try: iface.launch() logger.info("Gradio interface launched successfully.") except Exception as e: logger.error(f"Failed to launch Gradio interface: {e}") raise