Manasa1 commited on
Commit
7d90627
·
verified ·
1 Parent(s): 889ac43

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -6
app.py CHANGED
@@ -1,11 +1,13 @@
1
  import gradio as gr
2
  from transformers import pipeline
3
  from gtts import gTTS
4
- from moviepy.editor import TextClip, CompositeVideoClip, concatenate_videoclips
 
5
  import numpy as np
6
  from scipy.io.wavfile import write
7
  from pydub import AudioSegment
8
 
 
9
  script_generator = pipeline("text-generation", model="gpt2", truncation=True, max_length=100)
10
 
11
 
@@ -29,14 +31,19 @@ def generate_animation(script):
29
  texts = [item['generated_text'] for item in script if isinstance(item, dict) and 'generated_text' in item]
30
  script = " ".join(texts)
31
 
32
- lines = script.split('. ') # Changed to splitting on periods for better line segmentation
33
  clips = []
34
  for line in lines:
35
- text_clip = TextClip(line, fontsize=40, color='white', size=(800, 400), method='label') # Changed method to 'label'
36
- text_clip = text_clip.set_duration(3)
37
- clips.append(text_clip)
 
 
 
38
  final_video = concatenate_videoclips(clips, method="compose")
39
- return final_video
 
 
40
 
41
 
42
  def generate_sine_wave(frequency, duration, sample_rate=44100, amplitude=0.5):
 
1
  import gradio as gr
2
  from transformers import pipeline
3
  from gtts import gTTS
4
+ from PIL import Image, ImageDraw, ImageFont
5
+ from moviepy.editor import CompositeVideoClip, concatenate_videoclips, ImageClip
6
  import numpy as np
7
  from scipy.io.wavfile import write
8
  from pydub import AudioSegment
9
 
10
+
11
  script_generator = pipeline("text-generation", model="gpt2", truncation=True, max_length=100)
12
 
13
 
 
31
  texts = [item['generated_text'] for item in script if isinstance(item, dict) and 'generated_text' in item]
32
  script = " ".join(texts)
33
 
34
+ lines = script.split('. ')
35
  clips = []
36
  for line in lines:
37
+ img = Image.new('RGB', (800, 400), color=(0, 0, 0))
38
+ d = ImageDraw.Draw(img)
39
+ fnt = ImageFont.load_default()
40
+ d.text((10, 180), line, font=fnt, fill=(255, 255, 255))
41
+ img.save('/tmp/temp.png')
42
+ clips.append(ImageClip('/tmp/temp.png').set_duration(3))
43
  final_video = concatenate_videoclips(clips, method="compose")
44
+ final_video.write_videofile("/tmp/final_video.mp4", fps=24)
45
+ return "/tmp/final_video.mp4"
46
+
47
 
48
 
49
  def generate_sine_wave(frequency, duration, sample_rate=44100, amplitude=0.5):