Mbonea commited on
Commit
61a58c3
·
1 Parent(s): 429ce67

individual then add offset method

Browse files
Files changed (1) hide show
  1. App/Generate/database/Model.py +25 -13
App/Generate/database/Model.py CHANGED
@@ -23,18 +23,18 @@ class WordAlignment(BaseModel):
23
  hasFailedAlignment: bool
24
 
25
  @classmethod
26
- def from_old_format(cls, data: dict):
27
  return cls(
28
  text=data["word"],
29
  alignedWord=data["alignedWord"],
30
- start=data["startTime"],
31
- end=data["endTime"],
32
  hasFailedAlignment=data["hasFailedAlignment"],
33
  )
34
 
35
 
36
- def transform_alignment_data(data: List[dict]) -> List[dict]:
37
- return [WordAlignment.from_old_format(item).model_dump() for item in data]
38
 
39
 
40
  class Project(orm.Model):
@@ -62,6 +62,7 @@ class Project(orm.Model):
62
  image_assets = []
63
  video_assets = []
64
  audio_assets = []
 
65
 
66
  transitions = [
67
  # "WaveRight_transparent.webm",
@@ -104,6 +105,10 @@ class Project(orm.Model):
104
  }
105
  )
106
 
 
 
 
 
107
  ## images and transitions
108
  for image in scene.images:
109
  file_name = str(uuid.uuid4()) + ".png"
@@ -144,14 +149,15 @@ class Project(orm.Model):
144
  "height": 1920,
145
  "width": 1080,
146
  }
147
- try:
148
- text_stream = await self.generate_transcript()
149
- print(text_stream)
150
- self.assets.append({"type": "text", "sequence": text_stream})
 
151
 
152
- except Exception as e:
153
- print(f"Text sequence failed, {e}")
154
- pass
155
 
156
  await self.update(**self.__dict__)
157
  return {"links": self.links, "assets": self.assets, "constants": self.constants}
@@ -167,7 +173,7 @@ class Project(orm.Model):
167
  links.append(narration.narration_link)
168
 
169
  transcript = await narration.tts._make_transcript(links=links, text=text)
170
- transcript = transform_alignment_data(transcript)
171
  return transcript
172
 
173
 
@@ -191,6 +197,12 @@ class Scene(orm.Model):
191
  "narration_link": orm.String(max_length=10_000, allow_null=True, default=""),
192
  }
193
 
 
 
 
 
 
 
194
  async def generate_scene_data(self):
195
  # Run narrate() and generate_images() concurrently
196
  await asyncio.gather(self.narrate(), self.generate_images())
 
23
  hasFailedAlignment: bool
24
 
25
  @classmethod
26
+ def from_old_format(cls, data: dict, offset: float = 0.0):
27
  return cls(
28
  text=data["word"],
29
  alignedWord=data["alignedWord"],
30
+ start=data["startTime"] + offset,
31
+ end=data["endTime"] + offset,
32
  hasFailedAlignment=data["hasFailedAlignment"],
33
  )
34
 
35
 
36
+ def transform_alignment_data(data: List[dict], offset: float = 0.0) -> List[dict]:
37
+ return [WordAlignment.from_old_format(item, offset).model_dump() for item in data]
38
 
39
 
40
  class Project(orm.Model):
 
62
  image_assets = []
63
  video_assets = []
64
  audio_assets = []
65
+ text_stream = []
66
 
67
  transitions = [
68
  # "WaveRight_transparent.webm",
 
105
  }
106
  )
107
 
108
+ # generate transcripts
109
+ temp = await scene.generate_scene_transcript(offset=self.start)
110
+ text_stream.extend(temp)
111
+
112
  ## images and transitions
113
  for image in scene.images:
114
  file_name = str(uuid.uuid4()) + ".png"
 
149
  "height": 1920,
150
  "width": 1080,
151
  }
152
+ self.assets.append({"type": "text", "sequence": text_stream})
153
+ # try:
154
+ # text_stream = await self.generate_transcript()
155
+ # print(text_stream)
156
+ # self.assets.append({"type": "text", "sequence": text_stream})
157
 
158
+ # except Exception as e:
159
+ # print(f"Text sequence failed, {e}")
160
+ # pass
161
 
162
  await self.update(**self.__dict__)
163
  return {"links": self.links, "assets": self.assets, "constants": self.constants}
 
173
  links.append(narration.narration_link)
174
 
175
  transcript = await narration.tts._make_transcript(links=links, text=text)
176
+ # transcript = transform_alignment_data(transcript)
177
  return transcript
178
 
179
 
 
197
  "narration_link": orm.String(max_length=10_000, allow_null=True, default=""),
198
  }
199
 
200
+ async def generate_scene_transcript(self, offset):
201
+ links = [self.narration_link]
202
+ text = self.narration
203
+ transcript = await self.tts._make_transcript(links=links, text=text)
204
+ return transform_alignment_data(data=transcript, offset=offset)
205
+
206
  async def generate_scene_data(self):
207
  # Run narrate() and generate_images() concurrently
208
  await asyncio.gather(self.narrate(), self.generate_images())