Delik's picture
Update app.py
76efec6 verified
raw
history blame
1.06 kB
import gradio as gr
import os
import torch
import io
from pyannote.audio import Pipeline
from pyannote.audio import Audio
from pyannote.audio.pipelines.utils.hook import TimingHook
from pyannote.core import Segment
pipeline = Pipeline.from_pretrained(
"pyannote/speaker-diarization-3.1",
use_auth_token=os.environ['api'])
def process_audio(audio_file):
# Save the uploaded audio file to a temporary location
temp_file = "temp_audio.wav"
with open(temp_file, "wb") as f:
f.write(audio_file.read())
# Use the diarization pipeline to process the audio file
diarization = pipeline(temp_file)
# Remove the temporary file
os.remove(temp_file)
# Return the diarization output
return diarization
with gr.Blocks() as demo:
audio_input = gr.File(label="Upload Audio", file_types=["audio"])
process_button = gr.Button("Process")
diarization_output = gr.JSON(label="Diarization Output")
process_button.click(fn=process_audio, inputs=audio_input, outputs=diarization_output)
demo.launch()