Spaces:
Running
Running
from moviepy.editor import TextClip, AudioFileClip, CompositeVideoClip | |
import torch | |
import torchaudio | |
from TTS.api import TTS | |
# Initialize AI Text-to-Speech (Coqui TTS) | |
tts_model = TTS("tts_models/en/ljspeech/glow-tts").to("cpu") | |
vocoder = "vocoders/en/ljspeech/hifigan_v2" | |
def generate_speech(text): | |
"""Convert text to AI-generated speech using Coqui TTS.""" | |
audio_path = "output_audio.wav" | |
tts_model.tts_to_file(text=text, file_path=audio_path, speaker_wav=None, vocoder_path=vocoder) | |
return audio_path | |
def create_video(text, audio_path): | |
"""Generate a video with text overlay and AI-generated speech.""" | |
audio = AudioFileClip(audio_path) | |
duration = audio.duration | |
# Create text overlay | |
txt_clip = TextClip(text, fontsize=40, color="white", size=(1280, 720)) | |
txt_clip = txt_clip.set_position("center").set_duration(duration) | |
# Combine text with audio | |
video = CompositeVideoClip([txt_clip.set_audio(audio)], size=(1280, 720)) | |
output_video = "output_video.mp4" | |
video.write_videofile(output_video, fps=24, codec="libx264") | |
return output_video | |