ZeeAI1's picture
Update app.py
f81fa21 verified
raw
history blame
1.07 kB
import streamlit as st
from moviepy.editor import *
from TTS.api import TTS
import tempfile, os
st.title("Simple Text-to-Video App")
@st.cache_resource()
def load_tts():
return TTS("tts_models/en/ljspeech/tacotron2-DDC", progress_bar=False)
tts_model = load_tts()
input_text = st.text_area("Enter very short text (max 100 chars):", max_chars=100)
if st.button("Generate Simple Video") and input_text:
with st.spinner("Generating..."):
# Audio Only (no cloning, fast)
audio_filename = tempfile.mktemp(".wav")
tts_model.tts_to_file(text=input_text, file_path=audio_filename)
# Single static image as video (for demonstration)
img_clip = ColorClip(size=(320, 240), color=(0, 0, 255)).set_duration(5)
audio_clip = AudioFileClip(audio_filename)
final_clip = img_clip.set_audio(audio_clip)
final_video_path = tempfile.mktemp(".mp4")
final_clip.write_videofile(final_video_path, fps=5)
st.video(final_video_path)
os.remove(audio_filename)
os.remove(final_video_path)