Spaces:
				
			
			
	
			
			
		Running
		
			on 
			
			Zero
	
	
	
			
			
	
	
	
	
		
		
		Running
		
			on 
			
			Zero
	File size: 4,567 Bytes
			
			| 8919734 1989564 8919734 1989564 8919734 1989564 8919734 1989564 8919734 1989564 8919734 1989564 8919734 1989564 8919734 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | import gradio as gr
from gryannote_audio import AudioLabeling
from pyannote.audio import Pipeline
import os
def apply_pipeline(audio):
    """Apply specified pipeline on the indicated audio file"""
    pipeline = Pipeline.from_pretrained("pyannote/speaker-diarization-3.1", use_auth_token=os.environ["HF_TOKEN"])
    annotations = pipeline(audio)
    return (audio, annotations)
with gr.Blocks() as demo:
    with gr.Row(equal_height=True):
        with gr.Row():
            with gr.Column(scale=1):
                gr.Markdown(
                    '<a href="https://github.com/clement-pages/gryannote"><img src="https://repository-images.githubusercontent.com/744648524/e841cef0-fbd9-45b0-9bce-536a1822c7b1" alt="gryannote logo" width="220"/></a>',
                )
        with gr.Column(scale=6):
                gr.Markdown('<h1 style="font-size: 3em;">gryannote</h1>')  
                gr.Markdown("<h2>Make the audio labeling process easier and faster! </h2>")
    with gr.Row():
        with gr.Column():
            gr.Markdown(
                "To use the component, start by loading or recording audio."
                "Then apply the diarization pipeline (here [pyannote/speaker-diarization-3.1](https://huggingface.co/pyannote/speaker-diarization-3.1))" 
                "or double-click directly on the waveform. The annotations produced can be edited."
                "You can also use keyboard shortcuts to speed things up!"
            )
            gr.Markdown()
            gr.Markdown()
            gr.Markdown('<img src="https://github.com/clement-pages/gryannote/blob/main/docs/assets/poster-interspeech.jpg?raw=true" alt="gryannote poster"/>')
        with gr.Column():
            audio_labeling = AudioLabeling(
                type="filepath",
                interactive=True,
            )
            gr.Markdown()
            gr.Markdown()
            run_btn = gr.Button("Run pipeline")
            gr.Markdown(
                """| Shortcut                                      | Action                                                                |
                    | --------------------------------------------- | --------------------------------------------------------------------- |
                    | `SPACE`                                       | Toggle play / pause                                                   |
                    | `ENTER`                                       | Create annotation at current time                                     |
                    | `SHIFT + ENTER`                               | Split annotation at current time                                      |
                    | `A`, `B`, `C`, ..., `Z`                       | Set active label. If there is a selected annotation, update its label |
                    | `LEFT` or `RIGHT`                             | Edit start time of selected annotation (if any) or move time cursor   |
                    | `SHIFT + LEFT` or `SHIFT + RIGHT`             | Same, but faster                                                      |
                    |`ALT + LEFT` or `ALT + RIGHT`                  | Edit end time of selected annotation                                  |
                    | `SHIFT + ALT + LEFT` or `SHIFT + ALT + RIGHT` | Same, but faster                                                      |
                    | `TAB`                                         | Select next annotation                                                |
                    | `SHIFT + TAB`                                 | Select previous annotation                                            |
                    |`BACKSPACE`                                    | Delete selected annotation and select the previous one                |
                    |`DELETE` or `SHIFT + BACKSPACE`                | Delete selected region and select the next one                        |
                    |`ESC`                                          | Unselect selected annotation and / or label                           |
                    | `UP` or `DOWN`                                | Zoom in/out                                                           |
                    | `F2`                                          | Open settings for the active label                                    |
                    """
            )
    run_btn.click(
        fn=apply_pipeline,
        inputs=audio_labeling,
        outputs=audio_labeling,
    )
if __name__ == "__main__":
    demo.launch()
 |