Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import speech_recognition as sr | |
| from deep_translator import GoogleTranslator | |
| from gtts import gTTS | |
| import os | |
| # Function to convert speech to text | |
| def speech_to_text(audio): | |
| recognizer = sr.Recognizer() | |
| with sr.AudioFile(audio) as source: | |
| audio_data = recognizer.record(source) | |
| try: | |
| text = recognizer.recognize_google(audio_data, language="ur") # Urdu speech recognition | |
| return text | |
| except sr.UnknownValueError: | |
| return "Sorry, could not understand the audio." | |
| except sr.RequestError: | |
| return "Error: Could not connect to the recognition service." | |
| # Function to translate text from Urdu to Pashto | |
| def translate_text(text): | |
| try: | |
| translated_text = GoogleTranslator(source="ur", target="ps").translate(text) # Urdu to Pashto | |
| return translated_text | |
| except Exception as e: | |
| return f"Translation Error: {e}" | |
| # Function to convert text to speech | |
| def text_to_speech(text): | |
| try: | |
| tts = gTTS(text, lang="ps") # Convert to Pashto speech | |
| tts.save("translated_audio.mp3") | |
| return "translated_audio.mp3" | |
| except Exception as e: | |
| return f"TTS Error: {e}" | |
| # Main function to handle end-to-end processing | |
| def process_voice(audio): | |
| text = speech_to_text(audio) | |
| if "Error" in text: | |
| return text, None | |
| translated_text = translate_text(text) | |
| audio_path = text_to_speech(translated_text) | |
| return translated_text, audio_path | |
| # Create Gradio Interface for Hugging Face | |
| iface = gr.Interface( | |
| fn=process_voice, | |
| inputs=gr.Audio(source="microphone", type="filepath"), | |
| outputs=[gr.Textbox(label="Translated Text (Pashto)"), gr.Audio(label="Translated Speech")], | |
| title="Voice-to-Voice Translator (Urdu → Pashto)", | |
| description="🎤 Speak in **Urdu**, and get the **Pashto** translation along with audio output." | |
| ) | |
| # Launch the app | |
| iface.launch() | |