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]:
|
def diarize(audio_path: str) -> list[dict]:
|
||||||
|
import torch
|
||||||
|
import soundfile as sf
|
||||||
|
|
||||||
pipeline = get_diarization_pipeline()
|
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 = []
|
segments = []
|
||||||
for turn, _, speaker in diarization.itertracks(yield_label=True):
|
for turn, _, speaker in diarization.itertracks(yield_label=True):
|
||||||
|
|||||||
Reference in New Issue
Block a user