Load audio as waveform dict for pyannote (torchcodec unavailable on ROCm)
This commit is contained in:
@@ -25,8 +25,19 @@ def get_diarization_pipeline() -> Pipeline:
|
||||
|
||||
|
||||
def diarize(audio_path: str) -> list[dict]:
|
||||
import torch
|
||||
import soundfile as sf
|
||||
|
||||
pipeline = get_diarization_pipeline()
|
||||
diarization = pipeline(audio_path)
|
||||
|
||||
waveform, sample_rate = sf.read(audio_path, dtype="float32")
|
||||
if waveform.ndim > 1:
|
||||
waveform = waveform.mean(axis=1)
|
||||
audio_input = {
|
||||
"waveform": torch.from_numpy(waveform).unsqueeze(0),
|
||||
"sample_rate": sample_rate,
|
||||
}
|
||||
diarization = pipeline(audio_input)
|
||||
|
||||
segments = []
|
||||
for turn, _, speaker in diarization.itertracks(yield_label=True):
|
||||
|
||||
Reference in New Issue
Block a user