Manasa1 commited on
Commit
ad7dc96
·
verified ·
1 Parent(s): b1c41d9

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +17 -24
app.py CHANGED
@@ -1,7 +1,7 @@
1
  import gradio as gr
2
  from transformers import pipeline
3
  import pyttsx3
4
- from manim import Scene, Text, Write, config
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 Manim (for comedy script)
24
  def generate_animation(script, output_video_file="animated_script.mp4"):
25
- class ScriptAnimation(Scene):
26
- def construct(self):
27
- # Create a text object and animate it
28
- script_text = Text(script[:200]) # Limited text for simplicity
29
- self.play(Write(script_text))
30
-
31
- config.media_dir = "./media"
32
- config.output_file = output_video_file
33
- animation = ScriptAnimation()
34
- animation.render()
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 an animation
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
- class KidsMusicAnimation(Scene):
56
- def construct(self):
57
- music_text = Text("Kids Music: " + theme)
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
+