Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
|
@@ -19,6 +19,8 @@ def get_lang_description_from_mapping_name(string_to_check):
|
|
| 19 |
substrings = string_to_check.split("-")
|
| 20 |
substrings = substrings[:2] # first two are ISO 639-3 language, and ISO 15924 script
|
| 21 |
string_to_check = "-".join(substrings)
|
|
|
|
|
|
|
| 22 |
|
| 23 |
description = None
|
| 24 |
lang = langcodes.get(string_to_check)
|
|
@@ -36,7 +38,7 @@ def get_lang_description_from_mapping_name(string_to_check):
|
|
| 36 |
description = description + " (reduced)"
|
| 37 |
return description
|
| 38 |
|
| 39 |
-
|
| 40 |
def get_valid_epitran_mappings_list():
|
| 41 |
map_path = Path(epitran.__path__[0]) / "data" / "map"
|
| 42 |
map_files = map_path.glob("*.*")
|
|
@@ -55,41 +57,36 @@ def get_valid_epitran_mappings_list():
|
|
| 55 |
|
| 56 |
return filtered_mappings
|
| 57 |
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
#
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
|
|
|
|
|
|
|
| 67 |
|
| 68 |
st.write("# Phonemize your text with [Epitran](https://github.com/dmort27/epitran)!")
|
| 69 |
|
| 70 |
st.write("Epitran is a library and tool for transliterating orthographic text as IPA (International Phonetic Alphabet), by Mortensen, David R. and Dalmia, Siddharth and Littell, Patrick.")
|
| 71 |
|
| 72 |
valid_epitran_mappings = get_valid_epitran_mappings_list()
|
| 73 |
-
|
| 74 |
-
index_of_default_language = valid_epitran_mappings.index("swa-Latn")
|
| 75 |
-
|
| 76 |
st.write(f"It supports converting many writing sytems to IPA symbols, including approximately {len(valid_epitran_mappings)} languages/scripts, listed below:")
|
| 77 |
|
| 78 |
#st.write(valid_epitran_mappings)
|
| 79 |
|
| 80 |
-
selected_mapping = st.selectbox("Select input language/script:", valid_epitran_mappings, index=
|
| 81 |
|
| 82 |
|
| 83 |
description = get_lang_description_from_mapping_name(selected_mapping)
|
| 84 |
st.write(f"Selected input language/script: {description}")
|
| 85 |
|
| 86 |
-
st.info("attempting to instantiate
|
| 87 |
-
|
| 88 |
-
if selected_mapping == "cmn-Hans":
|
| 89 |
-
st.info("Chinese requires a special dictionary. Downloading now")
|
| 90 |
-
epitran.download.cedict()
|
| 91 |
-
|
| 92 |
-
epi = epitran.Epitran(selected_mapping)
|
| 93 |
|
| 94 |
examples = defaultdict(lambda: 'Try typing some words in the language you chose, and they will be transliterated.')
|
| 95 |
examples['cmn-Hans'] = '太初有道,道与神同在,道就是神。'
|
|
@@ -97,6 +94,9 @@ def get_valid_epitran_mappings_list():
|
|
| 97 |
|
| 98 |
input_text = st.text_area(label="Whatever you type here will be transliterated!", value=examples[selected_mapping])
|
| 99 |
|
|
|
|
|
|
|
|
|
|
| 100 |
|
| 101 |
st.info(f"transliterating `{input_text}`\n\tusing {selected_mapping}...")
|
| 102 |
transliteration = epi.transliterate(input_text)
|
|
@@ -107,7 +107,4 @@ def get_valid_epitran_mappings_list():
|
|
| 107 |
}
|
| 108 |
|
| 109 |
st.write(output)
|
| 110 |
-
|
| 111 |
-
|
| 112 |
-
|
| 113 |
|
|
|
|
| 19 |
substrings = string_to_check.split("-")
|
| 20 |
substrings = substrings[:2] # first two are ISO 639-3 language, and ISO 15924 script
|
| 21 |
string_to_check = "-".join(substrings)
|
| 22 |
+
|
| 23 |
+
|
| 24 |
|
| 25 |
description = None
|
| 26 |
lang = langcodes.get(string_to_check)
|
|
|
|
| 38 |
description = description + " (reduced)"
|
| 39 |
return description
|
| 40 |
|
| 41 |
+
@st.cache
|
| 42 |
def get_valid_epitran_mappings_list():
|
| 43 |
map_path = Path(epitran.__path__[0]) / "data" / "map"
|
| 44 |
map_files = map_path.glob("*.*")
|
|
|
|
| 57 |
|
| 58 |
return filtered_mappings
|
| 59 |
|
| 60 |
+
@st.cache
|
| 61 |
+
def get_epitran(selected_mapping):
|
| 62 |
+
if selected_mapping == "cmn-Hans":
|
| 63 |
+
# st.info("Chinese requires a special dictionary. Downloading now")
|
| 64 |
+
epitran.download.cedict()
|
| 65 |
+
|
| 66 |
+
epi = epitran.Epitran(selected_mapping)
|
| 67 |
+
return epi
|
| 68 |
+
|
| 69 |
+
|
| 70 |
+
if __name__ == "__main__":
|
| 71 |
|
| 72 |
st.write("# Phonemize your text with [Epitran](https://github.com/dmort27/epitran)!")
|
| 73 |
|
| 74 |
st.write("Epitran is a library and tool for transliterating orthographic text as IPA (International Phonetic Alphabet), by Mortensen, David R. and Dalmia, Siddharth and Littell, Patrick.")
|
| 75 |
|
| 76 |
valid_epitran_mappings = get_valid_epitran_mappings_list()
|
| 77 |
+
index_of_swa_latn = valid_epitran_mappings.index("swa-Latn")
|
|
|
|
|
|
|
| 78 |
st.write(f"It supports converting many writing sytems to IPA symbols, including approximately {len(valid_epitran_mappings)} languages/scripts, listed below:")
|
| 79 |
|
| 80 |
#st.write(valid_epitran_mappings)
|
| 81 |
|
| 82 |
+
selected_mapping = st.selectbox("Select input language/script:", valid_epitran_mappings, index=index_of_swa_latn)
|
| 83 |
|
| 84 |
|
| 85 |
description = get_lang_description_from_mapping_name(selected_mapping)
|
| 86 |
st.write(f"Selected input language/script: {description}")
|
| 87 |
|
| 88 |
+
st.info("attempting to instantiate epitran transliterator for your language/script")
|
| 89 |
+
epi = get_epitran(str(selected_mapping))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 90 |
|
| 91 |
examples = defaultdict(lambda: 'Try typing some words in the language you chose, and they will be transliterated.')
|
| 92 |
examples['cmn-Hans'] = '太初有道,道与神同在,道就是神。'
|
|
|
|
| 94 |
|
| 95 |
input_text = st.text_area(label="Whatever you type here will be transliterated!", value=examples[selected_mapping])
|
| 96 |
|
| 97 |
+
# combined_code = "-".join([iso_lang_code, iso_script_code])
|
| 98 |
+
# st.write(f"Combined code: {combined_code}")
|
| 99 |
+
|
| 100 |
|
| 101 |
st.info(f"transliterating `{input_text}`\n\tusing {selected_mapping}...")
|
| 102 |
transliteration = epi.transliterate(input_text)
|
|
|
|
| 107 |
}
|
| 108 |
|
| 109 |
st.write(output)
|
|
|
|
|
|
|
|
|
|
| 110 |
|