video / app.py
artificialguybr's picture
Create app.py
8047108 verified
import gradio as gr
from gradio_client import Client
def swap(radio):
if radio == "Upload":
return gr.update(source="upload")
else:
return gr.update(source="webcam")
def process_video(radio, video, language, use_wav2lip):
try:
client = Client("https://artificialguybr-video-dubbing.hf.space/")
result = client.predict(
radio,
video,
language,
use_wav2lip,
api_name="/predict"
)
return result
except Exception as e:
print(f"Erro ao chamar a API: {e}")
return "Ocorreu um erro ao processar o vídeo."
# Componentes Gradio
video = gr.Video()
radio = gr.Radio(["Upload", "Gravar"], value="Upload", show_label=False)
dropdown = gr.Dropdown(choices=["Inglés", "Español", "Francés", "Alemán", "Italiano", "Portugués", "Polaco", "Turco", "Ruso", "Holandés", "Checo", "Árabe", "Chino (Simplificado)"], label="Idioma de Destino para Doblaje", value="Español")
checkbox = gr.Checkbox(label="El video tiene un primer plano del rostro. Usa Wav2lip.", value=False)
# Interface Gradio
iface = gr.Interface(
fn=process_video,
inputs=[radio, video, dropdown, checkbox],
outputs=gr.Video(),
live=False,
title="Doblaje de Video con IA",
description="Esta herramienta fue desarrollada por [@artificialguybr](https://twitter.com/artificialguybr) utilizando exclusivamente herramientas de código abierto. Un agradecimiento especial a Hugging Face por el soporte de GPU. Agradecimientos a [@yeswondwer](https://twitter.com/@yeswondwerr) por el código original. ¡Prueba el espacio [Transcripción y Traducción de Videos](https://huggingface.co/spaces/artificialguybr/VIDEO-TRANSLATION-TRANSCRIPTION)!",
allow_flagging=False
)
# Bloco Gradio
with gr.Blocks() as demo:
iface.render()
radio.change(swap, inputs=[radio], outputs=[video])
gr.Markdown("""
**Nota:**
- El límite de video es de 1 minuto. Doblará a todas las personas usando solo una voz.
- La generación puede tardar hasta 5 minutos.
- Al usar esta demo, usted acepta los términos de la Licencia de Modelo Público Coqui en https://coqui.ai/cpml
- La herramienta utiliza modelos de código abierto para todos los modelos. Es una versión alfa.
- La calidad puede ser mejorada, pero requeriría más tiempo de procesamiento por video. Para escalabilidad y limitaciones de hardware, se eligió la velocidad, no solo la calidad.
- Si necesita más de 1 minuto, duplique el Espacio y cambie el límite en app.py.
- Si marca incorrectamente la opción 'El video tiene un primer plano del rostro', el doblaje puede no funcionar como se espera.
""")
demo.queue
demo.launch()