clement-pages's picture
wip: allow to use any pyannote pipeline
f0061fc
raw
history blame
846 Bytes
import gradio as gr
from pyannote_viewer import PyannoteViewer
from pyannote.audio import Pipeline
import os
def apply_pipeline(audio: str) -> tuple:
# pipeline = Pipeline.from_pretrained(
# "pyannote/speech-separation-ami-1.0", use_auth_token=os.environ["HF_TOKEN"]
# )
pipeline = Pipeline.from_pretrained(
"pyannote/speaker-diarization-3.1", use_auth_token=os.environ["HF_TOKEN"]
)
outputs = pipeline(audio)
if isinstance(outputs, tuple):
return outputs
else:
return (outputs, audio)
with gr.Blocks() as demo:
audio = gr.Audio(type="filepath")
btn = gr.Button("Apply separation pipeline")
pyannote_viewer = PyannoteViewer(interactive=False)
btn.click(fn=apply_pipeline, inputs=[audio], outputs=[pyannote_viewer])
if __name__ == "__main__":
demo.launch()