phonolearn / app.py
etchen's picture
Update app.py
ee8c172 verified
raw
history blame
1.07 kB
import gradio as gr
import numpy as np
# import spaces #[uncomment to use ZeroGPU]
import torch
from transformers import pipeline
device = "cuda" if torch.cuda.is_available() else "cpu"
model_repo_id = "emlinking/wav2vec2-large-xls-r-300m-tsm-asr-v6"
if torch.cuda.is_available():
torch_dtype = torch.float16
else:
torch_dtype = torch.float32
pipe = pipeline(task="automatic-speech-recognition", model=model_repo_id, device=device)
# @spaces.GPU #[uncomment to use ZeroGPU]
def infer(
audio
):
sampling_rate, wav = audio
if wav.ndim > 1:
wav = wav.mean(axis=1)
wav = wav.astype(np.float32)
wav /= np.max(np.abs(wav))
return pipe(wav)['text']
css = """
#col-container {
margin: 0 auto;
max-width: 640px;
}
"""
with gr.Blocks(css=css) as demo:
gr.Markdown(" # PhonoLearn")
input_audio = gr.Audio(
sources=["microphone", "upload"]
)
output = gr.Textbox(label='Output')
input_audio.input(fn=infer, inputs=input_audio, outputs=output)
if __name__ == "__main__":
demo.launch()