artificialguybr commited on
Commit
8047108
1 Parent(s): de890ac

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +62 -0
app.py ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from gradio_client import Client
3
+
4
+ def swap(radio):
5
+ if radio == "Upload":
6
+ return gr.update(source="upload")
7
+ else:
8
+ return gr.update(source="webcam")
9
+
10
+ def process_video(radio, video, language, use_wav2lip):
11
+ try:
12
+ client = Client("https://artificialguybr-video-dubbing.hf.space/")
13
+ result = client.predict(
14
+ radio,
15
+ video,
16
+ language,
17
+ use_wav2lip,
18
+ api_name="/predict"
19
+ )
20
+ return result
21
+ except Exception as e:
22
+ print(f"Erro ao chamar a API: {e}")
23
+ return "Ocorreu um erro ao processar o vídeo."
24
+
25
+
26
+ # Componentes Gradio
27
+ video = gr.Video()
28
+ radio = gr.Radio(["Upload", "Gravar"], value="Upload", show_label=False)
29
+ 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")
30
+ checkbox = gr.Checkbox(label="El video tiene un primer plano del rostro. Usa Wav2lip.", value=False)
31
+
32
+ # Interface Gradio
33
+ iface = gr.Interface(
34
+ fn=process_video,
35
+ inputs=[radio, video, dropdown, checkbox],
36
+ outputs=gr.Video(),
37
+ live=False,
38
+ title="Doblaje de Video con IA",
39
+ 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)!",
40
+ allow_flagging=False
41
+
42
+ )
43
+
44
+ # Bloco Gradio
45
+ with gr.Blocks() as demo:
46
+ iface.render()
47
+ radio.change(swap, inputs=[radio], outputs=[video])
48
+
49
+ gr.Markdown("""
50
+ **Nota:**
51
+ - El límite de video es de 1 minuto. Doblará a todas las personas usando solo una voz.
52
+ - La generación puede tardar hasta 5 minutos.
53
+ - Al usar esta demo, usted acepta los términos de la Licencia de Modelo Público Coqui en https://coqui.ai/cpml
54
+ - La herramienta utiliza modelos de código abierto para todos los modelos. Es una versión alfa.
55
+ - 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.
56
+ - Si necesita más de 1 minuto, duplique el Espacio y cambie el límite en app.py.
57
+ - Si marca incorrectamente la opción 'El video tiene un primer plano del rostro', el doblaje puede no funcionar como se espera.
58
+ """)
59
+
60
+
61
+ demo.queue
62
+ demo.launch()