gouda-a / utils.py
Mostafatremox's picture
Upload 5 files
ecc51ef verified
from gtts import gTTS
from PIL import Image, ImageDraw, ImageFont
import moviepy.editor as mpy
def process_text(text):
lines = text.strip().split("\n")
dialogue = []
for line in lines:
if ":" in line:
name, speech = line.split(":", 1)
dialogue.append((name.strip(), speech.strip()))
return dialogue
def generate_audio(text):
tts = gTTS(text=text, lang='ar')
path = "/tmp/audio.mp3"
tts.save(path)
return path
def generate_image(text):
img = Image.new('RGB', (1280, 720), color=(255, 255, 255))
d = ImageDraw.Draw(img)
fnt = ImageFont.load_default()
d.text((10, 10), text, font=fnt, fill=(0, 0, 0))
path = "/tmp/image.png"
img.save(path)
return path
def generate_video(text, avatars):
clips = []
for name, speech in process_text(text):
img = Image.new('RGB', (1280, 720), color=(0, 0, 0))
d = ImageDraw.Draw(img)
d.text((20, 650), f"{name}: {speech}", fill=(255, 255, 255))
# إضافة العلامة المائية
logo = "mostafa gouda"
d.text((1000, 690), logo, fill=(180, 180, 180))
frame = "/tmp/frame.png"
img.save(frame)
clip = mpy.ImageClip(frame).set_duration(3)
clips.append(clip)
final = mpy.concatenate_videoclips(clips)
path = "/tmp/final.mp4"
final.write_videofile(path, fps=24)
return path