fix: handle pyannote 4.x DiarizeOutput wrapper in diarize()
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+3
-1
@@ -20,7 +20,9 @@ class Diarizer:
|
||||
async def diarize(self, wav_path: str) -> list[tuple[float, float, str]]:
|
||||
loop = asyncio.get_running_loop()
|
||||
pipeline = await loop.run_in_executor(None, self._load_pipeline)
|
||||
annotation = await loop.run_in_executor(None, lambda: pipeline(wav_path))
|
||||
result = await loop.run_in_executor(None, lambda: pipeline(wav_path))
|
||||
# pyannote 4.x returns DiarizeOutput; older versions return Annotation directly
|
||||
annotation = getattr(result, "speaker_diarization", result)
|
||||
return [
|
||||
(turn.start, turn.end, speaker)
|
||||
for turn, _, speaker in annotation.itertracks(yield_label=True)
|
||||
|
||||
Reference in New Issue
Block a user