artificialguybr's picture
Update app.py
b91eb13 verified
raw
history blame contribute delete
No virus
2.73 kB
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", "Espanhol", "Francês", "Alemão", "Italiano", "Português", "Polonês", "Turco", "Russo", "Holandês", "Tcheco", "Árabe", "Chinês (Simplificado)"], label="Idioma de Destino para Dublagem", value="Espanhol")
checkbox = gr.Checkbox(label="O vídeo possui um close-up do rosto. Use o Wav2lip.", value=False)
# Interface Gradio
iface = gr.Interface(
fn=process_video,
inputs=[radio, video, dropdown, checkbox],
outputs=gr.Video(),
live=False,
title="Dublagem de Vídeo com AI",
description="Esta ferramenta foi desenvolvida por [@artificialguybr](https://twitter.com/artificialguybr) utilizando exclusivamente ferramentas de código aberto. Um agradecimento especial à Hugging Face pelo suporte de GPU. Agradecimentos a [@yeswondwer](https://twitter.com/@yeswondwerr) pelo código original. Teste o espaço [Video Transcription and Translate](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:**
- O limite de vídeo é de 1 minuto. Ele dublará todas as pessoas usando apenas uma voz.
- A geração pode levar até 5 minutos.
- Ao usar este demo, você concorda com os termos da Licença de Modelo Público Coqui em https://coqui.ai/cpml
- A ferramenta utiliza modelos de código aberto para todos os modelos. É uma versão alpha.
- A qualidade pode ser melhorada, mas exigiria mais tempo de processamento por vídeo. Para escalabilidade e limitações de hardware, a velocidade foi escolhida, não apenas a qualidade.
- Se você precisar de mais de 1 minuto, duplique o Espaço e altere o limite em app.py.
- Se você marcar incorretamente a opção 'O vídeo tem um close-up do rosto', a dublagem pode não funcionar como esperado.
""")
demo.queue
demo.launch()