Spaces:
Sleeping
Sleeping
| import boto3 | |
| import gradio as gr | |
| from transformers import pipeline | |
| import tempfile | |
| import os | |
| # from huggingface_hub import login | |
| # | |
| # with open("../token.txt", "r") as file: | |
| # token = file.readline().strip() | |
| # | |
| # | |
| # login(token=token, add_to_git_credential=True) | |
| pipe = pipeline(model="dacavi/whisper-small-es") | |
| def translate_text(text, target_language_code): | |
| translate = boto3.client('translate', region_name='us-east-1') | |
| response = translate.translate_text( | |
| Text=text, | |
| SourceLanguageCode='es', # Auto-detect source language | |
| TargetLanguageCode=target_language_code | |
| ) | |
| translated_text = response['TranslatedText'] | |
| return translated_text | |
| def translate_video(video_url,language): | |
| if video_url and language: | |
| # Download video and extract audio | |
| with tempfile.NamedTemporaryFile(suffix=".wav", delete=True) as temp_audio: | |
| # os.system(f"yt-dlp -o {temp_audio.name} -x --audio-format wav {video_url}") | |
| os.system(f"yt-dlp -o audioSample.wav -x --audio-format wav {video_url}") | |
| print("Downloaded audio:", temp_audio.name) | |
| # Transcribe audio | |
| text = pipe("audioSample.wav")["text"] | |
| translatedText = translate_text(text,language) | |
| # Clean up temporary files | |
| os.remove("audioSample.wav") | |
| else: | |
| translatedText = "Please fill in both parameters." | |
| return translatedText | |
| iface = gr.Interface( | |
| fn=translate_video, | |
| inputs=[gr.Textbox(label="Video URL"), | |
| gr.Dropdown(choices=["en", "fr", "de", "it"], label="Select Target Language") | |
| ], | |
| outputs="text", | |
| live=True, | |
| title="SPANISH VIDEO TRANSLATION", | |
| description="Paste the URL of a Spanish video to translate the text to any of the available languages.", | |
| ) | |
| iface.launch() | |