Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
import gradio as gr
|
2 |
from transformers import pipeline
|
3 |
import pyttsx3
|
4 |
-
from
|
5 |
from pydub import AudioSegment
|
6 |
import os
|
7 |
|
@@ -20,20 +20,18 @@ def text_to_speech(script, output_audio_file="script_audio.mp3"):
|
|
20 |
engine.runAndWait()
|
21 |
return output_audio_file
|
22 |
|
23 |
-
# Function to generate animated video using
|
24 |
def generate_animation(script, output_video_file="animated_script.mp4"):
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
return os.path.join(config.media_dir, "videos", output_video_file)
|
37 |
|
38 |
# Function to generate simple music (for kids content)
|
39 |
def generate_kids_music(theme, output_music_file="kids_music.wav"):
|
@@ -46,21 +44,15 @@ def generate_kids_music(theme, output_music_file="kids_music.wav"):
|
|
46 |
music.export(output_music_file, format="wav")
|
47 |
return output_music_file
|
48 |
|
49 |
-
# Function to combine kids music with
|
50 |
def generate_kids_animation_with_music(theme, output_video_file="kids_animation.mp4"):
|
51 |
# Step 1: Generate kids music
|
52 |
music_file = generate_kids_music(theme)
|
53 |
|
54 |
# Step 2: Generate simple animation for the music (using text animation as a placeholder)
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
self.play(Write(music_text))
|
59 |
-
|
60 |
-
config.media_dir = "./media"
|
61 |
-
config.output_file = output_video_file
|
62 |
-
animation = KidsMusicAnimation()
|
63 |
-
animation.render()
|
64 |
|
65 |
return output_video_file, music_file
|
66 |
|
@@ -109,3 +101,4 @@ with gr.Blocks() as app:
|
|
109 |
app.launch()
|
110 |
|
111 |
|
|
|
|
1 |
import gradio as gr
|
2 |
from transformers import pipeline
|
3 |
import pyttsx3
|
4 |
+
from moviepy.editor import TextClip, CompositeVideoClip, concatenate_videoclips
|
5 |
from pydub import AudioSegment
|
6 |
import os
|
7 |
|
|
|
20 |
engine.runAndWait()
|
21 |
return output_audio_file
|
22 |
|
23 |
+
# Function to generate simple animated text video using MoviePy
|
24 |
def generate_animation(script, output_video_file="animated_script.mp4"):
|
25 |
+
clips = []
|
26 |
+
for i, line in enumerate(script.split('. ')):
|
27 |
+
text_clip = TextClip(line, fontsize=40, color='white', size=(800, 400), bg_color='black', method='caption')
|
28 |
+
text_clip = text_clip.set_duration(3) # Each line lasts 3 seconds
|
29 |
+
clips.append(text_clip)
|
30 |
+
|
31 |
+
video = concatenate_videoclips(clips)
|
32 |
+
video.write_videofile(output_video_file, fps=24)
|
33 |
+
|
34 |
+
return output_video_file
|
|
|
|
|
35 |
|
36 |
# Function to generate simple music (for kids content)
|
37 |
def generate_kids_music(theme, output_music_file="kids_music.wav"):
|
|
|
44 |
music.export(output_music_file, format="wav")
|
45 |
return output_music_file
|
46 |
|
47 |
+
# Function to combine kids music with a simple animation
|
48 |
def generate_kids_animation_with_music(theme, output_video_file="kids_animation.mp4"):
|
49 |
# Step 1: Generate kids music
|
50 |
music_file = generate_kids_music(theme)
|
51 |
|
52 |
# Step 2: Generate simple animation for the music (using text animation as a placeholder)
|
53 |
+
clips = [TextClip("Kids Music: " + theme, fontsize=70, color='yellow', size=(800, 400), bg_color='blue', method='caption').set_duration(5)]
|
54 |
+
video = CompositeVideoClip(clips)
|
55 |
+
video.write_videofile(output_video_file, fps=24)
|
|
|
|
|
|
|
|
|
|
|
|
|
56 |
|
57 |
return output_video_file, music_file
|
58 |
|
|
|
101 |
app.launch()
|
102 |
|
103 |
|
104 |
+
|