ankitranjan52 commited on
Commit
04bcaa1
·
verified ·
1 Parent(s): ce2d47f

Create asr_diarization.py

Browse files
Files changed (1) hide show
  1. pipeline/asr_diarization.py +25 -0
pipeline/asr_diarization.py ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import whisperx
2
+
3
+ _asr_model = None
4
+ _alignment_model = None
5
+ _metadata = None
6
+
7
+ def load_asr(device="cpu", model_size="medium"):
8
+ global _asr_model
9
+ if _asr_model is None:
10
+ _asr_model = whisperx.load_model(model_size, device=device)
11
+ return _asr_model
12
+
13
+ def transcribe_and_align(audio_path: str, device="cpu"):
14
+ model = load_asr(device=device)
15
+ result = model.transcribe(audio_path, batch_size=16)
16
+
17
+ global _alignment_model, _metadata
18
+ if _alignment_model is None or _metadata is None:
19
+ _alignment_model, _metadata = whisperx.load_align_model(
20
+ language_code=result["language"], device=device
21
+ )
22
+ result_aligned = whisperx.align(
23
+ result["segments"], _alignment_model, _metadata, audio_path
24
+ )
25
+ return result, result_aligned