patrickvonplaten's picture
Update app.py
360fd06
from speechbox import PunctuationRestorer
import librosa
import subprocess
import gradio as gr
restorer = PunctuationRestorer.from_pretrained("openai/whisper-tiny.en")
def convert_to_wav(path):
if path[-3:] != 'wav':
new_path = '.'.join(path.split('.')[:-1]) + '.wav'
try:
subprocess.call(['ffmpeg', '-i', path, new_path, '-y'])
except: # noqa: E722
return path, 'Error: Could not convert file to .wav'
path = new_path
return path, None
def restore(audio, original_transcript):
path, error = convert_to_wav(audio)
print(error)
data, samplerate = librosa.load(path, sr=16_000)
text, log_probs = restorer(data, original_transcript, samplerate, num_beams=1)
return text, log_probs
gr.Interface(
title='Punctuation Restorer',
fn=restore,
inputs=[
gr.inputs.Audio(source="upload", type="filepath"),
gr.inputs.Textbox(default="", label="normalized text")
],
outputs=[
gr.outputs.Textbox(label='Restored text'),
gr.Number(label='Log probability')
],
examples=[
["./common_voice_en_18301577.mp3", "do not cross the yellow light"],
["./sample1.flac", "going along slushy country roads and speaking to damp audiences in draughty school rooms day after day for a fortnight he'll have to put in an appearance at some place of worship on sunday morning and he can come to us immediately afterwards"],
["./sample2.flac", "before he had time to answer a much encumbered vera burst into the room with the question i say can i leave these here these were a small black pig and a lusty specimen of black red game cock"],
]
).launch()