added an adapter
Browse files
App/Generate/database/ElevenLab.py
CHANGED
@@ -3,6 +3,25 @@ import asyncio
|
|
3 |
import os
|
4 |
import uuid
|
5 |
import tempfile
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
|
7 |
|
8 |
class ElevenLab:
|
@@ -754,8 +773,17 @@ class ElevenLab:
|
|
754 |
"align/url",
|
755 |
json=data,
|
756 |
)
|
|
|
|
|
|
|
757 |
return response_data
|
758 |
|
|
|
|
|
|
|
|
|
|
|
|
|
759 |
async def aligner(
|
760 |
self,
|
761 |
method,
|
|
|
3 |
import os
|
4 |
import uuid
|
5 |
import tempfile
|
6 |
+
from typing import List, Dict, Any
|
7 |
+
|
8 |
+
from pydantic import BaseModel
|
9 |
+
|
10 |
+
|
11 |
+
class AlignmentData(BaseModel):
|
12 |
+
text: str
|
13 |
+
start: float
|
14 |
+
end: float
|
15 |
+
hasFailedAlignment: bool
|
16 |
+
|
17 |
+
def to_dict(self) -> dict:
|
18 |
+
return {
|
19 |
+
"word": self.text,
|
20 |
+
"alignedWord": self.text,
|
21 |
+
"startTime": self.start,
|
22 |
+
"endTime": self.end,
|
23 |
+
"hasFailedAlignment": self.hasFailedAlignment,
|
24 |
+
}
|
25 |
|
26 |
|
27 |
class ElevenLab:
|
|
|
773 |
"align/url",
|
774 |
json=data,
|
775 |
)
|
776 |
+
response_data = self.process_alignments(
|
777 |
+
data=response_data["alignment"], offset=0
|
778 |
+
)
|
779 |
return response_data
|
780 |
|
781 |
+
def process_alignments(
|
782 |
+
self, data: List[Dict[str, Any]], offset: float = 0
|
783 |
+
) -> List[Dict[str, Any]]:
|
784 |
+
alignments = [AlignmentData(**item) for item in data]
|
785 |
+
return [alignment.to_dict(offset) for alignment in alignments]
|
786 |
+
|
787 |
async def aligner(
|
788 |
self,
|
789 |
method,
|