Spaces:
Build error
Build error
import gradio as gr | |
import whisper | |
from pybraille import convertText | |
# Translate speech to braille | |
def speech_to_text(audio): | |
""" | |
:param audio: Speech data | |
:return: Transcript of speech data | |
""" | |
model = whisper.load_model('base') | |
return model.transcribe(audio) | |
def transcribe_audio(audio, store=None): | |
""" | |
:param audio: Speech data from gradio interface | |
:param store: Container for user data | |
:return: Detected language, transcript text, braille translation, session state | |
""" | |
if store is None: | |
store = {} | |
result = speech_to_text(audio) | |
store['transcription'] = result['text'] | |
store['braille'] = convertText(store['transcription']) | |
return f"Detected language: {result['language']}", store[ | |
'transcription'], store['braille'], store | |
# Setup gradio interface | |
title = "Speech to Braille Translator" | |
description = 'This is a Speech to Braille translation demo. The speech-text translation uses the OpenAI ' \ | |
'[Whisper](https://openai.com/blog/whisper/) [model](https://github.com/openai/whisper) whilst the text-braille' \ | |
'component utilises the [PyBraille](https://pypi.org/project/pybraille/) library. You can find the project on ' \ | |
'[Github](https://github.com/Azuremis/speech_to_braille_translator). Made by [Azuremis](https://azuremis.bio.link).' | |
transcription_tb = gr.Textbox(label="Transcription", lines=10, max_lines=20) | |
detected_lang = gr.outputs.HTML(label="Detected Language") | |
transcription_braille = gr.Textbox(label="Braille", lines=10, max_lines=20) | |
state = gr.State({"transcription": ""}) | |
demo = gr.Interface(fn=transcribe_audio, | |
inputs=[ | |
gr.Audio(source="microphone", type="filepath", | |
streaming=False), | |
state | |
], | |
outputs=[ | |
detected_lang, | |
transcription_tb, | |
transcription_braille, | |
state, | |
], | |
# live=True, | |
allow_flagging='never', | |
title=title, | |
description=description, | |
) | |
# Launch gradio app | |
demo.launch() | |