scriptconv 0.0.4a18__tar.gz → 0.0.4a19__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (515) hide show
  1. {scriptconv-0.0.4a18/scriptconv.egg-info → scriptconv-0.0.4a19}/PKG-INFO +1 -1
  2. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/pyproject.toml +1 -0
  3. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/notation.py +73 -1
  4. scriptconv-0.0.4a19/scriptconv/phonemizers/_vendored/iqra_phonetiser/LICENSE.md +28 -0
  5. scriptconv-0.0.4a19/scriptconv/phonemizers/_vendored/iqra_phonetiser/__init__.py +7 -0
  6. scriptconv-0.0.4a19/scriptconv/phonemizers/_vendored/iqra_phonetiser/phonetiser.py +456 -0
  7. scriptconv-0.0.4a19/scriptconv/phonemizers/ar.py +381 -0
  8. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/enums.py +2 -0
  9. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/registry.py +2 -0
  10. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/version.py +1 -1
  11. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19/scriptconv.egg-info}/PKG-INFO +1 -1
  12. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv.egg-info/SOURCES.txt +4 -0
  13. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/tests/test_phonemizers_base.py +1 -1
  14. scriptconv-0.0.4a19/tests/test_phonemizers_halabi_iqra.py +210 -0
  15. scriptconv-0.0.4a18/scriptconv/phonemizers/ar.py +0 -140
  16. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/LICENSE +0 -0
  17. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/README.md +0 -0
  18. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/requirements.txt +0 -0
  19. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/__init__.py +0 -0
  20. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/__main__.py +0 -0
  21. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/cangjie.py +0 -0
  22. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/conventions.py +0 -0
  23. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/data/__init__.py +0 -0
  24. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/data/cangjie5_tc.tsv.gz +0 -0
  25. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/diacritics.py +0 -0
  26. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/graph.py +0 -0
  27. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/__init__.py +0 -0
  28. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_thirdparty/__init__.py +0 -0
  29. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_thirdparty/bw2ipa.py +0 -0
  30. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_thirdparty/hangul2ipa.py +0 -0
  31. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_thirdparty/ko_tables/aspiration.csv +0 -0
  32. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_thirdparty/ko_tables/assimilation.csv +0 -0
  33. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_thirdparty/ko_tables/double_coda.csv +0 -0
  34. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_thirdparty/ko_tables/hanja.tsv +0 -0
  35. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_thirdparty/ko_tables/ipa.csv +0 -0
  36. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_thirdparty/ko_tables/neutralization.csv +0 -0
  37. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_thirdparty/ko_tables/tensification.csv +0 -0
  38. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_thirdparty/ko_tables/yale.csv +0 -0
  39. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_thirdparty/shami/__init__.py +0 -0
  40. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_thirdparty/shami/codeswitch.py +0 -0
  41. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_thirdparty/shami/diacritize.py +0 -0
  42. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_thirdparty/shami/dialectal.py +0 -0
  43. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_thirdparty/shami/english_g2p.py +0 -0
  44. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_thirdparty/shami/espeak.py +0 -0
  45. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_thirdparty/shami/frontend.py +0 -0
  46. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_thirdparty/shami/levantine_g2p.py +0 -0
  47. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_thirdparty/shami/normalize.py +0 -0
  48. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_thirdparty/shami/phoneme_inventory.py +0 -0
  49. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_thirdparty/vosk_g2p.py +0 -0
  50. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_thirdparty/zh_num.py +0 -0
  51. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/__init__.py +0 -0
  52. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/DATA_LICENSE.md +0 -0
  53. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/LICENSE.md +0 -0
  54. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/__init__.py +0 -0
  55. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/cli.py +0 -0
  56. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/data/registry.json +0 -0
  57. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/g2p.py +0 -0
  58. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/aar.json +0 -0
  59. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/abi.json +0 -0
  60. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/acd.json +0 -0
  61. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ach.json +0 -0
  62. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/acz.json +0 -0
  63. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ada.json +0 -0
  64. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ade.json +0 -0
  65. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/adj.json +0 -0
  66. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/aeb.json +0 -0
  67. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ael.json +0 -0
  68. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/afr.json +0 -0
  69. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ags.json +0 -0
  70. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/aha.json +0 -0
  71. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/aiw.json +0 -0
  72. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ajg.json +0 -0
  73. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/akp.json +0 -0
  74. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/aks.json +0 -0
  75. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/aku.json +0 -0
  76. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/alz.json +0 -0
  77. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/amb.json +0 -0
  78. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/amf.json +0 -0
  79. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/amh.json +0 -0
  80. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/anc.json +0 -0
  81. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ank.json +0 -0
  82. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ann.json +0 -0
  83. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/any.json +0 -0
  84. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/apd.json +0 -0
  85. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ara.json +0 -0
  86. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/arb.json +0 -0
  87. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ary.json +0 -0
  88. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/arz.json +0 -0
  89. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ato.json +0 -0
  90. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/avi.json +0 -0
  91. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/avn.json +0 -0
  92. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/avu.json +0 -0
  93. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ayb.json +0 -0
  94. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/azo.json +0 -0
  95. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bam.json +0 -0
  96. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bas.json +0 -0
  97. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bav.json +0 -0
  98. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bax.json +0 -0
  99. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bba.json +0 -0
  100. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bbq.json +0 -0
  101. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bci.json +0 -0
  102. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bcq.json +0 -0
  103. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bde.json +0 -0
  104. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bdj.json +0 -0
  105. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bdu.json +0 -0
  106. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bec.json +0 -0
  107. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/beh.json +0 -0
  108. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bej.json +0 -0
  109. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bem.json +0 -0
  110. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bex.json +0 -0
  111. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bfa.json +0 -0
  112. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bfj.json +0 -0
  113. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bfm.json +0 -0
  114. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bhy.json +0 -0
  115. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bib.json +0 -0
  116. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bim.json +0 -0
  117. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bin.json +0 -0
  118. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bjo.json +0 -0
  119. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bjt.json +0 -0
  120. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bkc.json +0 -0
  121. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bkm.json +0 -0
  122. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bky.json +0 -0
  123. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ble.json +0 -0
  124. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/blm.json +0 -0
  125. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bng.json +0 -0
  126. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bni.json +0 -0
  127. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bol.json +0 -0
  128. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bom.json +0 -0
  129. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bot.json +0 -0
  130. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/boy.json +0 -0
  131. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/boz.json +0 -0
  132. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bqj.json +0 -0
  133. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bqp.json +0 -0
  134. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bqx.json +0 -0
  135. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bsc.json +0 -0
  136. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bsq.json +0 -0
  137. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/buc.json +0 -0
  138. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bud.json +0 -0
  139. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/buf.json +0 -0
  140. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bum.json +0 -0
  141. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bva.json +0 -0
  142. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bvm.json +0 -0
  143. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bwj.json +0 -0
  144. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bxk.json +0 -0
  145. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/byn.json +0 -0
  146. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/byv.json +0 -0
  147. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bza.json +0 -0
  148. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/cgg.json +0 -0
  149. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/cjk.json +0 -0
  150. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/cko.json +0 -0
  151. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/cme.json +0 -0
  152. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/cop.json +0 -0
  153. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/daa.json +0 -0
  154. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/daf.json +0 -0
  155. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dag.json +0 -0
  156. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dbq.json +0 -0
  157. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dec.json +0 -0
  158. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dgd.json +0 -0
  159. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/did.json +0 -0
  160. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/din.json +0 -0
  161. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dmf.json +0 -0
  162. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dnj.json +0 -0
  163. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dop-benin.json +0 -0
  164. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dop-benin2.json +0 -0
  165. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dow.json +0 -0
  166. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dsh.json +0 -0
  167. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dua.json +0 -0
  168. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dug.json +0 -0
  169. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dyo.json +0 -0
  170. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dyu.json +0 -0
  171. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dzd.json +0 -0
  172. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ebo.json +0 -0
  173. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ebr.json +0 -0
  174. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/efi.json +0 -0
  175. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ell.json +0 -0
  176. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ema.json +0 -0
  177. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/emk.json +0 -0
  178. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/eng.json +0 -0
  179. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/enn.json +0 -0
  180. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/etn.json +0 -0
  181. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/eto.json +0 -0
  182. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ewe.json +0 -0
  183. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ewo.json +0 -0
  184. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/fak.json +0 -0
  185. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/fat.json +0 -0
  186. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ffm.json +0 -0
  187. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/fia.json +0 -0
  188. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/flr.json +0 -0
  189. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/fmp.json +0 -0
  190. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/fng.json +0 -0
  191. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/fod.json +0 -0
  192. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/fon.json +0 -0
  193. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/fuc.json +0 -0
  194. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/fue.json +0 -0
  195. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gaa.json +0 -0
  196. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gej.json +0 -0
  197. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gez.json +0 -0
  198. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gfe.json +0 -0
  199. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gha.json +0 -0
  200. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gho.json +0 -0
  201. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gjn.json +0 -0
  202. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gng.json +0 -0
  203. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/god.json +0 -0
  204. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gog.json +0 -0
  205. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gou.json +0 -0
  206. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/grb.json +0 -0
  207. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/grr.json +0 -0
  208. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gud.json +0 -0
  209. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/guk.json +0 -0
  210. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gur.json +0 -0
  211. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gux.json +0 -0
  212. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/guz.json +0 -0
  213. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gwa.json +0 -0
  214. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gwd.json +0 -0
  215. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gwr.json +0 -0
  216. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gxx.json +0 -0
  217. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/hag.json +0 -0
  218. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/har.json +0 -0
  219. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/hau-niger.json +0 -0
  220. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/hau-nigeria.json +0 -0
  221. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/hay.json +0 -0
  222. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/hdy.json +0 -0
  223. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/hts.json +0 -0
  224. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ibo.json +0 -0
  225. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/igb.json +0 -0
  226. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ige.json +0 -0
  227. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/igl.json +0 -0
  228. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/igo.json +0 -0
  229. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ikw.json +0 -0
  230. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/irk.json +0 -0
  231. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/iso.json +0 -0
  232. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/jib.json +0 -0
  233. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kab.json +0 -0
  234. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kbo.json +0 -0
  235. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kbp.json +0 -0
  236. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kbr.json +0 -0
  237. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kcn.json +0 -0
  238. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kde.json +0 -0
  239. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kdh.json +0 -0
  240. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kdj.json +0 -0
  241. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kdn.json +0 -0
  242. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kdx.json +0 -0
  243. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kea.json +0 -0
  244. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kec.json +0 -0
  245. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ker.json +0 -0
  246. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/khq.json +0 -0
  247. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/khy.json +0 -0
  248. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kik.json +0 -0
  249. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kin.json +0 -0
  250. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kiz.json +0 -0
  251. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kmb.json +0 -0
  252. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/knc.json +0 -0
  253. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/knf.json +0 -0
  254. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/koo.json +0 -0
  255. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kpe.json +0 -0
  256. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kqs.json +0 -0
  257. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/krb.json +0 -0
  258. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kri.json +0 -0
  259. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ksb.json +0 -0
  260. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ktz.json +0 -0
  261. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kuj.json +0 -0
  262. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kus.json +0 -0
  263. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lad.json +0 -0
  264. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lai.json +0 -0
  265. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lch.json +0 -0
  266. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ldd.json +0 -0
  267. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lgg.json +0 -0
  268. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lgq.json +0 -0
  269. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lig.json +0 -0
  270. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lin.json +0 -0
  271. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lky.json +0 -0
  272. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lln.json +0 -0
  273. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lma.json +0 -0
  274. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lmd.json +0 -0
  275. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lmp.json +0 -0
  276. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lns.json +0 -0
  277. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/loi.json +0 -0
  278. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lok.json +0 -0
  279. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lol.json +0 -0
  280. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lot.json +0 -0
  281. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lpx.json +0 -0
  282. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lub.json +0 -0
  283. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/luc.json +0 -0
  284. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lue.json +0 -0
  285. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lug.json +0 -0
  286. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lul.json +0 -0
  287. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lun.json +0 -0
  288. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/luw.json +0 -0
  289. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mas.json +0 -0
  290. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/maw.json +0 -0
  291. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mck.json +0 -0
  292. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mcp.json +0 -0
  293. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mcu.json +0 -0
  294. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mdj.json +0 -0
  295. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mev.json +0 -0
  296. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mfb.json +0 -0
  297. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mfe.json +0 -0
  298. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mfi.json +0 -0
  299. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mfq.json +0 -0
  300. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mgc.json +0 -0
  301. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mgd.json +0 -0
  302. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mgh.json +0 -0
  303. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mhi.json +0 -0
  304. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mkf.json +0 -0
  305. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mkw.json +0 -0
  306. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mlg.json +0 -0
  307. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mlw.json +0 -0
  308. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mmo.json +0 -0
  309. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mmy.json +0 -0
  310. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mnf.json +0 -0
  311. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mnk.json +0 -0
  312. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mos.json +0 -0
  313. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mpg.json +0 -0
  314. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mqu.json +0 -0
  315. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mse.json +0 -0
  316. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mur.json +0 -0
  317. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mwe.json +0 -0
  318. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/myf.json +0 -0
  319. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/myk.json +0 -0
  320. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/myo.json +0 -0
  321. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/myx.json +0 -0
  322. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mzk.json +0 -0
  323. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/naw.json +0 -0
  324. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nba.json +0 -0
  325. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ncu.json +0 -0
  326. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ndb.json +0 -0
  327. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ndo.json +0 -0
  328. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ney.json +0 -0
  329. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nfr.json +0 -0
  330. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nga.json +0 -0
  331. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ngb-zaire.json +0 -0
  332. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ngb-zaire2.json +0 -0
  333. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ngh.json +0 -0
  334. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ngi.json +0 -0
  335. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nhb.json +0 -0
  336. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nhu.json +0 -0
  337. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nhw.json +0 -0
  338. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nko.json +0 -0
  339. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nmn.json +0 -0
  340. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nmq.json +0 -0
  341. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nnb.json +0 -0
  342. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nnh.json +0 -0
  343. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nnw.json +0 -0
  344. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nqo.json +0 -0
  345. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nso.json +0 -0
  346. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nuj.json +0 -0
  347. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nup.json +0 -0
  348. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nus.json +0 -0
  349. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nwb.json +0 -0
  350. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nya.json +0 -0
  351. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nym.json +0 -0
  352. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nzd.json +0 -0
  353. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nzi.json +0 -0
  354. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ogc.json +0 -0
  355. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/oku.json +0 -0
  356. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/onw.json +0 -0
  357. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/pae.json +0 -0
  358. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/pbi.json +0 -0
  359. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/pny.json +0 -0
  360. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/pov.json +0 -0
  361. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/puu.json +0 -0
  362. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/pze.json +0 -0
  363. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/rel.json +0 -0
  364. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/rmt.json +0 -0
  365. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/rng.json +0 -0
  366. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/run.json +0 -0
  367. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sad.json +0 -0
  368. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sag-central_african_republic.json +0 -0
  369. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sag-congo.json +0 -0
  370. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sav.json +0 -0
  371. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sef-cote_d_ivoire.json +0 -0
  372. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sef-cote_d_ivoire2.json +0 -0
  373. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/seh.json +0 -0
  374. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/she.json +0 -0
  375. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/shk.json +0 -0
  376. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/shu.json +0 -0
  377. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/shy.json +0 -0
  378. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sig.json +0 -0
  379. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/siz.json +0 -0
  380. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sld.json +0 -0
  381. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sna.json +0 -0
  382. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/snk-senegal.json +0 -0
  383. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/snk.json +0 -0
  384. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sok.json +0 -0
  385. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sop.json +0 -0
  386. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/spa.json +0 -0
  387. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/spy.json +0 -0
  388. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ssl.json +0 -0
  389. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ssn.json +0 -0
  390. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ssw.json +0 -0
  391. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/suk.json +0 -0
  392. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sur.json +0 -0
  393. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sus.json +0 -0
  394. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/swb.json +0 -0
  395. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/swh.json +0 -0
  396. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sym.json +0 -0
  397. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/szg.json +0 -0
  398. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tan.json +0 -0
  399. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/taq.json +0 -0
  400. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/taz.json +0 -0
  401. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tbt.json +0 -0
  402. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tbz.json +0 -0
  403. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ted.json +0 -0
  404. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tem.json +0 -0
  405. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/teo.json +0 -0
  406. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/thv.json +0 -0
  407. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/thz.json +0 -0
  408. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tig.json +0 -0
  409. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tik.json +0 -0
  410. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tir.json +0 -0
  411. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tmc.json +0 -0
  412. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tnr.json +0 -0
  413. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/toh.json +0 -0
  414. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/toq.json +0 -0
  415. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/trc.json +0 -0
  416. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tsc.json +0 -0
  417. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tso.json +0 -0
  418. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tsp.json +0 -0
  419. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ttq.json +0 -0
  420. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tui.json +0 -0
  421. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tum.json +0 -0
  422. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tuq.json +0 -0
  423. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tuz.json +0 -0
  424. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/twi.json +0 -0
  425. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tzm.json +0 -0
  426. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/uba.json +0 -0
  427. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/udu.json +0 -0
  428. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ukv.json +0 -0
  429. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/urh.json +0 -0
  430. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/vag.json +0 -0
  431. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/vai.json +0 -0
  432. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ven.json +0 -0
  433. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/vmw.json +0 -0
  434. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/vut.json +0 -0
  435. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/wan.json +0 -0
  436. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/wib.json +0 -0
  437. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/wmw.json +0 -0
  438. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/wob.json +0 -0
  439. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/wol.json +0 -0
  440. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/wwa.json +0 -0
  441. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/xho.json +0 -0
  442. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/xog.json +0 -0
  443. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/xon.json +0 -0
  444. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/xrb.json +0 -0
  445. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/xsm.json +0 -0
  446. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/yam.json +0 -0
  447. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/yat.json +0 -0
  448. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ybb.json +0 -0
  449. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/yid.json +0 -0
  450. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/yko.json +0 -0
  451. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/yor.json +0 -0
  452. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/yun.json +0 -0
  453. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/zag.json +0 -0
  454. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/zen.json +0 -0
  455. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ziw.json +0 -0
  456. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/zne.json +0 -0
  457. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/languages/zul.json +0 -0
  458. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/loader.py +0 -0
  459. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/normalizer.py +0 -0
  460. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/africa_g2p/pipeline.py +0 -0
  461. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/kog2p/LICENSE.md +0 -0
  462. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/kog2p/__init__.py +0 -0
  463. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/kog2p/rulebook.txt +0 -0
  464. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/mantoq/LICENSE.md +0 -0
  465. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/mantoq/__init__.py +0 -0
  466. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/mantoq/buck/__init__.py +0 -0
  467. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/mantoq/buck/phonetise_buckwalter.py +0 -0
  468. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/mantoq/buck/symbols.py +0 -0
  469. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/mantoq/buck/tokenization.py +0 -0
  470. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/mantoq/num2words.py +0 -0
  471. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/_vendored/mantoq/unicode_symbol2label.py +0 -0
  472. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/africa.py +0 -0
  473. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/base.py +0 -0
  474. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/en.py +0 -0
  475. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/eu.py +0 -0
  476. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/fa.py +0 -0
  477. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/gl.py +0 -0
  478. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/he.py +0 -0
  479. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/ja.py +0 -0
  480. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/ko.py +0 -0
  481. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/mul.py +0 -0
  482. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/mwl.py +0 -0
  483. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/o2ipa.py +0 -0
  484. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/pt.py +0 -0
  485. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/ru.py +0 -0
  486. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/shami.py +0 -0
  487. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/vi.py +0 -0
  488. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/phonemizers/zh.py +0 -0
  489. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/py.typed +0 -0
  490. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/readings.py +0 -0
  491. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/scripts.py +0 -0
  492. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv/translit.py +0 -0
  493. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv.egg-info/dependency_links.txt +0 -0
  494. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv.egg-info/requires.txt +0 -0
  495. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/scriptconv.egg-info/top_level.txt +0 -0
  496. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/setup.cfg +0 -0
  497. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/tests/test_arpa_stress.py +0 -0
  498. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/tests/test_cangjie.py +0 -0
  499. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/tests/test_cli.py +0 -0
  500. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/tests/test_conventions.py +0 -0
  501. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/tests/test_diacritics.py +0 -0
  502. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/tests/test_diacritics_graph.py +0 -0
  503. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/tests/test_errors_policy.py +0 -0
  504. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/tests/test_examples.py +0 -0
  505. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/tests/test_graph.py +0 -0
  506. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/tests/test_notation.py +0 -0
  507. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/tests/test_phonemizers_africa.py +0 -0
  508. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/tests/test_phonemizers_cjk_ar.py +0 -0
  509. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/tests/test_phonemizers_friendly_import_errors.py +0 -0
  510. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/tests/test_phonemizers_ru.py +0 -0
  511. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/tests/test_readings.py +0 -0
  512. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/tests/test_readings_zh.py +0 -0
  513. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/tests/test_scripts.py +0 -0
  514. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/tests/test_scripts_stressonnx_compat.py +0 -0
  515. {scriptconv-0.0.4a18 → scriptconv-0.0.4a19}/tests/test_translit.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: scriptconv
