kambris commited on
Commit
6c4755b
·
verified ·
1 Parent(s): 0ecae4e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -25
app.py CHANGED
@@ -7,14 +7,14 @@ from deep_translator import GoogleTranslator
7
  # Enhanced transliteration map with proper Arabic characters
8
  translit_map = {
9
  # Two-character combinations (must be checked first)
10
- "th": "ث", "kh": "خ", "dh": "ذ", "sh": "ش", "gh": "غ",
11
  "aa": "آ", "ee": "ي", "oo": "و", "uu": "و", "ii": "ي",
12
 
13
  # Single characters
14
  "a": "ا", "b": "ب", "t": "ت", "j": "ج", "H": "ح",
15
  "d": "د", "r": "ر", "z": "ز", "s": "س",
16
  "S": "ص", "D": "ض", "T": "ط", "Z": "ظ",
17
- "'": "ع", "gh": "غ", "f": "ف", "q": "ق", "k": "ك",
18
  "l": "ل", "m": "م", "n": "ن", "h": "ه",
19
  "w": "و", "y": "ي", "x": "ء",
20
 
@@ -34,18 +34,18 @@ translit_map = {
34
  # Proper Arabic romanization to IPA mapping
35
  latin_to_ipa = {
36
  # Two-character combinations (must be checked first)
37
- "th": "θ", # ث - voiceless dental fricative
38
- "kh": "x", # خ - voiceless velar fricative
39
- "dh": "ð", # ذ - voiced dental fricative
40
- "sh": "ʃ", # ش - voiceless postalveolar fricative
41
- "gh": "ɣ", # غ - voiced velar fricative
42
 
43
  # Long vowels
44
- "aa": "aː", # آ - long a
45
- "ee": "iː", # long i
46
- "oo": "uː", # long u
47
- "uu": "uː", # long u (alternative)
48
- "ii": "iː", # long i (alternative)
49
 
50
  # Consonants
51
  "b": "b", # ب
@@ -87,9 +87,9 @@ latin_to_ipa = {
87
  "^": "", # sukun (no vowel)
88
 
89
  # Tanween
90
- "an": "an", # فتحتان
91
- "un": "un", # ضمتان
92
- "in": "in", # كسرتان
93
 
94
  # Space and punctuation
95
  " ": " ",
@@ -328,23 +328,23 @@ with gr.Blocks(title="Arabic Transliterator with Google Translate") as demo:
328
  gr.Markdown("#### Two-Character Combinations:")
329
  with gr.Row():
330
  with gr.Column(scale=1):
331
- gr.Button("🔊 th → ث", size="sm").click(
332
  fn=generate_letter_audio, inputs=gr.State("ث"), outputs=gr.Audio(visible=False, autoplay=True)
333
  )
334
  with gr.Column(scale=1):
335
- gr.Button("🔊 kh → خ", size="sm").click(
336
  fn=generate_letter_audio, inputs=gr.State("خ"), outputs=gr.Audio(visible=False, autoplay=True)
337
  )
338
  with gr.Column(scale=1):
339
- gr.Button("🔊 dh → ذ", size="sm").click(
340
  fn=generate_letter_audio, inputs=gr.State("ذ"), outputs=gr.Audio(visible=False, autoplay=True)
341
  )
342
  with gr.Column(scale=1):
343
- gr.Button("🔊 sh → ش", size="sm").click(
344
  fn=generate_letter_audio, inputs=gr.State("ش"), outputs=gr.Audio(visible=False, autoplay=True)
345
  )
346
  with gr.Column(scale=1):
347
- gr.Button("🔊 gh → غ", size="sm").click(
348
  fn=generate_letter_audio, inputs=gr.State("غ"), outputs=gr.Audio(visible=False, autoplay=True)
349
  )
350
 
@@ -352,23 +352,23 @@ with gr.Blocks(title="Arabic Transliterator with Google Translate") as demo:
352
  gr.Markdown("#### Long Vowels:")
353
  with gr.Row():
354
  with gr.Column(scale=1):
355
- gr.Button("🔊 aa → آ", size="sm").click(
356
  fn=generate_letter_audio, inputs=gr.State("آ"), outputs=gr.Audio(visible=False, autoplay=True)
357
  )
358
  with gr.Column(scale=1):
359
- gr.Button("🔊 ee → ي", size="sm").click(
360
  fn=generate_letter_audio, inputs=gr.State("ي"), outputs=gr.Audio(visible=False, autoplay=True)
361
  )
362
  with gr.Column(scale=1):
363
- gr.Button("🔊 oo → و", size="sm").click(
364
  fn=generate_letter_audio, inputs=gr.State("و"), outputs=gr.Audio(visible=False, autoplay=True)
365
  )
366
  with gr.Column(scale=1):
367
- gr.Button("🔊 uu → و", size="sm").click(
368
  fn=generate_letter_audio, inputs=gr.State("و"), outputs=gr.Audio(visible=False, autoplay=True)
369
  )
370
  with gr.Column(scale=1):
371
- gr.Button("🔊 ii → ي", size="sm").click(
372
  fn=generate_letter_audio, inputs=gr.State("ي"), outputs=gr.Audio(visible=False, autoplay=True)
373
  )
374
 
 
7
  # Enhanced transliteration map with proper Arabic characters
8
  translit_map = {
9
  # Two-character combinations (must be checked first)
10
+ "TH": "ث", "KH": "خ", "DH": "ذ", "SH": "ش", "GH": "غ",
11
  "aa": "آ", "ee": "ي", "oo": "و", "uu": "و", "ii": "ي",
12
 
13
  # Single characters
14
  "a": "ا", "b": "ب", "t": "ت", "j": "ج", "H": "ح",
15
  "d": "د", "r": "ر", "z": "ز", "s": "س",
16
  "S": "ص", "D": "ض", "T": "ط", "Z": "ظ",
17
+ "'": "ع", "f": "ف", "q": "ق", "k": "ك",
18
  "l": "ل", "m": "م", "n": "ن", "h": "ه",
19
  "w": "و", "y": "ي", "x": "ء",
20
 
 
34
  # Proper Arabic romanization to IPA mapping
35
  latin_to_ipa = {
36
  # Two-character combinations (must be checked first)
37
+ "TH": "θ", # ث - voiceless dental fricative
38
+ "KH": "x", # خ - voiceless velar fricative
39
+ "DH": "ð", # ذ - voiced dental fricative
40
+ "SH": "ʃ", # ش - voiceless postalveolar fricative
41
+ "GH": "ɣ", # غ - voiced velar fricative
42
 
43
  # Long vowels
44
+ "AA": "aː", # آ - long a
45
+ "EE": "iː", # long i
46
+ "OO": "uː", # long u
47
+ "UU": "uː", # long u (alternative)
48
+ "II": "iː", # long i (alternative)
49
 
50
  # Consonants
51
  "b": "b", # ب
 
87
  "^": "", # sukun (no vowel)
88
 
89
  # Tanween
90
+ "AN": "an", # فتحتان
91
+ "UN": "un", # ضمتان
92
+ "IN": "in", # كسرتان
93
 
94
  # Space and punctuation
95
  " ": " ",
 
328
  gr.Markdown("#### Two-Character Combinations:")
329
  with gr.Row():
330
  with gr.Column(scale=1):
331
+ gr.Button("🔊 TH → ث", size="sm").click(
332
  fn=generate_letter_audio, inputs=gr.State("ث"), outputs=gr.Audio(visible=False, autoplay=True)
333
  )
334
  with gr.Column(scale=1):
335
+ gr.Button("🔊 KH → خ", size="sm").click(
336
  fn=generate_letter_audio, inputs=gr.State("خ"), outputs=gr.Audio(visible=False, autoplay=True)
337
  )
338
  with gr.Column(scale=1):
339
+ gr.Button("🔊 DH → ذ", size="sm").click(
340
  fn=generate_letter_audio, inputs=gr.State("ذ"), outputs=gr.Audio(visible=False, autoplay=True)
341
  )
342
  with gr.Column(scale=1):
343
+ gr.Button("🔊 SH → ش", size="sm").click(
344
  fn=generate_letter_audio, inputs=gr.State("ش"), outputs=gr.Audio(visible=False, autoplay=True)
345
  )
346
  with gr.Column(scale=1):
347
+ gr.Button("🔊 GH → غ", size="sm").click(
348
  fn=generate_letter_audio, inputs=gr.State("غ"), outputs=gr.Audio(visible=False, autoplay=True)
349
  )
350
 
 
352
  gr.Markdown("#### Long Vowels:")
353
  with gr.Row():
354
  with gr.Column(scale=1):
355
+ gr.Button("🔊 AA → آ", size="sm").click(
356
  fn=generate_letter_audio, inputs=gr.State("آ"), outputs=gr.Audio(visible=False, autoplay=True)
357
  )
358
  with gr.Column(scale=1):
359
+ gr.Button("🔊 EE → ي", size="sm").click(
360
  fn=generate_letter_audio, inputs=gr.State("ي"), outputs=gr.Audio(visible=False, autoplay=True)
361
  )
362
  with gr.Column(scale=1):
363
+ gr.Button("🔊 OO → و", size="sm").click(
364
  fn=generate_letter_audio, inputs=gr.State("و"), outputs=gr.Audio(visible=False, autoplay=True)
365
  )
366
  with gr.Column(scale=1):
367
+ gr.Button("🔊 UU → و", size="sm").click(
368
  fn=generate_letter_audio, inputs=gr.State("و"), outputs=gr.Audio(visible=False, autoplay=True)
369
  )
370
  with gr.Column(scale=1):
371
+ gr.Button("🔊 II → ي", size="sm").click(
372
  fn=generate_letter_audio, inputs=gr.State("ي"), outputs=gr.Audio(visible=False, autoplay=True)
373
  )
374