File size: 2,468 Bytes
b5a064f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
76
77
78
79
80
import gradio as gr

from modules.separate import separate_audio
from modules.ui import Tab


class Split(Tab):
    def title(self):
        return "Split Audio"

    def sort(self):
        return 5

    def ui(self, outlet):
        def separate(
            input_audio,
            output_dir,
            silence_thresh,
            min_silence_len,
            keep_silence,
            margin,
            padding,
            min,
            max,
        ):
            min = None if min == 0 else min
            max = None if max == 0 else max
            separate_audio(
                input_audio,
                output_dir,
                int(silence_thresh),
                int(min_silence_len),
                int(keep_silence),
                int(margin),
                padding,
                int(min),
                int(max),
            )
            return "Success"

        with gr.Group():
            with gr.Column():
                with gr.Row(equal_height=False):
                    input_audio = gr.Textbox(label="Input Audio (File or Directory)")
                    output_dir = gr.Textbox(label="Output Directory")

                with gr.Row(equal_height=False):
                    silence_thresh = gr.Number(value=-40, label="Silence Threshold")
                    min_silence_len = gr.Number(
                        value=750, label="Minimum Silence Length"
                    )
                    keep_silence = gr.Number(value=750, label="Keep Silence")
                    margin = gr.Number(value=0, label="Margin")
                    padding = gr.Checkbox(value=True, label="Padding")

                with gr.Row(equal_height=False):
                    min = gr.Number(value=1000, label="Minimum audio length")
                    max = gr.Number(value=5000, label="Maximum audio length")

                with gr.Row(equal_height=False):
                    status = gr.Textbox(value="", label="Status")
                with gr.Row(equal_height=False):
                    separate_button = gr.Button("Separate", variant="primary")

        separate_button.click(
            separate,
            inputs=[
                input_audio,
                output_dir,
                silence_thresh,
                min_silence_len,
                keep_silence,
                margin,
                padding,
                min,
                max,
            ],
            outputs=[status],
        )