|
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." |
|
|
|
|
|
|
|
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) |
|
|
|
|
|
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 |
|
|
|
) |
|
|
|
|
|
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() |