guymorlan commited on
Commit
7da7e15
1 Parent(s): 2aab024

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +54 -28
app.py CHANGED
@@ -5,20 +5,21 @@ import azure.cognitiveservices.speech as speechsdk
5
 
6
  dialects = {"Palestinian/Jordanian": "P", "Syrian": "S", "Lebanese": "L", "Egyptian": "E"}
7
 
8
- translator = pipeline(task="translation", model="guymorlan/English2Dialect")
 
9
  transliterator = pipeline(task="translation", model="guymorlan/DialectTransliterator")
10
 
11
  speech_config = speechsdk.SpeechConfig(subscription=os.environ.get('SPEECH_KEY'), region=os.environ.get('SPEECH_REGION'))
12
 
13
- def translate_text(input_text):
14
  inputs = [f"{val} {input_text}" for val in dialects.values()]
15
- result = translator (inputs)
16
-
17
- audio_files = []
18
-
19
-
20
  return result[0]["translation_text"], result[1]["translation_text"], result[2]["translation_text"], result[3]["translation_text"]
21
 
 
 
 
 
22
 
23
  def get_audio(input_text):
24
  audio_config = speechsdk.audio.AudioOutputConfig(filename=f"{input_text}.wav")
@@ -37,26 +38,51 @@ css = """
37
  #trans textarea { direction: rtl; };
38
  """
39
 
40
- with gr.Blocks(title = "English to Levantine Arabic", css=css) as demo:
41
- with gr.Row():
42
- with gr.Column():
43
- input_text = gr.inputs.Textbox(label="Input", placeholder="Enter English text", lines=1)
44
- gr.Examples(["I wanted to go to the store yesterday, but it rained", "How are you feeling today?", "Let's go to your place"], input_text)
45
- btn = gr.Button("Translate", label="Translate")
46
- gr.Markdown("Built by [Guy Mor-Lan](mailto:guy.mor@mail.huji.ac.il). Pronunciation model is specifically tailored to urban Palestinian Arabic. Text-to-speech uses Microsoft Azure's API and may provide different result from the transliterated pronunciation.")
47
-
48
- with gr.Column():
49
- pal = gr.Textbox(lines=1, label="Palestinian", elem_id="trans")
50
- pal_translit = gr.Textbox(lines=1, label="Palestinian Pronunciation", elem_id="liter")
51
- sy = gr.Textbox(lines=1, label="Syrian", elem_id="trans")
52
- lb = gr.Textbox(lines=1, label="Lebanese", elem_id="trans")
53
- eg = gr.Textbox(lines=1, label="Egyptian", elem_id="trans")
54
- with gr.Row():
55
- audio = gr.Audio(label="Audio - Palestinian", interactive=False)
56
- audio_button = gr.Button("Get Audio", label="Get Audio")
57
- audio_button.click(get_audio, inputs=[pal], outputs=[audio])
58
- btn.click(translate_text, inputs=input_text, outputs=[pal, sy, lb, eg])
59
- input_text.submit(translate_text, inputs=input_text, outputs=[pal, sy, lb, eg])
60
- pal.change(get_transliteration, inputs=[pal], outputs=[pal_translit])
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
61
 
62
  demo.launch()
 
5
 
6
  dialects = {"Palestinian/Jordanian": "P", "Syrian": "S", "Lebanese": "L", "Egyptian": "E"}
7
 
8
+ translator_en2ar = pipeline(task="translation", model="guymorlan/English2Dialect")
9
+ translator_ar2en = pipeline(task="translation", model="guymorlan/Shami2English")
10
  transliterator = pipeline(task="translation", model="guymorlan/DialectTransliterator")
11
 
12
  speech_config = speechsdk.SpeechConfig(subscription=os.environ.get('SPEECH_KEY'), region=os.environ.get('SPEECH_REGION'))
13
 
14
+ def translate_english(input_text):
15
  inputs = [f"{val} {input_text}" for val in dialects.values()]
16
+ result = translator_en2ar(inputs)
 
 
 
 
17
  return result[0]["translation_text"], result[1]["translation_text"], result[2]["translation_text"], result[3]["translation_text"]
