File size: 3,499 Bytes
fcf76e3
1327239
 
 
fcf76e3
 
 
 
fa1604c
fcf76e3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6edf721
fcf76e3
b3b0618
fcf76e3
 
67c83ed
fcf76e3
 
 
 
 
 
 
1802a08
fcf76e3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
89fa87b
fcf76e3
 
 
 
 
 
 
 
6edf721
fcf76e3
 
 
 
 
6edf721
 
 
fcf76e3
 
bc5c9d4
e1533ea
fcf76e3
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
import os
os.system("pip install --upgrade httpx")
os.system("pip install --upgrade httpcore")
os.system("pip install --upgrade gradio")
import gradio as gr
import whisper
from convert import main

model = whisper.load_model("base")

def inference(audio):
    audio = whisper.load_audio(audio)
    audio = whisper.pad_or_trim(audio)
    
    mel = whisper.log_mel_spectrogram(audio).to(model.device)
    
    _, probs = model.detect_language(mel)
    
    options = whisper.DecodingOptions(fp16 = False)
    result = whisper.decode(model, mel, options)
    
    print(result.text)
    return result.text

def inference2(url):
    return main(url)


title="Youtube a Texto"

description="Convierte el audio de un vídeo de Youtube a texto."

css = """
        footer {visibility: hidden}
        .gradio-container {
            font-family: 'IBM Plex Sans', sans-serif;
        }
        .gr-button {
            color: white;
            border-color: black;
            background: black;
            text-align: center;
        }
        input[type='range'] {
            accent-color: black;
        }
        .dark input[type='range'] {
            accent-color: #dfdfdf;
        }
        .container {
            max-width: 730px;
            margin: auto;
            padding-top: 1.5rem;
        }
     
        .details:hover {
            text-decoration: underline;
        }
        .gr-button {
            white-space: nowrap;
        }
        .gr-button:focus {
            border-color: rgb(147 197 253 / var(--tw-border-opacity));
            outline: none;
            box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
            --tw-border-opacity: 1;
            --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
            --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px var(--tw-ring-offset-width)) var(--tw-ring-color);
            --tw-ring-color: rgb(191 219 254 / var(--tw-ring-opacity));
            --tw-ring-opacity: .5;
        }
        .footer {
            margin-bottom: 45px;
            margin-top: 35px;
            text-align: center;
            border-bottom: 1px solid #e5e5e5;
        }
        .footer>p {
            font-size: .8rem;
            display: inline-block;
            padding: 0 10px;
            transform: translateY(10px);
            background: white;
        }
        .dark .footer {
            border-color: #303030;
        }
        .dark .footer>p {
            background: #0b0f19;
        }
        .prompt h4{
            margin: 1.25em 0 .25em 0;
            font-weight: bold;
            font-size: 115%;
        }
"""

block = gr.Blocks(css=css)

with block:
    gr.HTML(
        """
            <div style="text-align: center; max-width: 650px; margin: 0 auto;">
             
            </div>
        """
    )
    with gr.Group():
        # add a paragraph to show the details
        gr.HTML(
            """
            <p class="details">
                Pega aquí tu enlace de Youtube:
            </p>
            """
        )

        # add another textbox to get url from user
        url = gr.Textbox(label="URL", show_label=False, placeholder="Enlace de vídeo")
        btn2 = gr.Button("Transcribir")
        text2 = gr.Textbox(show_label=False, placeholder="La transcripción aparecerá aquí")
        btn2.click(inference2, inputs=[url], outputs=[text2])
        

        
block.launch()