jhj0517 commited on
Commit
6c42d0c
·
1 Parent(s): b88d9c4

Add factory function

Browse files
modules/whisper/data_classes.py CHANGED
@@ -30,6 +30,22 @@ class Segment(BaseModel):
30
  no_speech_prob: Optional[float] = Field(default=None, description="Probability that it's not speech")
31
  words: Optional[List['Word']] = Field(default=None, description="List of words contained in the segment")
32
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
 
34
  class Word(NamedTuple):
35
  start: Optional[float] = None
 
30
  no_speech_prob: Optional[float] = Field(default=None, description="Probability that it's not speech")
31
  words: Optional[List['Word']] = Field(default=None, description="List of words contained in the segment")
32
 
33
+ @classmethod
34
+ def from_faster_whisper(cls,
35
+ seg: faster_whisper.transcribe.Segment):
36
+ return cls(
37
+ id=seg.id,
38
+ text=seg.text,
39
+ start=seg.start,
40
+ end=seg.end,
41
+ tokens=seg.tokens,
42
+ temperature=seg.temperature,
43
+ avg_logprob=seg.avg_logprob,
44
+ compression_ratio=seg.compression_ratio,
45
+ no_speech_prob=seg.no_speech_prob,
46
+ words=seg.words
47
+ )
48
+
49
 
50
  class Word(NamedTuple):
51
  start: Optional[float] = None
modules/whisper/faster_whisper_inference.py CHANGED
@@ -102,11 +102,7 @@ class FasterWhisperInference(BaseTranscriptionPipeline):
102
  segments_result = []
103
  for segment in segments:
104
  progress(segment.start / info.duration, desc="Transcribing..")
105
- segments_result.append(Segment(
106
- start=segment.start,
107
- end=segment.end,
108
- text=segment.text
109
- ))
110
 
111
  elapsed_time = time.time() - start_time
112
  return segments_result, elapsed_time
 
102
  segments_result = []
103
  for segment in segments:
104
  progress(segment.start / info.duration, desc="Transcribing..")
105
+ segments_result.append(Segment.from_faster_whisper(segment))
 
 
 
 
106
 
107
  elapsed_time = time.time() - start_time
108
  return segments_result, elapsed_time