3
- Version: 0.0.4a18
3
+ Version: 0.0.4a19
4
4
  Summary: Zero-dependency script & phoneme-notation core — ISO-15924 detection & metadata, IPA↔ARPABET/X-SAMPA/Lexique/Kirshenbaum/Cotovía/RFE, Buckwalter↔Arabic, Hangul→jamo, kana
5
5
  License: Apache-2.0
6
6
  Project-URL: Homepage, https://github.com/TigreGotico/scriptconv
@@ -76,6 +76,7 @@ scriptconv = ["py.typed"]
76
76
  "scriptconv.phonemizers._thirdparty" = ["ko_tables/*.csv", "ko_tables/*.tsv"]
77
77
  "scriptconv.phonemizers._vendored.kog2p" = ["rulebook.txt", "LICENSE.md"]
78
78
  "scriptconv.phonemizers._vendored.mantoq" = ["LICENSE.md"]
79
+ "scriptconv.phonemizers._vendored.iqra_phonetiser" = ["LICENSE.md"]
79
80
  "scriptconv.phonemizers._vendored.africa_g2p" = [
80
81
  "LICENSE.md", "DATA_LICENSE.md",
81
82
  "languages/*.json", "data/*.json",
@@ -42,6 +42,7 @@ __all__ = [
42
42
  "rfe_to_ipa",
43
43
  "ipa_to_rfe",
44
44
  "halabi_to_ipa",
45
+ "iqra_halabi_to_ipa",
45
46
  "looks_like_ipa",
46
47
  ]
47
48
 
@@ -1048,10 +1049,20 @@ _HALABI_VOWELS: dict[str, str] = {
1048
1049
  "a": "a", "aa": "aː", "aaaa": "aːː",
1049
1050
  "i": "i", "ii": "iː",
1050
1051
  "u": "u", "uu": "uː",
1052
+ # emphatic-context allophones from the RAW (pre-mantoq-simplification)
1053
+ # Halabi phonetiser layer — mantoq's own g2p folds these to the plain
1054
+ # forms above via ``simplify_phonemes``, but scriptconv's raw
1055
+ # ``Phonemizer.HALABI``/``Phonemizer.IQRA`` edges call the phonetiser
1056
+ # directly and preserve the distinction (see arbtok's
1057
+ # scripts/benchmark_iqraeval.py, verified symbol-by-symbol against the
1058
+ # IqraEval/Iqra_train corpus).
1059
+ "A": "ɑ", "AA": "ɑː",
1060
+ "I": "ɪ", "II": "ɪː",
1061
+ "U": "ʊ", "UU": "ʊː",
1051
1062
  }
1052
1063
 
1053
1064
  _HALABI_MULTI = ("_dbl_", "_+_", "_sil_", "_eos_", "_pad_",
1054
- "aaaa", "aa", "ii", "uu")
1065
+ "aaaa", "aa", "ii", "uu", "AA", "II", "UU")
1055
1066
 
