Spaces:
Running
Running
import gradio as gr | |
import requests | |
import os | |
import dwani | |
# List of supported languages | |
LANGUAGES = ["malayalam", "tamil", "telugu", "hindi", "kannada"] | |
dwani.api_key = os.getenv("DWANI_API_KEY") | |
dwani.api_base = os.getenv("DWANI_API_BASE_URL") | |
# Function to extract language name | |
def get_lang_name(lang_string): | |
return lang_string.split("(")[0].strip().lower() | |
def transcribe_api(audio_file, language): | |
# Get the base URL from environment variable | |
result = dwani.ASR.transcribe(file_path=audio_file, language=language) | |
return result | |
# Create Gradio interface | |
with gr.Blocks(title="Speech to Text API Interface") as demo: | |
gr.Markdown("# Speech to Text API Interface") | |
with gr.Row(): | |
with gr.Column(): | |
# Input components | |
audio_input = gr.Audio( | |
label="Audio File", | |
type="filepath", | |
sources=["upload"] | |
) | |
language_input = gr.Dropdown( | |
label="Language", | |
choices=LANGUAGES, | |
value="kannada" | |
) | |
submit_btn = gr.Button("Transcribe") | |
with gr.Column(): | |
# Output component | |
output = gr.JSON(label="Transcription Response") | |
# Connect the button click to the API function | |
submit_btn.click( | |
fn=transcribe_api, | |
inputs=[audio_input, language_input], | |
outputs=output | |
) | |
# Launch the interface | |
demo.launch() |