Spaces:
Running
Running
jhj0517
commited on
Commit
·
d8a7425
1
Parent(s):
500f983
Wrap Word data class
Browse files
modules/whisper/data_classes.py
CHANGED
@@ -29,11 +29,23 @@ class Segment(BaseModel):
|
|
29 |
avg_logprob: Optional[float] = Field(default=None, description="Average log probability of the tokens")
|
30 |
compression_ratio: Optional[float] = Field(default=None, description="Compression ratio of the segment")
|
31 |
no_speech_prob: Optional[float] = Field(default=None, description="Probability that it's not speech")
|
32 |
-
words: Optional[List['Word']] = Field(default=
|
33 |
|
34 |
@classmethod
|
35 |
def from_faster_whisper(cls,
|
36 |
seg: faster_whisper.transcribe.Segment):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
return cls(
|
38 |
id=seg.id,
|
39 |
seek=seg.seek,
|
@@ -45,15 +57,15 @@ class Segment(BaseModel):
|
|
45 |
avg_logprob=seg.avg_logprob,
|
46 |
compression_ratio=seg.compression_ratio,
|
47 |
no_speech_prob=seg.no_speech_prob,
|
48 |
-
words=
|
49 |
)
|
50 |
|
51 |
|
52 |
-
class Word(
|
53 |
-
start: Optional[float] = None
|
54 |
-
end: Optional[float] = None
|
55 |
-
word: Optional[str] = None
|
56 |
-
probability: Optional[float] = None
|
57 |
|
58 |
|
59 |
class BaseParams(BaseModel):
|
|
|
29 |
avg_logprob: Optional[float] = Field(default=None, description="Average log probability of the tokens")
|
30 |
compression_ratio: Optional[float] = Field(default=None, description="Compression ratio of the segment")
|
31 |
no_speech_prob: Optional[float] = Field(default=None, description="Probability that it's not speech")
|
32 |
+
words: Optional[List['Word']] = Field(default=None, description="List of words contained in the segment")
|
33 |
|
34 |
@classmethod
|
35 |
def from_faster_whisper(cls,
|
36 |
seg: faster_whisper.transcribe.Segment):
|
37 |
+
if seg.words is not None:
|
38 |
+
words = [
|
39 |
+
Word(
|
40 |
+
start=w.start,
|
41 |
+
end=w.end,
|
42 |
+
word=w.word,
|
43 |
+
probability=w.probability
|
44 |
+
) for w in seg.words
|
45 |
+
]
|
46 |
+
else:
|
47 |
+
words = None
|
48 |
+
|
49 |
return cls(
|
50 |
id=seg.id,
|
51 |
seek=seg.seek,
|
|
|
57 |
avg_logprob=seg.avg_logprob,
|
58 |
compression_ratio=seg.compression_ratio,
|
59 |
no_speech_prob=seg.no_speech_prob,
|
60 |
+
words=words
|
61 |
)
|
62 |
|
63 |
|
64 |
+
class Word(BaseModel):
|
65 |
+
start: Optional[float] = Field(default=None, description="Start time of the word")
|
66 |
+
end: Optional[float] = Field(default=None, description="Start time of the word")
|
67 |
+
word: Optional[str] = Field(default=None, description="Word text")
|
68 |
+
probability: Optional[float] = Field(default=None, description="Probability of the word")
|
69 |
|
70 |
|
71 |
class BaseParams(BaseModel):
|