File size: 1,416 Bytes
1f0f03f
 
 
0591d69
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1f0f03f
 
0591d69
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1f0f03f
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
<!DOCTYPE html>
<html>
	<head>
      <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto&display=swap" >
      <style>
          body {
              font-family: 'Roboto', sans-serif;
              font-size: 16px; 
          }
        .logo {
            height: 1em;
            vertical-align: middle;
            margin-bottom: 0.1em; 
          }
      </style>
      
		<script type="module" crossorigin src="https://cdn.jsdelivr.net/npm/@gradio/lite@0.4.2/dist/lite.js"></script>
		<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@gradio/lite@0.4.2/dist/lite.css" />
        <link rel="stylesheet" href="https://gradio-hello-world.hf.space/theme.css">
	</head>
	<body>
<gradio-lite>

<gradio-requirements>
transformers_js_py
</gradio-requirements>

<gradio-file name="app.py" entrypoint>
from transformers_js import import_transformers_js
import gradio as gr
import numpy as np

transformers = await import_transformers_js()
pipeline = transformers.pipeline
pipe = await pipeline("automatic-speech-recognition",'Xenova/whisper-small')

async def transcribe(audio):
    sr, y = audio
    y = y.astype(np.float32)
    y /= np.max(np.abs(y))

    return pipe({"sampling_rate": sr, "raw": y})["text"]

demo = gr.Interface(
  transcribe, 
  gr.Audio(source="microphone"), 
  "text", 
  theme=gr.themes.Soft(),)

demo.launch()
</gradio-file>

</gradio-lite>		
    </body>
</html>