File size: 1,459 Bytes
1ffd672
f8d0565
 
 
 
f9db145
 
 
 
f8d0565
 
 
 
0c3b1db
f8d0565
 
 
0c3b1db
f8d0565
 
0c3b1db
f8d0565
 
 
 
1ffd672
 
f8d0565
0c3b1db
c198ba3
f8d0565
 
 
f9db145
 
 
 
 
 
f6906f4
f9db145
 
 
6a5f5ff
f8d0565
 
 
 
 
 
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
43
44
45
46
47
48
49
50
import streamlit as st
import langcodes
from allosaurus.app import read_recognizer

  
def get_bytes_in_wav_format(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()
    
    
#    audio_bytes = audio_file.read()
    st.audio(audio_bytes, format='audio/wav')
    
    result = model.recognize(audio_bytes, langcode)
    st.write(result)