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,
|