Spaces:
Running
Running
<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> | |