dmsouza commited on
Commit
f493431
·
verified ·
1 Parent(s): 1550b24

Update app.py

Browse files

# app_multimodal.py
import gradio as gr
from transformers import pipeline
from moviepy.editor import VideoFileClip, AudioFileClip

# --- Inicializa os modelos ---
tts_model = pipeline(
"text-to-speech",
model="espnet/kan-bayashi_ljspeech_tts_train_conformer_fastspeech2"
)

video_model = pipeline(
"text-to-video",
model="Wan-AI/Wan2.2-T2V-A14B"
)

# --- Função principal ---
def gerar_video_audio(prompt):
# 1. Gera áudio
audio_out = tts_model(prompt)
audio_path = "audio.wav"
with open(audio_path, "wb") as f:
f.write(audio_out["audio"])

# 2. Gera vídeo
video_out = video_model(prompt, max_length=60) # gera até 60 segundos
video_path = "video.mp4"
video_out[0].save(video_path) # salva o vídeo gerado

# 3. Combina áudio e vídeo
video_clip = VideoFileClip(video_path)
audio_clip = AudioFileClip(audio_path)
final_clip = video_clip.set_audio(audio_clip)
final_path = "video_final.mp4"
final_clip.write_videofile(final_path, codec="libx264", audio_codec="aac")

return final_path

# --- Interface Gradio ---
demo = gr.Interface(
fn=gerar_video_audio,
inputs=gr.Textbox(lines=2, placeholder="Digite o texto para gerar vídeo e áudio..."),
outputs=gr.Video(label="Vídeo com Áudio"),
title="Gerador Multimodal de Vídeo + Áudio",
description="Digite um texto e receba um vídeo com a voz gerada pelo modelo TTS."
)

# Lançar a interface
demo.launch()

Files changed (1) hide show
  1. app.py +10 -33
app.py CHANGED
@@ -1,38 +1,14 @@
 
1
  import gradio as gr
2
  from transformers import pipeline
3
-
4
- # Função que gera áudio a partir do texto
5
- def gerar_audio(texto):
6
- # Carrega o modelo de TTS do Hugging Face
7
- tts = pipeline("text-to-speech", model="espnet/kan-bayashi_ljspeech_tts_train_conformer_fastspeech2")
8
-
9
- # Gera o áudio
10
- audio = tts(texto)
11
-
12
- # Retorna o áudio para Gradio
13
- return audio["audio"]
14
-
15
- # Interface Gradio
16
- demo = gr.Interface(
17
- fn=gerar_audio,
18
- inputs=gr.Textbox(lines=2, placeholder="Digite o texto aqui..."),
19
- outputs=gr.Audio(label="Áudio Gerado"),
20
- title="Gerador de Áudio AI",
21
- description="Digite um texto e o modelo transforma em fala (áudio)."
22
- )
23
-
24
- # Lança a interface
25
- demo.launch()
26
- # app.py
27
- import gradio as gr
28
- from transformers import pipeline
29
- from moviepy.editor import VideoFileClip, AudioFileClip, CompositeVideoClip
30
 
31
  # --- Inicializa os modelos ---
32
  tts_model = pipeline(
33
  "text-to-speech",
34
  model="espnet/kan-bayashi_ljspeech_tts_train_conformer_fastspeech2"
35
  )
 
36
  video_model = pipeline(
37
  "text-to-video",
38
  model="Wan-AI/Wan2.2-T2V-A14B"
@@ -45,19 +21,19 @@ def gerar_video_audio(prompt):
45
  audio_path = "audio.wav"
46
  with open(audio_path, "wb") as f:
47
  f.write(audio_out["audio"])
48
-
49
  # 2. Gera vídeo
50
- video_out = video_model(prompt, max_length=60)
51
  video_path = "video.mp4"
52
  video_out[0].save(video_path) # salva o vídeo gerado
53
-
54
  # 3. Combina áudio e vídeo
55
  video_clip = VideoFileClip(video_path)
56
  audio_clip = AudioFileClip(audio_path)
57
  final_clip = video_clip.set_audio(audio_clip)
58
- final_path = "final_video.mp4"
59
  final_clip.write_videofile(final_path, codec="libx264", audio_codec="aac")
60
-
61
  return final_path
62
 
63
  # --- Interface Gradio ---
@@ -69,4 +45,5 @@ demo = gr.Interface(
69
  description="Digite um texto e receba um vídeo com a voz gerada pelo modelo TTS."
70
  )
71
 
72
- demo.launch()
 
 
1
+ # app_multimodal.py
2
  import gradio as gr
3
  from transformers import pipeline
4
+ from moviepy.editor import VideoFileClip, AudioFileClip
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
 
6
  # --- Inicializa os modelos ---
7
  tts_model = pipeline(
8
  "text-to-speech",
9
  model="espnet/kan-bayashi_ljspeech_tts_train_conformer_fastspeech2"
10
  )
11
+
12
  video_model = pipeline(
13
  "text-to-video",
14
  model="Wan-AI/Wan2.2-T2V-A14B"
 
21
  audio_path = "audio.wav"
22
  with open(audio_path, "wb") as f:
23
  f.write(audio_out["audio"])
24
+
25
  # 2. Gera vídeo
26
+ video_out = video_model(prompt, max_length=60) # gera até 60 segundos
27
  video_path = "video.mp4"
28
  video_out[0].save(video_path) # salva o vídeo gerado
29
+
30
  # 3. Combina áudio e vídeo
31
  video_clip = VideoFileClip(video_path)
32
  audio_clip = AudioFileClip(audio_path)
33
  final_clip = video_clip.set_audio(audio_clip)
34
+ final_path = "video_final.mp4"
35
  final_clip.write_videofile(final_path, codec="libx264", audio_codec="aac")
36
+
37
  return final_path
38
 
39
  # --- Interface Gradio ---
 
45
  description="Digite um texto e receba um vídeo com a voz gerada pelo modelo TTS."
46
  )
47
 
48
+ # Lançar a interface
49
+ demo.launch()