neurlang commited on
Commit
259ec6e
·
1 Parent(s): 236252e

language chooser

Browse files
Files changed (1) hide show
  1. app.py +26 -7
app.py CHANGED
@@ -20,6 +20,27 @@ def dephon_offline(txt, language_tag, is_reverse, is_punct):
20
  def phonemize(sentence, language, is_reverse, is_punct):
21
  return dephon_offline(sentence, language, is_reverse, is_punct)
22
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
  with gr.Blocks() as demo:
24
  gr.Markdown('''
25
  # Pygoruut Phonemizer Demo
@@ -29,17 +50,15 @@ with gr.Blocks() as demo:
29
  with gr.Row():
30
  sentence = gr.Textbox(label="Sentence", placeholder="Enter the text to phonemize...")
31
  with gr.Row():
32
- language = gr.Textbox(label="Language", placeholder="Enter the language tag (e.g., 'en' for English), separate multiple languages by comma (,)...")
 
 
 
33
  with gr.Row():
34
  is_reverse = gr.Checkbox(label="Reverse Phonemization")
35
  is_punct = gr.Checkbox(label="Keep Punctuation")
36
  submit_btn = gr.Button("Phonemize")
37
  output = gr.Textbox(label="Phonemized Text")
38
- submit_btn.click(fn=phonemize, inputs=[sentence, language, is_reverse, is_punct], outputs=output)
39
- gr.Markdown('''
40
- # Supported languages
41
- ''')
42
- for lang in languages.get_all_supported_languages():
43
- gr.Markdown('- ' + lang)
44
 
45
  demo.launch()
 
20
  def phonemize(sentence, language, is_reverse, is_punct):
21
  return dephon_offline(sentence, language, is_reverse, is_punct)
22
 
23
+ def filter_languages(search_text, selected_languages):
24
+ all_languages = languages.get_all_supported_languages()
25
+ selected_list = selected_languages.split(",") if selected_languages else []
26
+
27
+ # Extract last entry from search input
28
+ search_terms = search_text.split(",") if search_text else []
29
+ last_term = search_terms[-1] if search_terms else ""
30
+
31
+ # Filter available languages
32
+ filtered = [lang for lang in all_languages if last_term.lower() in lang.lower() and lang not in selected_list]
33
+ return gr.update(choices=filtered)
34
+
35
+ def add_language(selected_language, selected_languages):
36
+ if not selected_language:
37
+ return selected_languages
38
+ selected_list = selected_languages.split(",") if selected_languages else []
39
+ if selected_language not in selected_list:
40
+ selected_list.append(selected_language)
41
+ return ",".join(selected_list)
42
+
43
+
44
  with gr.Blocks() as demo:
45
  gr.Markdown('''
46
  # Pygoruut Phonemizer Demo
 
50
  with gr.Row():
51
  sentence = gr.Textbox(label="Sentence", placeholder="Enter the text to phonemize...")
52
  with gr.Row():
53
+ search_input = gr.Textbox(label="Search & Selected Languages", placeholder="Type to search and add languages...")
54
+ dropdown = gr.Dropdown(label="Available Languages", choices=[], interactive=True)
55
+ search_input.change(filter_languages, [search_input, search_input], dropdown)
56
+ dropdown.select(add_language, [dropdown, search_input], search_input)
57
  with gr.Row():
58
  is_reverse = gr.Checkbox(label="Reverse Phonemization")
59
  is_punct = gr.Checkbox(label="Keep Punctuation")
60
  submit_btn = gr.Button("Phonemize")
61
  output = gr.Textbox(label="Phonemized Text")
62
+ submit_btn.click(fn=phonemize, inputs=[sentence, search_input, is_reverse, is_punct], outputs=output)
 
 
 
 
 
63
 
64
  demo.launch()