|
import gradio as gr |
|
import numpy as np |
|
|
|
import onnx_asr |
|
|
|
models = {name: onnx_asr.load_model(name) for name in ["alphacep/vosk-model-ru", "alphacep/vosk-model-small-ru"]} |
|
|
|
|
|
def recoginize(audio: tuple[int, np.ndarray]): |
|
sample_rate, waveform = audio |
|
waveform = waveform.astype(np.float32) / 2 ** (8 * waveform.itemsize - 1) |
|
return [[name, model.recognize(waveform, sample_rate=sample_rate)] for name, model in models.items()] |
|
|
|
|
|
demo = gr.Interface( |
|
fn=recoginize, |
|
inputs=[gr.Audio(min_length=1, max_length=10)], |
|
outputs=[gr.Dataframe(headers=["Model", "result"], wrap=True, show_fullscreen_button=True)], |
|
flagging_mode="never", |
|
) |
|
|
|
demo.launch() |
|
|