Spaces:
Runtime error
Runtime error
| ###################This is the Existing CODE######################################## | |
| from flask import Flask, render_template, request, jsonify | |
| import speech_recognition as sr | |
| from googletrans import Translator | |
| import requests | |
| import os | |
| # import pyttsx3 | |
| app = Flask(__name__) | |
| # Initialize recognizer and translator | |
| recognizer = sr.Recognizer() | |
| translator = Translator() | |
| # engine = pyttsx3.init() | |
| # Language settings mapping | |
| language_mapping = { | |
| 1: ('ta-IN', 'ta', 'en'), # Tamil | |
| 2: ('en-US', 'en', 'en'), # English | |
| 3: ('hi-IN', 'hi', 'en'), # Hindi | |
| 4: ('ms-MY', 'ms', 'en') # Malay | |
| } | |
| def index(): | |
| return render_template("index.html") | |
| # def speak(text): | |
| # engine.say(text) | |
| # engine.runAndWait() | |
| def speech_to_text(): | |
| """Convert speech to text, translate, and query the /ask endpoint""" | |
| language = int(request.form.get("language", 0)) | |
| if language not in language_mapping: | |
| return jsonify({"error": "Invalid language selection"}), 400 | |
| 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") | |
| # Hugging Face API endpoint | |
| url = "https://aitestingworkspace-aiagentchatup.hf.space/ask" | |
| # Headers with authentication | |
| headers = { | |
| "Authorization": f"Bearer {API_KEY}" | |
| } | |
| response = requests.post(url=url,data={"question": translated.text},headers=headers) | |
| # # Get response and speak it | |
| # server_response = response.json().get('answer', 'No response received.') | |
| # print(f"Server Response: {server_response}") | |
| # speak(server_response) | |
| return jsonify({ | |
| "recognized_text": text, | |
| "translated_text": translated.text, | |
| "server_response": response.json()['answer'] | |
| }) | |
| except sr.UnknownValueError: | |
| return jsonify({"error": "Could not understand audio"}), 400 | |
| except Exception as e: | |
| return jsonify({"error": str(e)}), 500 | |
| if __name__ == "__main__": | |
| app.run(host="0.0.0.0", port=5000, debug=True) | |