Spaces:
Running
on
Zero
Running
on
Zero
ABOUT = """ | |
# Moonshine ASR | |
Unofficial demo for [Moonshine ASR](https://github.com/usefulsensors/moonshine) by Useful Sensors, a fast & efficient ASR model outperforming Whisper | |
""" | |
import os | |
os.environ["KERAS_BACKEND"] = "torch" | |
import gradio as gr | |
import spaces | |
import moonshine | |
from pydub import AudioSegment | |
def transcribe(audio, chosen_model): | |
audio_file = AudioSegment.from_file(audio) | |
if len(audio_file) / 1000 >= 64: | |
raise gr.Error("Moonshine only supports audio segments up to 64s long. Please pre-segment your audio and try again.") | |
try: | |
transcription = moonshine.transcribe(audio, chosen_model) | |
except Exception as e: | |
raise gr.Error("Moonshine backend error: " + str(e)) | |
return ' '.join(transcription).strip() | |
with gr.Blocks() as demo: | |
gr.Markdown(ABOUT) | |
aud = gr.Audio(label="Audio", type="filepath", interactive=True) | |
modelname = gr.Radio(label="Model", choices=['moonshine/tiny', 'moonshine/base'], value="moonshine/tiny", interactive=True) | |
btn = gr.Button("Transcribe", variant="primary") | |
out = gr.Textbox(label="Transcription", interactive=False) | |
btn.click(transcribe, inputs=[aud, modelname], outputs=out) | |
gr.Markdown("Unofficial demo by [mrfakename](https://x.com/realmrfakename)") | |
demo.queue().launch() |