File size: 1,070 Bytes
7fb9ab5 8026eab 7fb9ab5 8026eab 7fb9ab5 8026eab 7fb9ab5 8026eab 7fb9ab5 8026eab eb85cb3 8026eab |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
from speechbox import PunctuationRestorer
import soundfile as sf
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 = sf.read(path)
text, probs = restorer(data, original_transcript, samplerate, num_beams=1)
return text, 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.outputs.Number(label='Log prob')
]
).launch()
|