Files
viralfactory/src/chore/GenerationContext.py

39 lines
1.2 KiB
Python
Raw Normal View History

import moviepy
import time
import os
from .. import engines
from ..utils.prompting import get_prompt
2024-02-15 17:48:47 +01:00
class GenerationContext:
def __init__(
self, powerfulllmengine, simplellmengine, scriptengine, ttsengine
) -> None:
self.powerfulllmengine: engines.LLMEngine.BaseLLMEngine = powerfulllmengine
self.powerfulllmengine.ctx = self
2024-02-15 17:48:47 +01:00
self.simplellmengine: engines.LLMEngine.BaseLLMEngine = simplellmengine
self.simplellmengine.ctx = self
2024-02-15 17:48:47 +01:00
self.scriptengine: engines.ScriptEngine.BaseScriptEngine = scriptengine
self.scriptengine.ctx = self
2024-02-15 17:48:47 +01:00
self.ttsengine: engines.TTSEngine.BaseTTSEngine = ttsengine
self.ttsengine.ctx = self
2024-02-15 17:48:47 +01:00
def setup_dir(self):
self.dir = f"output/{time.time()}"
os.makedirs(self.dir)
def get_file_path(self, name: str) -> str:
return os.path.join(self.dir, name)
def process(self):
2024-02-15 17:48:47 +01:00
# IMPORTANT NOTE: All methods called here are expected to be defined as abstract methods in the base classes, if not there is an issue with the engine implementation.
self.setup_dir()
script = self.scriptengine.generate()
timed_script = self.ttsengine.synthesize(script, self.get_file_path("tts.wav"))