STT / app.py
Ansaribinhyder's picture
revert
1208e67
import gradio as gr
import speech_recognition as sr
from googletrans import Translator
import requests
import os
# Initialize recognizer and translator
recognizer = sr.Recognizer()
translator = Translator()
# Language settings mapping
language_mapping = {
"Tamil": ('ta-IN', 'ta', 'en'),
"English": ('en-US', 'en', 'en'),
"Hindi": ('hi-IN', 'hi', 'en'),
"Malay": ('ms-MY', 'ms', 'en')
}
def speech_to_text(language):
"""Convert speech to text, translate, and query the /ask endpoint"""
if language not in language_mapping:
return "Invalid language selection", "", ""
recognition_lang, src_lang, dest_lang = language_mapping[language]
with sr.Microphone() as source:
print(f"Listening for {recognition_lang}...")
recognizer.adjust_for_ambient_noise(source)
audio = recognizer.listen(source)
try:
text = recognizer.recognize_google(audio, language=recognition_lang)
print(f"Recognized: {text}")
# Translate text
translated = translator.translate(text, src=src_lang, dest=dest_lang)
print(f"Translated: {translated.text}")
# Send to /ask API
API_KEY = os.getenv("RAG_API_KEY")
url = "https://aitestingworkspace-aiagentchatup.hf.space/ask"
headers = {"Authorization": f"Bearer {API_KEY}"}
response = requests.post(url=url, data={"question": translated.text}, headers=headers)
return text, translated.text, response.json().get("answer", "No response received.")
except sr.UnknownValueError:
return "Could not understand audio", "", ""
except Exception as e:
return str(e), "", ""
# Gradio Interface
demo = gr.Interface(
fn=speech_to_text,
inputs=gr.Dropdown(choices=list(language_mapping.keys()), label="Select Language"),
outputs=[
gr.Textbox(label="Recognized Text"),
gr.Textbox(label="Translated Text"),
gr.Textbox(label="Server Response")
],
title="Speech to Text & Translation",
description="Speak in the selected language, and the system will transcribe, translate, and fetch a response.",
)
demo.launch()