import streamlit as st import langcodes from allosaurus.app import read_recognizer def get_bytes_in_wav_format(uploaded_file): st.write(dir(uploaded_file)) st.write(type(uploaded_file)) if ".wav" in uploaded_file: return uploaded_file.getvalue() # TODO: .mp3 conversion def get_langcode_for_allosaurus(input_code): langcode = "ipa" # the default allosaurus recognizer description = "the default universal setting, not specific to any language" try: lang = langcodes.get(input_code) langcode = lang.to_alpha3() description = lang.display_name() except langcodes.LanguageTagError as e: pass return langcode, description if __name__ == "__main__": input_code = st.text_input("(optional) 2 or 3-letter ISO code for input language", max_chars=3) langcode, description = get_langcode_for_allosaurus(input_code) st.write(f"Instructing Allosaurus to recognize using language {langcode}. That is, {description}") model = read_recognizer() uploaded_file = st.file_uploader("Choose a file", type=[ ".wav", ".mp3", ]) if uploaded_file is not None: audio_bytes = get_bytes_in_wav_format(uploaded_file) # audio_bytes = audio_file.read() st.audio(audio_bytes, format='audio/wav') result = model.recognize(audio_bytes, langcode) st.write(result)