import json from typing import Iterator import gradio as gr from groq import Groq from elevenlabs.client import ElevenLabs import logging as log # Initialize Groq client client = Groq(api_key="") elevenlabs_client = ElevenLabs( api_key="" ) def transcribe_audio(audio_file_path, language, additional_text): try: bytes_data = open('greetings.mp3', 'rb').read() yield "Checking ...", bytes_data except Exception as e: print(f"error: {e}") log.info(f'error: {e}') yield f"An error occurred: {str(e)}", None def speach_to_text(): # List of supported languages (this is an example, adjust based on Groq's actual supported languages) languages = ["en", "ba", "ms", "is", "no", "id"] # Create Gradio interface iface = gr.Interface( fn=transcribe_audio, inputs=[ gr.Audio(type="filepath", label="Upload Audio File"), gr.Dropdown(choices=languages, label="Select Language", value="en"), # gr.Radio(["standard", "high"], label="Transcription Quality", value="standard"), gr.Textbox(label="Additional Text", placeholder="Enter any additional context or instructions here...") ], outputs=[ gr.Textbox(label="Response"), gr.Audio(label="Audio Stream", autoplay=True, format="mp3") ], title="Groq Speech-to-Text Transcription", description="Upload an audio file, set parameters, and provide additional text for context in the " "transcription process." ) # Launch the interface iface.launch() # Press the green button in the gutter to run the script. if __name__ == '__main__': speach_to_text()