1056
1067
 
1057
1068
  def _tokenize_halabi(text: str) -> list[str]:
@@ -1136,6 +1147,67 @@ def halabi_to_ipa(halabi: str | list[str], errors: str = "pass") -> str:
1136
1147
  return "".join(out)
1137
1148
 
1138
1149
 
1150
+ # ---------------------------------------------------------------------------
1151
+ # IqraEval phoneme_ref -> IPA
1152
+ #
1153
+ # The IqraEval shared task (Interspeech 2025, doi:10.21437/Interspeech.2025-2411
1154
+ # — "we employed the phonetizer introduced by Nawar Halabi") scores against a
1155
+ # space-separated ``phoneme_ref`` column that is the raw Halabi phonetiser
1156
+ # output with the stress/vowel-realization digits, the ``+`` word separator
1157
+ # and the ``sil`` pause token stripped — but, unlike mantoq's own
1158
+ # ``simplify_phonemes``, keeping the emphatic-allophone uppercase vowels
1159
+ # (``A``/``AA``/``I``/``II``/``U``/``UU``) and gemination as a literal doubled
1160
+ # consonant letter (``bb``, ``nn``, …) rather than a ``_dbl_`` marker. Table
1161
+ # verified symbol-by-symbol against a 5,050-row IqraEval/Iqra_train sample by
1162
+ # TigreGotico/arbtok's ``scripts/benchmark_iqraeval.py``; reproduced here
1163
+ # (same license posture as ``halabi_to_ipa`` above: a factual symbol table,
1164
+ # not the CC BY-NC phonetiser code).
1165
+ # ---------------------------------------------------------------------------
1166
+
1167
+ _IQRA_CONSONANTS: dict[str, str] = {
1168
+ "b": "b", "t": "t", "^": "θ", "j": "dʒ", "H": "ħ", "x": "x", "d": "d",
1169
+ "*": "ð", "r": "r", "z": "z", "s": "s", "$": "ʃ", "S": "sˤ", "D": "dˤ",
1170
+ "T": "tˤ", "Z": "ðˤ", "E": "ʕ", "g": "ɣ", "f": "f", "q": "q", "k": "k",
1171
+ "l": "l", "m": "m", "n": "n", "h": "h", "w": "w", "y": "j", "<": "ʔ",
1172
+ }
1173
+ _IQRA_VOWELS: dict[str, str] = {
1174
+ "a": "a", "aa": "aː", "A": "ɑ", "AA": "ɑː",
1175
+ "i": "i", "ii": "iː", "I": "ɪ", "II": "ɪː",
1176
+ "u": "u", "uu": "uː", "U": "ʊ", "UU": "ʊː",
1177
+ }
1178
+ _IQRA_NOTATION: dict[str, str] = dict(_IQRA_VOWELS)
1179
+ for _sym, _ipa in _IQRA_CONSONANTS.items():
1180
+ _IQRA_NOTATION[_sym] = _ipa
1181
+ _IQRA_NOTATION[_sym * 2] = _ipa + "ː" # gemination: doubled token, shadda
1182
+
1183
+
1184
+ def iqra_halabi_to_ipa(tokens: str, errors: str = "pass") -> str:
1185
+ """Convert IqraEval-flavored (already digit/separator/sil-stripped)
1186
+ space-separated Halabi tokens to IPA.
1187
+
1188
+ Unlike :func:`halabi_to_ipa` (which targets mantoq's own simplified,
1189
+ lowercase-only inventory), this keeps the emphatic-allophone uppercase
1190
+ vowels distinct and reads gemination off a literal doubled consonant
1191
+ letter — the ``phoneme_ref`` convention. Unknown tokens follow the
1192
+ ``errors`` policy (``"pass"`` by default: passed through verbatim).
1193
+
1194
+ Examples
1195
+ --------
1196
+ >>> iqra_halabi_to_ipa("f ii h i x A y r aa t u n")
1197
+ 'fiːhixɑjraːtun'
1198
+ """
1199
+ out = []
1200
+ for pos, tok in enumerate(tokens.split()):
1201
+ ipa = _IQRA_NOTATION.get(tok)
1202
+ if ipa is not None:
1203
+ out.append(ipa)
1204
+ else:
1205
+ res = _unknown(tok, pos, "halabi", errors, replacement=f"{{{{{tok}}}}}")
1206
+ if res:
1207
+ out.append(res)
1208
+ return "".join(out)
1209
+
1210
+
1139
1211
  # ---------------------------------------------------------------------------
