File size: 1,073 Bytes
9ef21f1
 
 
 
 
f81fa21
9ef21f1
 
f81fa21
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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)