Spaces:
Running
Running
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() | |