1140
1212
  # convert — facade routing through IPA where no direct map exists
1141
1213
  # ---------------------------------------------------------------------------
@@ -0,0 +1,28 @@
1
+ # Third-party license notice — iqra_phonetiser
2
+
3
+ This directory vendors the phonetisation core of `phonetise_Arabic.py` from
4
+ [Iqra-Eval/MSA_phonetiser](https://github.com/Iqra-Eval/MSA_phonetiser) — the
5
+ IqraEval shared task's own published data-prep code (used, per its
6
+ `run_phonetiser.py`, to generate the `phoneme_ref` column of
7
+ `IqraEval/Iqra_train`, the corpus `Phonemizer.IQRA` targets).
8
+
9
+ That file is itself a fork of Nawar Halabi's Arabic-Phonetiser
10
+ (https://github.com/nawarhalabi/Arabic-Phonetiser), licensed under the
11
+ **Creative Commons Attribution-NonCommercial 4.0 International License**
12
+ (https://creativecommons.org/licenses/by-nc/4.0/) — NOT the Apache-2.0 license
13
+ of the rest of this repository. `phonetise-Buckwalter.py` in the IqraEval fork
14
+ is byte-identical to the original upstream file (`cmp` verified);
15
+ `phonetise_Arabic.py` carries small, deliberate patches on top of it (see
16
+ `phonetiser.py`'s module docstring for the diff against both the original
17
+ upstream and against mantoq's own vendored copy). The IqraEval fork carries no
18
+ separate LICENSE file of its own, so the inherited CC BY-NC 4.0 terms govern
19
+ it as a derivative work.
20
+
21
+ Kept in its own quarantine, separate from `../mantoq/` — the two are
22
+ independent copies of the same phonetiser family at different patch levels,
23
+ each with the specific behavior a different scriptconv edge needs preserved:
24
+ `../mantoq/` for `Phonemizer.MANTOQ`'s long-standing, model-compatible
25
+ contract; this one for `Phonemizer.HALABI`/`Phonemizer.IQRA`'s fidelity to
26
+ `phoneme_ref`. Nothing here imports at package import time; using it is an
27
+ explicit per-request opt-in (constructing `HalabiPhonemizer` or
28
+ `IqraPhonemizer`) that accepts this directory's license.
@@ -0,0 +1,7 @@
1
+ """Quarantined vendored copy — see ``LICENSE.md`` in this directory.
2
+
3
+ Nothing imports at package import time; callers reach in explicitly via
4
+ ``scriptconv.phonemizers._vendored.iqra_phonetiser.phonetiser`` (what
5
+ :class:`scriptconv.phonemizers.ar.IqraPhonemizer` does), matching the same
6
+ opt-in pattern as ``_vendored/mantoq``.
7
+ """
@@ -0,0 +1,456 @@
1
+ # -*- coding: UTF8 -*-
2
+ """Phonetisation core ported from Iqra-Eval/MSA_phonetiser's
3
+ ``phonetiser/phonetise_Arabic.py`` (https://github.com/Iqra-Eval/MSA_phonetiser),
4
+ the IqraEval shared task's own published data-prep code — see this
5
+ directory's LICENSE.md for the CC BY-NC 4.0 provenance chain (nawarhalabi's
6
+ original Arabic-Phonetiser -> the IqraEval fork -> this trim).
7
+
8
+ Trimmed from the original: the stress-boundary annotation path
9
+ (``findStressIndex``/``utterancesPronuncationsWithBoundaries``) is dropped —
10
+ ``run_phonetiser.py``'s own ``get_phoneme()`` only ever reads
11
+ ``phonetise(text)[1]`` (the plain, non-stress-annotated pronunciation list),
12
+ so dropping it changes nothing observable and spares vendoring
13
+ ``phonetiser/findstress.py`` for a feature ``phoneme_ref`` never used
14
+ (arbtok's ``scripts/benchmark_iqraeval.py`` independently confirms "no
15
+ silence, pause, or explicit stress token appears in the sample"). The
16
+ CLI/file-I/O wrapper (the original file's ``if __name__ == "__main__":``
17
+ block) is dropped too — scriptconv calls ``phonetise()`` directly.
18
+
19
+ ## Why this file exists next to mantoq's own vendored copy
20
+
21
+ Diffing this fork against both nawarhalabi's original upstream
22
+ (github.com/nawarhalabi/Arabic-Phonetiser/blob/master/phonetise-Buckwalter.py)
23
+ and mantoq's vendored ``buck/phonetise_buckwalter.py``
24
+ (``scriptconv/phonemizers/_vendored/mantoq/``) surfaced the root causes of
25
+ every major residual mismatch class ``Phonemizer.IQRA`` had against
26
+ ``IqraEval/Iqra_train``'s ``phoneme_ref`` before this file was ported in
27
+ (see the PR that introduced it for the full methodology and match-rate
28
+ history):
29
+
30
+ 1. **mantoq's copy delegates Arabic<->Buckwalter transliteration to
31
+ ``scriptconv.notation``'s *standard* Buckwalter table**, which encodes
32
+ "th" (ث) as ``v`` (the Tim Buckwalter scheme). Nawar Halabi's OWN
33
+ phonetiser — both the pristine upstream file and this IqraEval fork —
34
+ was written against his own non-standard variant, where ث is ``^``
35
+ (verified: this is the ONLY letter the two schemes disagree on, diffed
36
+ character-by-character). ``v`` isn't in ``unambiguousConsonantMap`` at
37
+ all in either variant (there it names an unrelated loanword phone), so
38
+ every ث silently vanished when phonetised through mantoq's copy. This
39
+ file's own ``arabic_to_buckwalter`` (below) is Halabi's original
40
+ inline dict, so the bug cannot occur here.
41
+ 2. **The word-initial "kaf/wāw + alif" ambiguity** (upstream/mantoq:
42
+ ``letter=="A" and letter_1 in ("w","k") and letter_2=="b"``, matching
43
+ *any* word starting with ك or و immediately followed by alif — e.g.
44
+ "كَانَ" kāna — and defaulting its first-generated pronunciation to the
45
+ short-vowel reading) is narrowed here to
46
+ ``letter=="A" and letter_1 in ("w","k") and letter_2=="b" and letter1=="l"``:
47
+ only "كال-"/"وال-" (preposition + definite article) is genuinely
48
+ ambiguous; "كان" and similar words are just unconditionally long, as
49
+ real Arabic orthography says an alif always is.
50
+ 3. **Wāw al-jamāʿah's silent alif** (masculine-plural verb ending, "-وا"):
51
+ the ambiguous-candidate order is swapped so the *elided* alif is the
52
+ default (index 0) reading, rather than upstream/mantoq's *pronounced*
53
+ default — matching how the alif there is a purely orthographic marker.
54
+ 4. **Sun-letter lam-omission** is restricted to firing only when the lam
55
+ is genuinely part of "ال" or is word-initial on its own
56
+ (``letter_1 in ("A", "l", "b")`` guard added), rather than any lam
57
+ anywhere immediately before a shadda-doubled consonant.
58
+
59
+ None of these are hypothetical: (1)-(3) are diff-verified against the
60
+ IqraEval fork's actual source; whether (4) reproduces `phoneme_ref`'s
61
+ practice of never eliding the definite article's lam even before a sun
62
+ letter is verified empirically (see the benchmark script).
63
+ """
64
+
65
+ # ----------------------------------------------------------------------------
66
+ # Arabic <-> Buckwalter — Halabi's OWN scheme (NOT scriptconv.notation's
67
+ # standard-Buckwalter table: this is the one letter it disagrees with — ث is
68
+ # "^" here, "v" in the standard scheme — see the module docstring, point 1).
69
+ # ----------------------------------------------------------------------------
70
+ buckwalter = {
71
+ "ب": "b", "ذ": "*", "ط": "T", "م": "m",
72
+ "ت": "t", "ر": "r", "ظ": "Z", "ن": "n",
73
+ "ث": "^", "ز": "z", "ع": "E", "ه": "h",
74
+ "ج": "j", "س": "s", "غ": "g", "ح": "H",
75
+ "ق": "q", "ف": "f", "خ": "x", "ص": "S",
76
+ "ش": "$", "د": "d", "ض": "D", "ك": "k",
77
+ "أ": ">", "ء": "'", "ئ": "}", "ؤ": "&",
78
+ "إ": "<", "آ": "|", "ا": "A", "ى": "Y",
79
+ "ة": "p", "ي": "y", "ل": "l", "و": "w",
80
+ "ً": "F", "ٌ": "N", "ٍ": "K", "َ": "a",
81
+ "ُ": "u", "ِ": "i", "ّ": "~", "ْ": "o",
82
+ }
83
+
84
+
85
+ def arabic_to_buckwalter(word: str) -> str:
86
+ return "".join(buckwalter.get(letter, letter) for letter in word)
87
+
88
+
89
+ # ----------------------------------------------------------------------------
90
+ # Grapheme to Phoneme mappings (identical to upstream/mantoq except point 2
91
+ # and point 3 in the module docstring, both marked below)
92
+ # ----------------------------------------------------------------------------
93
+ unambiguousConsonantMap = {
94
+ "b": "b", "*": "*", "T": "T", "m": "m",
95
+ "t": "t", "r": "r", "Z": "Z", "n": "n",
96
+ "^": "^", "z": "z", "E": "E", "h": "h",
97
+ "j": "j", "s": "s", "g": "g", "H": "H",
98
+ "q": "q", "f": "f", "x": "x", "S": "S",
99
+ "$": "$", "d": "d", "D": "D", "k": "k",
100
+ ">": "<", "'": "<", "}": "<", "&": "<",
101
+ "<": "<",
102
+ }
103
+
104
+ ambiguousConsonantMap = {
105
+ "l": ["l", ""], "w": "w", "y": "y", "p": ["t", ""],
106
+ }
107
+
108
+ maddaMap = {"|": [["<", "aa"], ["<", "AA"]]}
109
+
110
+ vowelMap = {
111
+ "A": [["aa", ""], ["AA", ""]], "Y": [["aa", ""], ["AA", ""]],
112
+ "w": [["uu0", "uu1"], ["UU0", "UU1"]],
113
+ "y": [["ii0", "ii1"], ["II0", "II1"]],
114
+ "a": ["a", "A"],
115
+ "u": [["u0", "u1"], ["U0", "U1"]],
116
+ "i": [["i0", "i1"], ["I0", "I1"]],
117
+ }
118
+
119
+ diacritics = ["o", "a", "u", "i", "F", "N", "K", "~"]
120
+ diacriticsWithoutShadda = ["o", "a", "u", "i", "F", "N", "K"]
121
+ emphatics = ["D", "S", "T", "Z", "g", "x", "q"]
122
+ forwardEmphatics = ["g", "x"]
123
+ consonants = [">", "<", "}", "&", "'", "b", "t", "^", "j", "H", "x", "d", "*",
124
+ "r", "z", "s", "$", "S", "D", "T", "Z", "E", "g", "f", "q", "k",
125
+ "l", "m", "n", "h", "|"]
126
+
127
+ # ------------------------------------------------------------------------------------
128
+ # Words with fixed irregular pronunciations (the IqraEval fork's expanded table:
129
+ # preposition-prefixed variants of the same fixed words)
130
+ # ------------------------------------------------------------------------------------
131
+ fixedWords = {
132
+ "h*A": ["h aa * aa", "h aa * a"],
133
+ "bh*A": ["b i0 h aa * aa", "b i0 h aa * a"],
134
+ "kh*A": ["k a h aa * aa", "k a h aa * a"],
135
+ "fh*A": ["f a h aa * aa", "f a h aa * a"],
136
+ "h*h": ["h aa * i0 h i0", "h aa * i1 h"],
137
+ "bh*h": ["b i0 h aa * i0 h i0", "b i0 h aa * i1 h"],
138
+ "kh*h": ["k a h aa * i0 h i0", "k a h aa * i1 h"],
139
+ "fh*h": ["f a h aa * i0 h i0", "f a h aa * i1 h"],
140
+ "h*An": ["h aa * aa n i0", "h aa * aa n"],
141
+ "h&lA'": ["h aa < u0 l aa < i0", "h aa < u0 l aa <"],
142
+ "*lk": ["* aa l i0 k a", "* aa l i0 k"],
143
+ "b*lk": ["b i0 * aa l i0 k a", "b i0 * aa l i0 k"],
144
+ "k*lk": ["k a * aa l i0 k a", "k a * aa l i1 k"],
145
+ "*lkm": "* aa l i0 k u1 m",
146
+ ">wl}k": ["< u0 l aa < i0 k a", "< u0 l aa < i1 k"],
147
+ "Th": "T aa h a",
148
+ "lkn": ["l aa k i0 nn a", "l aa k i1 n"],
149
+ "lknh": "l aa k i0 nn a h u0",
150
+ "lknhm": "l aa k i0 nn a h u1 m",
151
+ "lknk": ["l aa k i0 nn a k a", "l aa k i0 nn a k i0"],
152
+ "lknkm": "l aa k i0 nn a k u1 m",
153
+ "lknkmA": "l aa k i0 nn a k u0 m aa",
154
+ "lknnA": "l aa k i0 nn a n aa",
155
+ "AlrHmn": ["rr a H m aa n i0", "rr a H m aa n"],
156
+ "Allh": ["ll aa h i0", "ll aa h", "ll AA h u0", "ll AA h a", "ll AA h", "ll A"],
157
+ "h*yn": ["h aa * a y n i0", "h aa * a y n"],
158
+ "wh*A": ["w a h aa * aa", "w a h aa * a"],
159
+ "wbh*A": ["w a b i0 h aa * aa", "w a b i0 h aa * a"],
160
+ "wkh*A": ["w a k a h aa * aa", "w a k a h aa * a"],
161
+ "wh*h": ["w a h aa * i0 h i0", "w a h aa * i1 h"],
162
+ "wbh*h": ["w a b i0 h aa * i0 h i0", "w a b i0 h aa * i1 h"],
163
+ "wkh*h": ["w a k a h aa * i0 h i0", "w a k a h aa * i1 h"],
164
+ "wh*An": ["w a h aa * aa n i0", "w a h aa * aa n"],
165
+ "wh&lA'": ["w a h aa < u0 l aa < i0", "w a h aa < u0 l aa <"],
166
+ "w*lk": ["w a * aa l i0 k a", "w a * aa l i0 k"],
167
+ "wb*lk": ["w a b i0 * aa l i0 k a", "w a b i0 * aa l i0 k"],
168
+ "wk*lk": ["w a k a * aa l i0 k a", "w a k a * aa l i1 k"],
169
+ "w*lkm": "w a * aa l i0 k u1 m",
170
+ "w>wl}k": ["w a < u0 l aa < i0 k a", "w a < u0 l aa < i1 k"],
171
+ "wTh": "w a T aa h a",
172
+ "wlkn": ["w a l aa k i0 nn a", "w a l aa k i1 n"],
173
+ "wlknh": "w a l aa k i0 nn a h u0",
174
+ "wlknhm": "w a l aa k i0 nn a h u1 m",
175
+ "wlknk": ["w a l aa k i0 nn a k a", "w a l aa k i0 nn a k i0"],
176
+ "wlknkm": "w a l aa k i0 nn a k u1 m",
177
+ "wlknkmA": "w a l aa k i0 nn a k u0 m aa",
178
+ "wlknnA": "w a l aa k i0 nn a n aa",
179
+ "wAlrHmn": ["w a rr a H m aa n i0", "w a rr a H m aa n"],
180
+ "wAllh": ["w a ll aa h i0", "w a ll aa h", "w a ll AA h u0", "w a ll AA h a",
181
+ "w a ll AA h", "w a ll A"],
182
+ "wh*yn": ["w a h aa * a y n i0", "w a h aa * a y n"],
183
+ "Aw": ["< a w"],
184
+ ">w": ["< a w"],
185
+ "Alf": ["< a l f"],
186
+ ">lf": ["< a l f"],
187
+ "b>lf": ["b i0 < a l f"],
188
+ "f>lf": ["f a < a l f"],
189
+ "wAlf": ["w a < a l f"],
190
+ "w>lf": ["w a < a l f"],
191
+ "wb>lf": ["w a b i0 < a l f"],
192
+ "nt": "n i1 t",
193
+ "fydyw": "v i0 d y uu1",
194
+ "lndn": "l A n d u1 n",
195
+ }
196
+
197
+
198
+ def isFixedWord(word, results, pronunciations):
199
+ lastLetter = ""
200
+ if len(word) > 0:
201
+ lastLetter = word[-1]
202
+ if lastLetter == "a":
203
+ lastLetter = ["a", "A"]
204
+ elif lastLetter == "A":
205
+ lastLetter = ["aa"]
206
+ elif lastLetter == "u":
207
+ lastLetter = ["u0"]
208
+ elif lastLetter == "i":
209
+ lastLetter = ["i0"]
210
+ elif lastLetter in unambiguousConsonantMap:
211
+ lastLetter = [unambiguousConsonantMap[lastLetter]]
212
+ import re as _re
213
+ wordConsonants = _re.sub(r"[^h*Ahn'>wl}kmyTtfdb]", "", word)
214
+ if wordConsonants in fixedWords:
215
+ entry = fixedWords[wordConsonants]
216
+ if isinstance(entry, list):
217
+ done = False
218
+ for pronunciation in entry:
219
+ if pronunciation.split(" ")[-1] in lastLetter:
220
+ results += word + " " + pronunciation + "\n"
221
+ pronunciations.append(pronunciation.split(" "))
222
+ done = True
223
+ if not done:
224
+ results += word + " " + entry[0] + "\n"
225
+ pronunciations.append(entry[0].split(" "))
226
+ else:
227
+ results += word + " " + entry + "\n"
228
+ pronunciations.append(entry.split(" "))
229
+ return results
230
+
231
+
232
+ def _process_word(word: str) -> list:
233
+ """Phonetise one already-normalized Buckwalter word (no spaces), return
234
+ its most likely pronunciation as a list of phones — the ``pronunciations[0]``
235
+ the original always appends to ``utterancesPronuncations``."""
236
+ pronunciations = []
237
+ isFixedWord(word, "", pronunciations)
238
+
239
+ emphaticContext = False
240
+ padded = "bb" + word + "ee"
241
+ phones = []
242
+
243
+ for index in range(2, len(padded) - 2):
244
+ letter = padded[index]
245
+ letter1 = padded[index + 1]
246
+ letter2 = padded[index + 2]
247
+ letter_1 = padded[index - 1]
248
+ letter_2 = padded[index - 2]
249
+
250
+ # Upstream's condition here is ``not in emphatics + [u'r'""", u'l'"""]``
251
+ # (both the pristine original and the IqraEval fork, byte-identical) —
252
+ # an adjacent-string-literal typo that concatenates to the single,
253
+ # never-matching string "r, u'l'" rather than the two single letters
254
+ # the comment ("except for Lam and Ra") clearly intends. The actual
255
+ # behavior this typo produces is what generated ``phoneme_ref``, so
256
+ # it is reproduced verbatim here (i.e. "r"/"l" do NOT get an
257
+ # exception — any non-emphatic consonant resets emphaticContext);
258
+ # do not "fix" this to match the comment, it would only regress the
259
+ # match rate against phoneme_ref (see the introducing PR's benchmark
260
+ # history).
261
+ if letter in consonants + ["w", "y"] and letter not in emphatics:
262
+ emphaticContext = False
263
+ if letter in emphatics:
264
+ emphaticContext = True
265
+ if letter1 in emphatics and letter1 not in forwardEmphatics:
266
+ emphaticContext = True
267
+
268
+ if letter in unambiguousConsonantMap:
269
+ phones += [unambiguousConsonantMap[letter]]
270
+
271
+ if letter == "l":
272
+ # point 4: lam-omission (sun letters) restricted to genuine "ال"
273
+ # / word-initial lam, not any lam before a shadda-doubled letter.
274
+ if ((letter1 not in diacritics and letter1 not in vowelMap)
275
+ and letter2 == "~"
276
+ and (letter_1 in ("A", "l", "b")
277
+ or (letter_1 in diacritics and letter_2 in ("A", "l", "b")))):
278
+ phones += [ambiguousConsonantMap["l"][1]]
279
+ else:
280
+ phones += [ambiguousConsonantMap["l"][0]]
281
+
282
+ if letter == "~" and letter_1 not in ("w", "y") and len(phones) > 0:
283
+ phones[-1] += phones[-1]
284
+
285
+ if letter == "|":
286
+ phones += [maddaMap["|"][1] if emphaticContext else maddaMap["|"][0]]
287
+
288
+ if letter == "p":
289
+ phones += [ambiguousConsonantMap["p"][0] if letter1 in diacritics
290
+ else ambiguousConsonantMap["p"][1]]
291
+
292
+ if letter in vowelMap:
293
+ if letter in ("w", "y"):
294
+ if (letter1 in diacriticsWithoutShadda + ["A", "Y"]
295
+ or (letter1 in ("w", "y") and letter2 not in diacritics + ["A", "w", "y"])
296
+ or (letter_1 in diacriticsWithoutShadda and letter1 in consonants + ["e"])):
297
+ if ((letter == "w" and letter_1 == "u" and letter1 not in ("a", "i", "A", "Y"))
298
+ or (letter == "y" and letter_1 == "i" and letter1 not in ("a", "u", "A", "Y"))):
299
+ phones += [vowelMap[letter][1][0] if emphaticContext else vowelMap[letter][0][0]]
300
+ else:
301
+ if letter1 == "A" and letter == "w" and letter2 == "e":
302
+ phones += [[vowelMap[letter][0][0], ambiguousConsonantMap[letter]]]
303
+ else:
304
+ phones += [ambiguousConsonantMap[letter]]
305
+ elif letter1 == "~":
306
+ if (letter_1 == "a" or (letter == "w" and letter_1 in ("i", "y"))
307
+ or (letter == "y" and letter_1 in ("w", "u"))):
308
+ phones += [ambiguousConsonantMap[letter], ambiguousConsonantMap[letter]]
309
+ else:
310
+ phones += [vowelMap[letter][0][0], ambiguousConsonantMap[letter]]
311
+ else:
312
+ if emphaticContext:
313
+ if letter_1 in consonants + ["u", "i"] and letter1 == "e":
314
+ phones += [[vowelMap[letter][1][0], vowelMap[letter][1][0][1:]]]
315
+ else:
316
+ phones += [vowelMap[letter][1][0]]
317
+ else:
318
+ if letter_1 in consonants + ["u", "i"] and letter1 == "e":
319
+ phones += [[vowelMap[letter][0][0], vowelMap[letter][0][0][1:]]]
320
+ else:
321
+ phones += [vowelMap[letter][0][0]]
322
+ if letter in ("u", "i"):
323
+ if emphaticContext:
324
+ if (letter1 in unambiguousConsonantMap or letter1 == "l") and letter2 == "e" and len(padded) > 7:
325
+ phones += [vowelMap[letter][1][1]]
326
+ else:
327
+ phones += [vowelMap[letter][1][0]]
328
+ else:
329
+ if (letter1 in unambiguousConsonantMap or letter1 == "l") and letter2 == "e" and len(padded) > 7:
330
+ phones += [vowelMap[letter][0][1]]
331
+ else:
332
+ phones += [vowelMap[letter][0][0]]
333
+ if letter in ("a", "A", "Y"):
334
+ # point 2: word-initial kaf/waw+alif ambiguity restricted to
335
+ # "-al" (preposition + definite article), not every such word.
336
+ if letter == "A" and letter_1 in ("w", "k") and letter_2 == "b" and letter1 == "l":
337
+ phones += [["a", vowelMap[letter][0][0]]]
338
+ elif letter == "A" and letter_1 in ("u", "i"):
339
+ pass
340
+ elif letter == "A" and letter_1 == "w" and letter1 == "e":
341
+ # point 3: wāw al-jamāʿah — elided alif is the default.
342
+ phones += [[vowelMap[letter][0][1], vowelMap[letter][0][0]]]
343
+ elif letter in ("A", "Y") and letter1 == "e":
344
+ if emphaticContext:
345
+ phones += [[vowelMap[letter][1][0], vowelMap["a"][1]]]
346
+ else:
347
+ phones += [[vowelMap[letter][0][0], vowelMap["a"][0]]]
348
+ else:
349
+ phones += [vowelMap[letter][1][0] if emphaticContext else vowelMap[letter][0][0]]
350
+
351
+ possibilities = 1
352
+ for p in phones:
353
+ if isinstance(p, list):
354
+ possibilities *= len(p)
355
+
356
+ all_pronunciations = []
357
+ for i in range(possibilities):
358
+ pronunciation = []
359
+ iterations = 1
360
+ for p in phones:
361
+ if isinstance(p, list):
362
+ curIndex = (i // iterations) % len(p)
363
+ if p[curIndex] != "":
364
+ pronunciation.append(p[curIndex])
365
+ iterations *= len(p)
366
+ else:
367
+ if p != "":
368
+ pronunciation.append(p)
369
+ all_pronunciations.append(pronunciation)
370
+
371
+ if pronunciations:
372
+ # a fixed-word pronunciation, when found, wins outright (matches the
373
+ # original: isFixedWord already populated `pronunciations` and the
374
+ # main loop's own phones list is generated independently but never
375
+ # consulted when a fixed entry exists — see phonetise_Arabic.py).
376
+ chosen = pronunciations[0]
377
+ else:
378
+ chosen = all_pronunciations[0] if all_pronunciations else []
379
+
380
+ # House-keeping: remove duplicate vowels / duplicate y,w (verbatim).
381
+ prevLetter = ""
382
+ toDelete = []
383
+ for i in range(len(chosen)):
384
+ letter = chosen[i]
385
+ if letter in ("aa", "uu0", "ii0", "AA", "UU0", "II0") and prevLetter.lower() == letter[1:].lower():
386
+ toDelete.append(i - 1)
387
+ chosen[i] = chosen[i - 1][0] + chosen[i - 1]
388
+ if letter in ("u0", "i0") and prevLetter.lower() == letter.lower():
389
+ toDelete.append(i - 1)
390
+ chosen[i] = chosen[i - 1]
391
+ if letter in ("y", "w") and prevLetter == letter:
392
+ chosen[i - 1] += chosen[i - 1]
393
+ toDelete.append(i)
394
+ if letter == "a" and prevLetter == letter:
395
+ toDelete.append(i)
396
+ prevLetter = letter
397
+ for i in reversed(sorted(set(toDelete))):
398
+ del chosen[i]
399
+ return chosen
400
+
401
+
402
+ import re as _re2
403
+
404
+
405
+ def _preprocess_utterance(utterance: str) -> list:
406
+ """Utterance-level normalization from the fork's ``phonetise()``, run on
407
+ the whole Buckwalter-encoded utterance BEFORE splitting into words and
408
+ running :func:`_process_word` on each. This was dropped in an earlier,
409
+ incomplete port of this file — its absence let a mid-utterance
410
+ word-initial alif (the connecting hamzat al-waṣl of "ال"/"ا", silent in
411
+ continuous recitation) get phonetised as a spurious long "aa", among
412
+ other regressions (see the introducing PR's benchmark history for the
413
+ match-rate collapse this caused and the fix). Ported verbatim from
414
+ Iqra-Eval/MSA_phonetiser's ``phonetiser/phonetise_Arabic.py``.
415
+ """
416
+ utterance = utterance.replace("AF", "F")
417
+ utterance = utterance.replace("ـ", "") # tatweel
418
+ utterance = utterance.replace("o", "") # sukun: purely orthographic here
419
+ utterance = utterance.replace("aA", "A")
420
+ utterance = utterance.replace("aY", "Y")
421
+ utterance = _re2.sub(r"([^\-]) A", r"\1 ", utterance)
422
+ utterance = utterance.replace("F", "an")
423
+ utterance = utterance.replace("N", "un")
424
+ utterance = utterance.replace("K", "in")
425
+ utterance = utterance.replace("|", ">A")
426
+
427
+ utterance = _re2.sub(r"^Ai", "<i", utterance)
428
+ utterance = _re2.sub(r"^Aa", ">a", utterance)
429
+ utterance = _re2.sub(r"^Au", ">u", utterance)
430
+ utterance = _re2.sub(r"Ai", "<i", utterance)
431
+ utterance = _re2.sub(r"Aa", ">a", utterance)
432
+ utterance = _re2.sub(r"Au", ">u", utterance)
433
+ utterance = _re2.sub(r"^Al", ">al", utterance)
434
+ utterance = _re2.sub(r" - Al", " - >al", utterance)
435
+ utterance = _re2.sub(r"^- Al", "- >al", utterance)
436
+ utterance = _re2.sub(r"^>([^auAw])", ">a\\1", utterance)
437
+ utterance = _re2.sub(r" >([^auAw ])", " >a\\1", utterance)
438
+ utterance = _re2.sub(r"<([^i])", "<i\\1", utterance)
439
+ utterance = _re2.sub(r" A([^aui])", r" \1", utterance)
440
+ utterance = _re2.sub(r"^A([^aui])", r"\1", utterance)
441
+
442
+ return utterance.split(" ")
443
+
444
+
445
+ def process_utterance(buckwalter_text: str) -> str:
446
+ """Phonetise one Buckwalter-encoded utterance, mirroring mantoq's
447
+ ``process_utterance`` interface: space-separated phones, words joined by
448
+ ``" + "``, ``-``/``sil`` word markers rendered as the ``sil`` token."""
449
+ words = _preprocess_utterance(buckwalter_text)
450
+ out_words = []
451
+ for word in words:
452
+ if word in ("-", "sil"):
453
+ out_words.append(["sil"])
454
+ continue
455
+ out_words.append(_process_word(word))
456
+ return " + ".join(" ".join(w) for w in out_words)