18
 
19
+ def translate_arabic(input_text):
20
+ result = translator_ar2en([input_text])
21
+ return result[0]["translation_text"]
22
+
23
 
24
  def get_audio(input_text):
25
  audio_config = speechsdk.audio.AudioOutputConfig(filename=f"{input_text}.wav")
 
38
  #trans textarea { direction: rtl; };
39
  """
40
 
41
+ with gr.Blocks(title = "English to Levantine Arabic", css=css, theme="default") as demo:
42
+ gr.Markdown("# Levantine Arabic Translator")
43
+ with gr.Tab('From English to Levantine Arabic'):
44
+ with gr.Row():
45
+ with gr.Column():
46
+ input_text = gr.Textbox(label="Input", placeholder="Enter English text", lines=1)
47
+ gr.Examples(["I wanted to go to the store yesterday, but it rained", "How are you feeling today?", "Let's go to your place"], input_text)
48
+ btn = gr.Button("Translate", label="Translate")
49
+ gr.Markdown("Built by [Guy Mor-Lan](mailto:guy.mor@mail.huji.ac.il). Pronunciation model is specifically tailored to urban Palestinian Arabic. Text-to-speech uses Microsoft Azure's API and may provide different result from the transliterated pronunciation.")
50
+
51
+ with gr.Column():
52
+ pal = gr.Textbox(lines=1, label="Palestinian", elem_id="trans")
53
+ pal_translit = gr.Textbox(lines=1, label="Palestinian Pronunciation", elem_id="liter")
54
+ sy = gr.Textbox(lines=1, label="Syrian", elem_id="trans")
55
+ lb = gr.Textbox(lines=1, label="Lebanese", elem_id="trans")
56
+ eg = gr.Textbox(lines=1, label="Egyptian", elem_id="trans")
57
+ with gr.Row():
58
+ audio = gr.Audio(label="Audio - Palestinian", interactive=False)
59
+ audio_button = gr.Button("Get Audio", label="Click Here to Get Audio")
60
+ audio_button.click(get_audio, inputs=[pal], outputs=[audio])
61
+ btn.click(translate_english,inputs=input_text, outputs=[pal, sy, lb, eg])
62
+ input_text.submit(translate_english, inputs=input_text, outputs=[pal, sy, lb, eg])
63
+ pal.change(get_transliteration, inputs=[pal], outputs=[pal_translit])
64
+
65
+ with gr.Tab('From Levantine Arabic to English'):
66
+ with gr.Row():
67
+ with gr.Column():
68
+ input_text = gr.Textbox(label="Input", placeholder="Enter Levantine Arabic text", lines=1, elem_id="trans")
69
+ gr.Examples(["خلينا ندور على مطعم تاني", "قديش حق البندورة؟"], input_text)
70
+ btn = gr.Button("Translate", label="Translate")
71
+ gr.Markdown("Built by [Guy Mor-Lan](mailto:guy.mor@mail.huji.ac.il).")
72
+ with gr.Column():
73
+ eng = gr.Textbox(label="English", lines=1, elem_id="liter")
74
+ btn.click(translate_arabic,inputs=input_text, outputs=[eng])
75
+
76
+ with gr.Tab("Transliterate"):
77
+ with gr.Row():
78
+ with gr.Column():
79
+ input_text = gr.Textbox(label="Input", placeholder="Enter Levantine Arabic text", lines=1)
80
+ gr.Examples(["خلينا ندور على مطعم تاني", "قديش حق البندورة؟"], input_text)
81
+ btn = gr.Button("Transliterate", label="Transliterate")
82
+ gr.Markdown("Built by [Guy Mor-Lan](mailto:guy.mor@mail.huji.ac.il)")
83
+ with gr.Column():
84
+ translit = gr.Textbox(label="Transliteration", lines=1, elem_id="liter")
85
+ btn.click(get_transliteration, inputs=input_text, outputs=[translit])
86
+
87
 
88
  demo.launch()