voiceoperation / app.py
Zeimoto
fixed print seconds
aed550f
import streamlit as st
from st_audiorec import st_audiorec
from nameder import init_model_ner, get_entity_labels
from speech2text import init_model_trans, transcribe
from translation import translate
from resources import audit_elapsedtime, set_start
import subprocess
def main ():
print("------------------------------")
print(f"Running main")
#print(subprocess.Popen('pip freeze > requirements_hug.txt', shell=True))
# original = "Tenho uma proposta para a Caixa Geral de Depositos, para 3 consultores Outsystems, 300 euros por dia e um periodo de seis meses."
# st.write(f"Original: {original}")
# traducao = get_translation(text_to_translate=text, languageCode="pt")
# st.write(traducao)
# translation = translate(original)
# st.write(f"Translation: {translation}")
print("Rendering UI...")
start_render = set_start()
wav_audio_data = st_audiorec()
audit_elapsedtime(function="Rendering UI", start=start_render)
if wav_audio_data is not None:
start_loading = set_start()
s2t = init_model_trans()
ner = init_model_ner()
print("Loading data...")
#st.audio(wav_audio_data, format='audio/wav')
original = transcribe(wav_audio_data, s2t)
st.write(f"Transcription: {original}")
translation = translate(original)[0]['generated_text']
st.write(f"Translation: {translation}")
if translation is not None and ner is not None:
st.write('Entities: ', get_entity_labels(model=ner, text=translation))
loading_elapsedtime = audit_elapsedtime(function="Loading data", start=start_loading)
st.write(f"Total elapsed time: {int(loading_elapsedtime/60)} minutes and {int(loading_elapsedtime%60)} seconds")
if __name__ == "__main__":
print("IN __name__")
main()