Download app.py from deepugaur/new_code: direct link, hf CLI and curl.
- Browser
- Download file 1.71 kB
-
https://huggingface.co/spaces/deepugaur/new_code/resolve/main/app.py
- Command line
-
hf download hf://spaces/deepugaur/new_code/app.py
-
curl -L -o app.py https://huggingface.co/spaces/deepugaur/new_code/resolve/main/app.py
1.71 kB
| import streamlit as st # Make sure to import streamlit | |
| import torch | |
| from transformers import MarianMTModel, MarianTokenizer | |
| import speech_recognition as sr | |
| from gtts import gTTS | |
| import os | |
| # Function to recognize speech from an audio file | |
| def recognize_speech_from_file(audio_file): | |
| recognizer = sr.Recognizer() | |
| with sr.AudioFile(audio_file) as source: | |
| audio = recognizer.record(source) | |
| try: | |
| return recognizer.recognize_google(audio) | |
| except sr.UnknownValueError: | |
| return "Could not understand audio" | |
| except sr.RequestError: | |
| return "Could not request results; check your internet connection" | |
| # Function to translate text | |
| def translate_text(text): | |
| model_name = "Helsinki-NLP/opus-mt-en-hi" | |
| tokenizer = MarianTokenizer.from_pretrained(model_name) | |
| model = MarianMTModel.from_pretrained(model_name) | |
| translated = model.generate(**tokenizer(text, return_tensors="pt", padding=True)) | |
| return tokenizer.decode(translated[0], skip_special_tokens=True) | |
| # Function to convert text to audio | |
| def convert_to_audio(text): | |
| tts = gTTS(text, lang="hi") | |
| audio_output = "output.mp3" | |
| tts.save(audio_output) | |
| return audio_output | |
| st.title("English to Hindi Audio Translation") | |
| # Make the translation service available without time restrictions | |
| audio_file = st.file_uploader("Upload an audio file", type=["wav", "mp3"]) | |
| if audio_file is not None: | |
| text = recognize_speech_from_file(audio_file) | |
| st.write(f"Recognized English Text: {text}") | |
| translated_text = translate_text(text) | |
| st.write(f"Translated Hindi Text: {translated_text}") | |
| audio_output = convert_to_audio(translated_text) | |
| st.audio(audio_output, format='audio/mp3') | |