Spaces:
Build error
Build error
| #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 | |