Spaces:
Running
Running
import gradio as gr | |
from pyannote.audio import Pipeline | |
import os | |
# ืืืขื ืืช ื-Token ืืืขืจืืช ืืฉืชื ื ืืกืืืื | |
auth_token = os.getenv("HF_AUTH_TOKEN") | |
# ืืืขื ืืช ืืืืื ืฉื Pyannote ืืืืืื ืืืืจืื ืขื ื-Token | |
pipeline = Pipeline.from_pretrained("pyannote/speaker-diarization", use_auth_token=auth_token) | |
# ืคืื ืงืฆืื ืืืืฆืืข ืืืืื ืืืืจืื | |
def diarize(audio_file): | |
diarization = pipeline(audio_file) | |
segments = [] | |
for turn, _, speaker in diarization.itertracks(yield_label=True): | |
segments.append({ | |
"start": turn.start, | |
"end": turn.end, | |
"speaker": speaker | |
}) | |
return segments | |
# ืืืืจืช ืืืฉืง Gradio | |
interface = gr.Interface( | |
fn=diarize, | |
inputs=gr.Audio(type="filepath"), # ืฉืืืืฉ ืืคืจืืืจ ืืืชืืื ืฉื Gradio | |
outputs="json", | |
description="Upload an audio file to get speaker diarization (timestamps and speaker IDs only)." | |
) | |
# ืืจืฆืช ืืืืฉืง | |
interface.launch() | |