scriptconv 0.0.4a30__tar.gz → 0.0.4a32__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 (526) hide show
  1. {scriptconv-0.0.4a30/scriptconv.egg-info → scriptconv-0.0.4a32}/PKG-INFO +4 -1
  2. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/pyproject.toml +1 -0
  3. scriptconv-0.0.4a32/scriptconv/phonemizers/_vendored/matoub_kab/__init__.py +143 -0
  4. scriptconv-0.0.4a32/scriptconv/phonemizers/ber.py +62 -0
  5. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/enums.py +2 -0
  6. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/mul.py +99 -1
  7. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/registry.py +2 -0
  8. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/version.py +1 -1
  9. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32/scriptconv.egg-info}/PKG-INFO +4 -1
  10. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv.egg-info/SOURCES.txt +4 -0
  11. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv.egg-info/requires.txt +4 -0
  12. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/tests/test_phonemizers_base.py +2 -1
  13. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/tests/test_phonemizers_friendly_import_errors.py +5 -1
  14. scriptconv-0.0.4a32/tests/test_phonemizers_matoub_kab.py +137 -0
  15. scriptconv-0.0.4a32/tests/test_phonemizers_phonetisaurus.py +201 -0
  16. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/LICENSE +0 -0
  17. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/README.md +0 -0
  18. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/requirements.txt +0 -0
  19. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/__init__.py +0 -0
  20. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/__main__.py +0 -0
  21. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/cangjie.py +0 -0
  22. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/conventions.py +0 -0
  23. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/data/__init__.py +0 -0
  24. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/data/cangjie5_tc.tsv.gz +0 -0
  25. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/diacritics.py +0 -0
  26. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/graph.py +0 -0
  27. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/notation.py +0 -0
  28. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/__init__.py +0 -0
  29. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_thirdparty/__init__.py +0 -0
  30. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_thirdparty/bw2ipa.py +0 -0
  31. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_thirdparty/hangul2ipa.py +0 -0
  32. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_thirdparty/ko_tables/aspiration.csv +0 -0
  33. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_thirdparty/ko_tables/assimilation.csv +0 -0
  34. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_thirdparty/ko_tables/double_coda.csv +0 -0
  35. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_thirdparty/ko_tables/hanja.tsv +0 -0
  36. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_thirdparty/ko_tables/ipa.csv +0 -0
  37. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_thirdparty/ko_tables/neutralization.csv +0 -0
  38. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_thirdparty/ko_tables/tensification.csv +0 -0
  39. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_thirdparty/ko_tables/yale.csv +0 -0
  40. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_thirdparty/shami/__init__.py +0 -0
  41. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_thirdparty/shami/codeswitch.py +0 -0
  42. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_thirdparty/shami/diacritize.py +0 -0
  43. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_thirdparty/shami/dialectal.py +0 -0
  44. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_thirdparty/shami/english_g2p.py +0 -0
  45. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_thirdparty/shami/espeak.py +0 -0
  46. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_thirdparty/shami/frontend.py +0 -0
  47. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_thirdparty/shami/levantine_g2p.py +0 -0
  48. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_thirdparty/shami/normalize.py +0 -0
  49. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_thirdparty/shami/phoneme_inventory.py +0 -0
  50. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_thirdparty/vosk_g2p.py +0 -0
  51. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_thirdparty/zh_num.py +0 -0
  52. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/__init__.py +0 -0
  53. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/DATA_LICENSE.md +0 -0
  54. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/LICENSE.md +0 -0
  55. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/__init__.py +0 -0
  56. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/cli.py +0 -0
  57. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/convert.py +0 -0
  58. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/data/ipa_universal_graphemes.json +0 -0
  59. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/data/registry.json +0 -0
  60. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/english.py +0 -0
  61. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/fallback.py +0 -0
  62. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/g2p.py +0 -0
  63. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/aar.json +0 -0
  64. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/abi.json +0 -0
  65. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/acd.json +0 -0
  66. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ach.json +0 -0
  67. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/acz.json +0 -0
  68. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ada.json +0 -0
  69. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ade.json +0 -0
  70. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/adj.json +0 -0
  71. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/aeb.json +0 -0
  72. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ael.json +0 -0
  73. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/afr.json +0 -0
  74. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ags.json +0 -0
  75. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/aha.json +0 -0
  76. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/aiw.json +0 -0
  77. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ajg.json +0 -0
  78. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/akp.json +0 -0
  79. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/aks.json +0 -0
  80. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/aku.json +0 -0
  81. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/alz.json +0 -0
  82. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/amb.json +0 -0
  83. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/amf.json +0 -0
  84. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/amh.json +0 -0
  85. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/anc.json +0 -0
  86. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ank.json +0 -0
  87. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ann.json +0 -0
  88. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/any.json +0 -0
  89. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/apd.json +0 -0
  90. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ara.json +0 -0
  91. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/arb.json +0 -0
  92. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ary.json +0 -0
  93. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/arz.json +0 -0
  94. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ato.json +0 -0
  95. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/avi.json +0 -0
  96. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/avn.json +0 -0
  97. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/avu.json +0 -0
  98. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ayb.json +0 -0
  99. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/azo.json +0 -0
  100. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bam.json +0 -0
  101. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bas.json +0 -0
  102. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bav.json +0 -0
  103. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bax.json +0 -0
  104. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bba.json +0 -0
  105. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bbq.json +0 -0
  106. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bci.json +0 -0
  107. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bcq.json +0 -0
  108. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bde.json +0 -0
  109. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bdj.json +0 -0
  110. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bdu.json +0 -0
  111. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bec.json +0 -0
  112. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/beh.json +0 -0
  113. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bej.json +0 -0
  114. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bem.json +0 -0
  115. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bex.json +0 -0
  116. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bfa.json +0 -0
  117. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bfj.json +0 -0
  118. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bfm.json +0 -0
  119. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bhy.json +0 -0
  120. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bib.json +0 -0
  121. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bim.json +0 -0
  122. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bin.json +0 -0
  123. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bjo.json +0 -0
  124. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bjt.json +0 -0
  125. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bkc.json +0 -0
  126. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bkm.json +0 -0
  127. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bky.json +0 -0
  128. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ble.json +0 -0
  129. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/blm.json +0 -0
  130. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bng.json +0 -0
  131. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bni.json +0 -0
  132. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bol.json +0 -0
  133. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bom.json +0 -0
  134. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bot.json +0 -0
  135. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/boy.json +0 -0
  136. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/boz.json +0 -0
  137. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bqj.json +0 -0
  138. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bqp.json +0 -0
  139. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bqx.json +0 -0
  140. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bsc.json +0 -0
  141. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bsq.json +0 -0
  142. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/buc.json +0 -0
  143. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bud.json +0 -0
  144. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/buf.json +0 -0
  145. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bum.json +0 -0
  146. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bva.json +0 -0
  147. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bvm.json +0 -0
  148. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bwj.json +0 -0
  149. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bxk.json +0 -0
  150. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/byn.json +0 -0
  151. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/byv.json +0 -0
  152. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bza.json +0 -0
  153. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/cgg.json +0 -0
  154. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/cjk.json +0 -0
  155. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/cko.json +0 -0
  156. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/cme.json +0 -0
  157. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/cop.json +0 -0
  158. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/daa.json +0 -0
  159. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/daf.json +0 -0
  160. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dag.json +0 -0
  161. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dbq.json +0 -0
  162. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dec.json +0 -0
  163. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dgd.json +0 -0
  164. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/did.json +0 -0
  165. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/din.json +0 -0
  166. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dmf.json +0 -0
  167. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dnj.json +0 -0
  168. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dop-benin.json +0 -0
  169. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dop-benin2.json +0 -0
  170. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dow.json +0 -0
  171. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dsh.json +0 -0
  172. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dua.json +0 -0
  173. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dug.json +0 -0
  174. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dyo.json +0 -0
  175. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dyu.json +0 -0
  176. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dzd.json +0 -0
  177. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ebo.json +0 -0
  178. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ebr.json +0 -0
  179. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/efi.json +0 -0
  180. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ell.json +0 -0
  181. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ema.json +0 -0
  182. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/emk.json +0 -0
  183. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/eng.json +0 -0
  184. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/enn.json +0 -0
  185. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/etn.json +0 -0
  186. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/eto.json +0 -0
  187. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ewe.json +0 -0
  188. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ewo.json +0 -0
  189. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/fak.json +0 -0
  190. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/fat.json +0 -0
  191. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ffm.json +0 -0
  192. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/fia.json +0 -0
  193. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/flr.json +0 -0
  194. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/fmp.json +0 -0
  195. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/fng.json +0 -0
  196. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/fod.json +0 -0
  197. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/fon.json +0 -0
  198. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/fuc.json +0 -0
  199. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/fue.json +0 -0
  200. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gaa.json +0 -0
  201. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gej.json +0 -0
  202. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gez.json +0 -0
  203. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gfe.json +0 -0
  204. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gha.json +0 -0
  205. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gho.json +0 -0
  206. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gjn.json +0 -0
  207. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gng.json +0 -0
  208. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/god.json +0 -0
  209. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gog.json +0 -0
  210. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gou.json +0 -0
  211. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/grb.json +0 -0
  212. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/grr.json +0 -0
  213. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gud.json +0 -0
  214. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/guk.json +0 -0
  215. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gur.json +0 -0
  216. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gux.json +0 -0
  217. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/guz.json +0 -0
  218. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gwa.json +0 -0
  219. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gwd.json +0 -0
  220. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gwr.json +0 -0
  221. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gxx.json +0 -0
  222. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/hag.json +0 -0
  223. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/har.json +0 -0
  224. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/hau-niger.json +0 -0
  225. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/hau-nigeria.json +0 -0
  226. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/hay.json +0 -0
  227. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/hdy.json +0 -0
  228. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/hts.json +0 -0
  229. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ibo.json +0 -0
  230. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/igb.json +0 -0
  231. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ige.json +0 -0
  232. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/igl.json +0 -0
  233. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/igo.json +0 -0
  234. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ikw.json +0 -0
  235. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/irk.json +0 -0
  236. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/iso.json +0 -0
  237. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/jib.json +0 -0
  238. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kab.json +0 -0
  239. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kbo.json +0 -0
  240. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kbp.json +0 -0
  241. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kbr.json +0 -0
  242. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kcn.json +0 -0
  243. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kde.json +0 -0
  244. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kdh.json +0 -0
  245. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kdj.json +0 -0
  246. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kdn.json +0 -0
  247. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kdx.json +0 -0
  248. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kea.json +0 -0
  249. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kec.json +0 -0
  250. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ker.json +0 -0
  251. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/khq.json +0 -0
  252. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/khy.json +0 -0
  253. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kik.json +0 -0
  254. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kin.json +0 -0
  255. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kiz.json +0 -0
  256. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kmb.json +0 -0
  257. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/knc.json +0 -0
  258. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/knf.json +0 -0
  259. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/koo.json +0 -0
  260. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kpe.json +0 -0
  261. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kqs.json +0 -0
  262. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/krb.json +0 -0
  263. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kri.json +0 -0
  264. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ksb.json +0 -0
  265. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ktz.json +0 -0
  266. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kuj.json +0 -0
  267. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kus.json +0 -0
  268. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lad.json +0 -0
  269. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lai.json +0 -0
  270. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lch.json +0 -0
  271. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ldd.json +0 -0
  272. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lgg.json +0 -0
  273. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lgq.json +0 -0
  274. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lig.json +0 -0
  275. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lin.json +0 -0
  276. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lky.json +0 -0
  277. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lln.json +0 -0
  278. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lma.json +0 -0
  279. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lmd.json +0 -0
  280. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lmp.json +0 -0
  281. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lns.json +0 -0
  282. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/loi.json +0 -0
  283. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lok.json +0 -0
  284. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lol.json +0 -0
  285. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lot.json +0 -0
  286. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lpx.json +0 -0
  287. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lub.json +0 -0
  288. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/luc.json +0 -0
  289. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lue.json +0 -0
  290. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lug.json +0 -0
  291. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lul.json +0 -0
  292. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lun.json +0 -0
  293. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/luw.json +0 -0
  294. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mas.json +0 -0
  295. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/maw.json +0 -0
  296. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mck.json +0 -0
  297. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mcp.json +0 -0
  298. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mcu.json +0 -0
  299. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mdj.json +0 -0
  300. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mev.json +0 -0
  301. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mfb.json +0 -0
  302. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mfe.json +0 -0
  303. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mfi.json +0 -0
  304. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mfq.json +0 -0
  305. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mgc.json +0 -0
  306. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mgd.json +0 -0
  307. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mgh.json +0 -0
  308. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mhi.json +0 -0
  309. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mkf.json +0 -0
  310. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mkw.json +0 -0
  311. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mlg.json +0 -0
  312. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mlw.json +0 -0
  313. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mmo.json +0 -0
  314. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mmy.json +0 -0
  315. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mnf.json +0 -0
  316. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mnk.json +0 -0
  317. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mos.json +0 -0
  318. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mpg.json +0 -0
  319. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mqu.json +0 -0
  320. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mse.json +0 -0
  321. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mur.json +0 -0
  322. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mwe.json +0 -0
  323. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/myf.json +0 -0
  324. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/myk.json +0 -0
  325. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/myo.json +0 -0
  326. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/myx.json +0 -0
  327. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mzk.json +0 -0
  328. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/naw.json +0 -0
  329. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nba.json +0 -0
  330. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ncu.json +0 -0
  331. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ndb.json +0 -0
  332. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ndo.json +0 -0
  333. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ney.json +0 -0
  334. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nfr.json +0 -0
  335. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nga.json +0 -0
  336. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ngb-zaire.json +0 -0
  337. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ngb-zaire2.json +0 -0
  338. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ngh.json +0 -0
  339. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ngi.json +0 -0
  340. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nhb.json +0 -0
  341. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nhu.json +0 -0
  342. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nhw.json +0 -0
  343. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nko.json +0 -0
  344. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nmn.json +0 -0
  345. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nmq.json +0 -0
  346. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nnb.json +0 -0
  347. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nnh.json +0 -0
  348. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nnw.json +0 -0
  349. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nqo.json +0 -0
  350. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nso.json +0 -0
  351. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nuj.json +0 -0
  352. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nup.json +0 -0
  353. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nus.json +0 -0
  354. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nwb.json +0 -0
  355. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nya.json +0 -0
  356. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nym.json +0 -0
  357. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nzd.json +0 -0
  358. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nzi.json +0 -0
  359. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ogc.json +0 -0
  360. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/oku.json +0 -0
  361. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/onw.json +0 -0
  362. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/pae.json +0 -0
  363. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/pbi.json +0 -0
  364. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/pny.json +0 -0
  365. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/pov.json +0 -0
  366. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/puu.json +0 -0
  367. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/pze.json +0 -0
  368. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/rel.json +0 -0
  369. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/rmt.json +0 -0
  370. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/rng.json +0 -0
  371. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/run.json +0 -0
  372. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sad.json +0 -0
  373. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sag-central_african_republic.json +0 -0
  374. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sag-congo.json +0 -0
  375. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sav.json +0 -0
  376. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sef-cote_d_ivoire.json +0 -0
  377. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sef-cote_d_ivoire2.json +0 -0
  378. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/seh.json +0 -0
  379. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/she.json +0 -0
  380. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/shk.json +0 -0
  381. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/shu.json +0 -0
  382. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/shy.json +0 -0
  383. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sig.json +0 -0
  384. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/siz.json +0 -0
  385. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sld.json +0 -0
  386. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sna.json +0 -0
  387. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/snk-senegal.json +0 -0
  388. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/snk.json +0 -0
  389. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sok.json +0 -0
  390. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sop.json +0 -0
  391. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/spa.json +0 -0
  392. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/spy.json +0 -0
  393. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ssl.json +0 -0
  394. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ssn.json +0 -0
  395. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ssw.json +0 -0
  396. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/suk.json +0 -0
  397. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sur.json +0 -0
  398. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sus.json +0 -0
  399. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/swb.json +0 -0
  400. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/swh.json +0 -0
  401. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sym.json +0 -0
  402. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/szg.json +0 -0
  403. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tan.json +0 -0
  404. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/taq.json +0 -0
  405. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/taz.json +0 -0
  406. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tbt.json +0 -0
  407. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tbz.json +0 -0
  408. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ted.json +0 -0
  409. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tem.json +0 -0
  410. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/teo.json +0 -0
  411. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/thv.json +0 -0
  412. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/thz.json +0 -0
  413. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tig.json +0 -0
  414. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tik.json +0 -0
  415. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tir.json +0 -0
  416. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tmc.json +0 -0
  417. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tnr.json +0 -0
  418. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/toh.json +0 -0
  419. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/toq.json +0 -0
  420. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/trc.json +0 -0
  421. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tsc.json +0 -0
  422. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tso.json +0 -0
  423. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tsp.json +0 -0
  424. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ttq.json +0 -0
  425. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tui.json +0 -0
  426. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tum.json +0 -0
  427. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tuq.json +0 -0
  428. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tuz.json +0 -0
  429. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/twi.json +0 -0
  430. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tzm.json +0 -0
  431. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/uba.json +0 -0
  432. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/udu.json +0 -0
  433. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ukv.json +0 -0
  434. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/urh.json +0 -0
  435. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/vag.json +0 -0
  436. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/vai.json +0 -0
  437. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ven.json +0 -0
  438. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/vmw.json +0 -0
  439. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/vut.json +0 -0
  440. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/wan.json +0 -0
  441. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/wib.json +0 -0
  442. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/wmw.json +0 -0
  443. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/wob.json +0 -0
  444. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/wol.json +0 -0
  445. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/wwa.json +0 -0
  446. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/xho.json +0 -0
  447. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/xog.json +0 -0
  448. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/xon.json +0 -0
  449. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/xrb.json +0 -0
  450. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/xsm.json +0 -0
  451. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/yam.json +0 -0
  452. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/yat.json +0 -0
  453. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ybb.json +0 -0
  454. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/yid.json +0 -0
  455. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/yko.json +0 -0
  456. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/yor.json +0 -0
  457. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/yun.json +0 -0
  458. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/zag.json +0 -0
  459. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/zen.json +0 -0
  460. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ziw.json +0 -0
  461. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/zne.json +0 -0
  462. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/languages/zul.json +0 -0
  463. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/loader.py +0 -0
  464. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/normalizer.py +0 -0
  465. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/africa_g2p/pipeline.py +0 -0
  466. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/iqra_phonetiser/LICENSE.md +0 -0
  467. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/iqra_phonetiser/__init__.py +0 -0
  468. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/iqra_phonetiser/phonetiser.py +0 -0
  469. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/kog2p/LICENSE.md +0 -0
  470. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/kog2p/__init__.py +0 -0
  471. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/kog2p/rulebook.txt +0 -0
  472. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/mantoq/LICENSE.md +0 -0
  473. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/mantoq/__init__.py +0 -0
  474. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/mantoq/buck/__init__.py +0 -0
  475. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/mantoq/buck/phonetise_buckwalter.py +0 -0
  476. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/mantoq/buck/symbols.py +0 -0
  477. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/mantoq/buck/tokenization.py +0 -0
  478. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/mantoq/num2words.py +0 -0
  479. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/_vendored/mantoq/unicode_symbol2label.py +0 -0
  480. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/africa.py +0 -0
  481. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/ar.py +0 -0
  482. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/base.py +0 -0
  483. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/en.py +0 -0
  484. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/eu.py +0 -0
  485. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/fa.py +0 -0
  486. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/ghana.py +0 -0
  487. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/gl.py +0 -0
  488. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/he.py +0 -0
  489. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/ja.py +0 -0
  490. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/ko.py +0 -0
  491. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/mwl.py +0 -0
  492. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/o2ipa.py +0 -0
  493. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/pt.py +0 -0
  494. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/ru.py +0 -0
  495. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/shami.py +0 -0
  496. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/vi.py +0 -0
  497. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/phonemizers/zh.py +0 -0
  498. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/py.typed +0 -0
  499. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/readings.py +0 -0
  500. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/scripts.py +0 -0
  501. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv/translit.py +0 -0
  502. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv.egg-info/dependency_links.txt +0 -0
  503. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/scriptconv.egg-info/top_level.txt +0 -0
  504. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/setup.cfg +0 -0
  505. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/tests/test_arpa_stress.py +0 -0
  506. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/tests/test_cangjie.py +0 -0
  507. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/tests/test_cli.py +0 -0
  508. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/tests/test_conventions.py +0 -0
  509. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/tests/test_diacritics.py +0 -0
  510. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/tests/test_diacritics_graph.py +0 -0
  511. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/tests/test_errors_policy.py +0 -0
  512. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/tests/test_examples.py +0 -0
  513. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/tests/test_graph.py +0 -0
  514. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/tests/test_he_extra_declares_phonikud.py +0 -0
  515. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/tests/test_notation.py +0 -0
  516. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/tests/test_phonemizers_africa.py +0 -0
  517. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/tests/test_phonemizers_cjk_ar.py +0 -0
  518. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/tests/test_phonemizers_ghana.py +0 -0
  519. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/tests/test_phonemizers_halabi_iqra.py +0 -0
  520. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/tests/test_phonemizers_pt_tugaphone.py +0 -0
  521. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/tests/test_phonemizers_ru.py +0 -0
  522. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/tests/test_readings.py +0 -0
  523. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/tests/test_readings_zh.py +0 -0
  524. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/tests/test_scripts.py +0 -0
  525. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/tests/test_scripts_stressonnx_compat.py +0 -0
  526. {scriptconv-0.0.4a30 → scriptconv-0.0.4a32}/tests/test_translit.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: scriptconv
3
- Version: 0.0.4a30
3
+ Version: 0.0.4a32
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
@@ -42,6 +42,9 @@ Requires-Dist: epitran; extra == "epitran"
42
42
  Provides-Extra: transphone
43
43
  Requires-Dist: scriptconv[phonemizers]; extra == "transphone"
44
44
  Requires-Dist: transphone; extra == "transphone"
45
+ Provides-Extra: phonetisaurus
46
+ Requires-Dist: scriptconv[phonemizers]; extra == "phonetisaurus"
47
+ Requires-Dist: phonetisaurus; extra == "phonetisaurus"
45
48
  Provides-Extra: misaki
46
49
  Requires-Dist: scriptconv[phonemizers]; extra == "misaki"
47
50
  Requires-Dist: misaki; extra == "misaki"
@@ -42,6 +42,7 @@ gruut = ["scriptconv[phonemizers]", "gruut"]
42
42
  goruut = ["scriptconv[phonemizers]", "pygoruut"]
43
43
  epitran = ["scriptconv[phonemizers]", "epitran"]
44
44
  transphone = ["scriptconv[phonemizers]", "transphone"]
45
+ phonetisaurus = ["scriptconv[phonemizers]", "phonetisaurus"]
45
46
  misaki = ["scriptconv[phonemizers]", "misaki"]
46
47
  byt5 = ["scriptconv[phonemizers]", "onnxruntime", "numpy"]
47
48
  o2i = ["scriptconv[phonemizers]", "orthography2ipa"]
@@ -0,0 +1,143 @@
1
+ """Vendored Kabyle grapheme-to-phoneme rules from agbalu/Matoub-82M.
2
+
3
+ Source: https://huggingface.co/agbalu/Matoub-82M, file ``tokenization_matoub.py``
4
+ at revision ``3d00056f3663d4d1d364e9b12c21230685a0ba9a``, sha256
5
+ ``c95fdf4bd23efa649287662a0059d9053d17c8cab4fade383784e084cc422416``, the value
6
+ the model's own ``export.stats.json`` records for that file. Licence Apache-2.0,
7
+ the same licence this repository uses. See ``LICENSE.md`` beside this file.
8
+
9
+ Only the rule functions are kept. The upstream ``MatoubTokenizer`` class is
10
+ dropped: it subclasses ``transformers.PreTrainedTokenizer``, and scriptconv
11
+ emits phoneme strings, not model ids. The ``vocab.json`` constant goes with it.
12
+ The rules themselves are unchanged, because a caller that feeds Matoub-82M needs
13
+ the exact string that model was fitted on.
14
+
15
+ The upstream file states that these rules are a copy of ``agbalu.tts.g2p`` and
16
+ ``agbalu.tts.kokoro``, kept in step by a test in that project. This copy is one
17
+ step further away, so ``tests/test_phonemizers_matoub_kab.py`` holds it to
18
+ measured outputs.
19
+ """
20
+
21
+ from __future__ import annotations
22
+
23
+ import re
24
+ from typing import Final
25
+
26
+
27
+ VOWELS: Final = frozenset("aeiou")
28
+
29
+ BACKING_TRIGGERS: Final = frozenset("ḍṣṭẓṛqɣx")
30
+
31
+ SPIRANTS: Final[dict[str, tuple[str, str]]] = {
32
+ "b": ("β", "b"),
33
+ "d": ("ð", "d"),
34
+ "g": ("ʝ", "ɡ"),
35
+ "k": ("ç", "k"),
36
+ "t": ("θ", "t"),
37
+ "ḍ": ("ðˤ", "dˤ"),
38
+ }
39
+
40
+ PLAIN: Final[dict[str, str]] = {
41
+ "a": "æ",
42
+ "c": "ʃ",
43
+ "e": "ə",
44
+ "f": "f",
45
+ "h": "h",
46
+ "i": "i",
47
+ "j": "ʒ",
48
+ "l": "l",
49
+ "m": "m",
50
+ "n": "n",
51
+ "o": "o",
52
+ "p": "p",
53
+ "q": "q",
54
+ "r": "r",
55
+ "s": "s",
56
+ "u": "u",
57
+ "v": "v",
58
+ "w": "w",
59
+ "x": "χ",
60
+ "y": "j",
61
+ "z": "z",
62
+ "č": "t͡ʃ",
63
+ "ǧ": "d͡ʒ",
64
+ "ɛ": "ʕ",
65
+ "ɣ": "ʁ",
66
+ "ḥ": "ħ",
67
+ "ṛ": "rˤ",
68
+ "ṣ": "sˤ",
69
+ "ṭ": "tˤ",
70
+ "ẓ": "zˤ",
71
+ }
72
+
73
+ NASAL_ASSIMILATION: Final[dict[str, str]] = {"f": "m", "m": "m", "y": "ɲ", "q": "ŋ", "x": "ŋ"}
74
+
75
+ FOLD: Final[dict[str, str]] = {"t͡ʃ": "ʧ", "d͡ʒ": "ʤ"}
76
+ """Tie-bar sequences the base model already carries as single symbols."""
77
+
78
+ LEGACY_TENSE_T: Final = "ţ"
79
+ LENGTH: Final = "ː"
80
+ BOUNDARY: Final = " "
81
+
82
+ _SPLIT: Final = re.compile(r"[\s\-]+")
83
+ _STRIP: Final = "«»\"'“”‘’.,;:!?()[]{}…"
84
+
85
+
86
+ class PhonemeError(ValueError):
87
+ """A character with no rule."""
88
+
89
+
90
+ def _segment(word: str) -> list[tuple[str, bool]]:
91
+ segments: list[tuple[str, bool]] = []
92
+ index = 0
93
+ while index < len(word):
94
+ char = word[index]
95
+ paired = index + 1 < len(word) and word[index + 1] == char and char not in VOWELS
96
+ segments.append((char, paired))
97
+ index += 2 if paired else 1
98
+ return segments
99
+
100
+
101
+ def _backed(chars: list[str], position: int) -> bool:
102
+ before = chars[position - 1] if position > 0 else ""
103
+ after = chars[position + 1] if position + 1 < len(chars) else ""
104
+ return before in BACKING_TRIGGERS or after in BACKING_TRIGGERS
105
+
106
+
107
+ def phonemize_word(word: str) -> str:
108
+ """One orthographic word to IPA. Raises on any character without a rule."""
109
+ segments = _segment(word.casefold())
110
+ chars = [char for char, _ in segments]
111
+ out: list[str] = []
112
+ for position, (char, geminate) in enumerate(segments):
113
+ if char == LEGACY_TENSE_T:
114
+ out.append(SPIRANTS["t"][1] + LENGTH)
115
+ continue
116
+ if char in SPIRANTS:
117
+ short, stop = SPIRANTS[char]
118
+ out.append(stop + LENGTH if geminate else short)
119
+ continue
120
+ if char not in PLAIN:
121
+ message = f"no rule for {char!r} (U+{ord(char):04X}) in {word!r}"
122
+ raise PhonemeError(message)
123
+ if char == "a" and _backed(chars, position):
124
+ symbol = "ɑ"
125
+ elif char == "n" and not geminate and position + 1 < len(chars):
126
+ symbol = NASAL_ASSIMILATION.get(chars[position + 1], PLAIN["n"])
127
+ else:
128
+ symbol = PLAIN[char]
129
+ out.append(symbol + LENGTH if geminate else symbol)
130
+ return "".join(out)
131
+
132
+
133
+ def fold(ipa: str) -> str:
134
+ """Rewrite tie-bar affricates onto the base model's own single symbols."""
135
+ for sequence, symbol in FOLD.items():
136
+ ipa = ipa.replace(sequence, symbol)
137
+ return ipa
138
+
139
+
140
+ def phonemize(text: str) -> str:
141
+ """A Kabyle sentence to the phoneme string the model was fitted on."""
142
+ words = [token.strip(_STRIP) for token in _SPLIT.split(text) if token.strip(_STRIP)]
143
+ return fold(BOUNDARY.join(phonemize_word(word) for word in words))
@@ -0,0 +1,62 @@
1
+ """Berber phonemizers.
2
+
3
+ Kabyle (``kab``) through the rule set that ``agbalu/Matoub-82M`` was fitted on.
4
+
5
+ This is deliberately a separate route from :class:`AfricaG2PPhonemizer`, which
6
+ also answers ``kab``. The two are different phonemizers and their output
7
+ differs, so they are not interchangeable:
8
+
9
+ =============== =========================== ==============
10
+ text africa-g2p Matoub
11
+ =============== =========================== ==============
12
+ ``taddart`` ``t a ð ð a r t`` ``θædːærθ``
13
+ ``ameqqran`` ``a m ə q q r a n`` ``æməqːræn``
14
+ ``aqcic`` ``a q ʃ i ʃ`` ``ɑqʃiʃ``
15
+ =============== =========================== ==============
16
+
17
+ africa-g2p does not spirantise the initial ``t``, writes gemination as a
18
+ doubled symbol rather than length, and does not back ``/a/`` beside a backing
19
+ consonant. A caller driving Matoub-82M needs the Matoub string: the other one
20
+ carries symbols that model has no embedding row for.
21
+ """
22
+ from typing import List
23
+
24
+ from scriptconv.phonemizers.base import BasePhonemizer
25
+ from scriptconv.phonemizers.enums import Alphabet
26
+
27
+
28
+ class MatoubKabylePhonemizer(BasePhonemizer):
29
+ """Kabyle Latin orthography to the IPA string ``agbalu/Matoub-82M`` reads.
30
+
31
+ The rules are vendored under ``_vendored/matoub_kab`` (Apache-2.0, the same
32
+ licence as this repository) and need nothing outside the standard library.
33
+
34
+ The rules raise on a character they have no rule for, and that is kept on
35
+ purpose. The upstream file records that silent deletion already cost three
36
+ Kabyle consonants once, so an unknown symbol is reported rather than
37
+ dropped.
38
+ """
39
+
40
+ _LANGS: List[str] = ["kab"]
41
+
42
+ def __init__(self):
43
+ super().__init__(Alphabet.IPA)
44
+
45
+ @classmethod
46
+ def supported_langs(cls) -> List[str]:
47
+ return list(cls._LANGS)
48
+
49
+ @classmethod
50
+ def get_lang(cls, target_lang: str) -> str:
51
+ """Validate *target_lang* against the one language these rules cover.
52
+
53
+ Raises:
54
+ ValueError: if the language code is not Kabyle.
55
+ """
56
+ return cls.match_lang(target_lang, cls._LANGS)
57
+
58
+ def phonemize_string(self, text: str, lang: str = "kab") -> str:
59
+ self.get_lang(lang)
60
+ from scriptconv.phonemizers._vendored.matoub_kab import phonemize
61
+
62
+ return phonemize(text)
@@ -52,6 +52,7 @@ class Phonemizer(str, Enum):
52
52
  BYT5 = "byt5"
53
53
  CHARSIU = "charsiu" # technically same as byt5, but needs special handling for whitespace
54
54
  TRANSPHONE = "transphone"
55
+ PHONETISAURUS = "phonetisaurus" # WFST g2p; language and symbols come from the model
55
56
  MIRANDESE = "mwl_phonemizer"
56
57
 
57
58
  DEEPPHONEMIZER = "deepphonemizer" # en
@@ -85,3 +86,4 @@ class Phonemizer(str, Enum):
85
86
  ORTHOGRAPHY2IPA = "orthography2ipa" # multilingual data-driven IPA (o2i lattice)
86
87
  AFRICA_G2P = "africa_g2p" # rule-based G2P for 400+ African languages (native units or IPA)
87
88
  GHANA_G2P = "ghana_g2p" # africa-g2p rules patched for 42 Ghanaian languages (native units or IPA)
89
+ MATOUB_KAB = "matoub_kab" # kabyle — the rule set agbalu/Matoub-82M was fitted on
@@ -9,7 +9,7 @@ if TYPE_CHECKING:
9
9
  import numpy as np
10
10
 
11
11
  from scriptconv.phonemizers.enums import Alphabet
12
- from scriptconv.phonemizers.base import BasePhonemizer
12
+ from scriptconv.phonemizers.base import BasePhonemizer, _check_alphabet
13
13
  # minimal ONNX session construction — scriptconv has no provider
14
14
  # machinery; consumers wanting CUDA/etc. pass providers= explicitly
15
15
  ProviderSpec = str
@@ -1465,3 +1465,101 @@ class TransphonePhonemizer(BasePhonemizer):
1465
1465
  [p if p != "<SPACE>" else " "
1466
1466
  for p in pho.tokenize(text, use_space=True)]
1467
1467
  ).strip()
1468
+
1469
+
1470
+ class PhonetisaurusPhonemizer(BasePhonemizer):
1471
+ """WFST grapheme-to-phoneme, through the ``phonetisaurus`` bindings.
1472
+
1473
+ https://github.com/AdolfVonKleist/Phonetisaurus
1474
+
1475
+ Phonetisaurus has no rules and no language list of its own: all of its
1476
+ knowledge is in one trained FST, so the language and the symbol set are
1477
+ properties of the MODEL, not of this wrapper. That has three consequences,
1478
+ and each one is a design decision rather than a limitation to work around:
1479
+
1480
+ * ``model`` is required. scriptconv never downloads a model (the same rule
1481
+ :class:`ByT5Phonemizer` follows). ``MODEL_SOURCES`` names where published
1482
+ models live; a caller resolves one and passes the path.
1483
+ * ``alphabet`` is declared by the caller, because only the caller knows
1484
+ what the model was trained to emit. A CMUdict-trained model emits ARPA,
1485
+ an o2i-trained or espeak-trained one emits IPA. The wrapper cannot read
1486
+ it off the FST, so it does not guess.
1487
+ * There is no language check and no ``LANG_DEFAULTS`` entry. A wrapper that
1488
+ cannot know its own model's language must not be any language's default.
1489
+
1490
+ ``phonetisaurus`` ships the binaries it drives, so no system package is
1491
+ needed. Training a model needs the bundled ``estimate-ngram``, which is not
1492
+ exercised here: this wrapper only applies a model.
1493
+ """
1494
+
1495
+ #: Where published FSTs come from. Documentation, never a download.
1496
+ MODEL_SOURCES = {
1497
+ "rhasspy": "https://github.com/rhasspy/*-g2p (one g2p.fst per language)",
1498
+ "cmudict": "trained from CMUdict with 'phonetisaurus train' (ARPA symbols)",
1499
+ }
1500
+
1501
+ #: Symbol sets a Phonetisaurus model is known to be trained on. The wrapper
1502
+ #: passes the model's symbols through untouched, so this list says which
1503
+ #: declarations are meaningful, not which conversions happen.
1504
+ SUPPORTED_ALPHABETS = [Alphabet.IPA, Alphabet.ARPA, Alphabet.SAMPA,
1505
+ Alphabet.XSAMPA, Alphabet.GRAPHEMES]
1506
+
1507
+ def __init__(self, model: Optional[str] = None,
1508
+ alphabet: Alphabet = Alphabet.IPA,
1509
+ nbest: int = 1,
1510
+ separator: str = " ",
1511
+ normalizer=None):
1512
+ """
1513
+ Args:
1514
+ model: path to a trained Phonetisaurus FST. Required.
1515
+ alphabet: the symbol set the model emits. The caller states it.
1516
+ nbest: how many pronunciations the engine ranks per word. The
1517
+ BEST one is returned whatever this is, so a higher value
1518
+ changes the search, not the output shape. ``predict`` prints
1519
+ one line per ranked pronunciation, best first, and yields one
1520
+ pair per line, so the wrapper keeps the FIRST pair it sees for
1521
+ a word and drops the rest.
1522
+ separator: joins the symbols of one word. Models are trained on
1523
+ symbol sequences, so the parts need a separator to stay
1524
+ readable; pass "" for a bare string.
1525
+ normalizer: see :class:`BasePhonemizer`.
1526
+ """
1527
+ _check_alphabet(self, alphabet, self.SUPPORTED_ALPHABETS)
1528
+ super().__init__(alphabet, normalizer=normalizer)
1529
+ try:
1530
+ import phonetisaurus
1531
+ except ImportError as e:
1532
+ raise ImportError(
1533
+ "phonetisaurus is required for the Phonetisaurus phonemizer. "
1534
+ "Install it with 'pip install phonetisaurus' "
1535
+ "(or 'pip install scriptconv[phonetisaurus]')."
1536
+ ) from e
1537
+ if not model or not os.path.isfile(model):
1538
+ raise ValueError(
1539
+ "Phonetisaurus phonemization needs a local trained FST: pass "
1540
+ "model=<path> (scriptconv never downloads — see "
1541
+ "MODEL_SOURCES for where published models live)")
1542
+ self.phonetisaurus = phonetisaurus
1543
+ self.model = model
1544
+ self.nbest = nbest
1545
+ self.separator = separator
1546
+
1547
+ def phonemize_string(self, text: str, lang: str) -> str:
1548
+ """Phonemize ``text``. ``lang`` is accepted and not used: the model
1549
+ decides the language, so a language argument here would claim a
1550
+ routing this wrapper does not do."""
1551
+ words = text.split()
1552
+ if not words:
1553
+ return ""
1554
+ # predict() yields (word, symbols) and may reorder or drop a word it
1555
+ # cannot read, so the result is indexed by word rather than zipped.
1556
+ #
1557
+ # With nbest > 1 it yields one pair PER RANKED PRONUNCIATION, best
1558
+ # first, so a word appears more than once. dict() would keep the last
1559
+ # pair, which is the WORST-ranked reading. Keep the first instead.
1560
+ guesses: Dict[str, List[str]] = {}
1561
+ for word, symbols in self.phonetisaurus.predict(
1562
+ words, self.model, nbest=self.nbest):
1563
+ guesses.setdefault(word, symbols)
1564
+ return " ".join(self.separator.join(guesses[w])
1565
+ for w in words if w in guesses)
@@ -35,6 +35,7 @@ PHONEMIZER_REGISTRY: Dict[Phonemizer, Tuple[str, str, Optional[str]]] = {
35
35
  _P.GORUUT: (f"{_BASE}.mul", "GoruutPhonemizer", "goruut"),
36
36
  _P.EPITRAN: (f"{_BASE}.mul", "EpitranPhonemizer", "epitran"),
37
37
  _P.TRANSPHONE: (f"{_BASE}.mul", "TransphonePhonemizer", "transphone"),
38
+ _P.PHONETISAURUS: (f"{_BASE}.mul", "PhonetisaurusPhonemizer", "phonetisaurus"),
38
39
  _P.BYT5: (f"{_BASE}.mul", "ByT5Phonemizer", "byt5"),
39
40
  _P.CHARSIU: (f"{_BASE}.mul", "CharsiuPhonemizer", "byt5"),
40
41
  _P.MISAKI: (f"{_BASE}.mul", "MisakiPhonemizer", "misaki"),
@@ -58,6 +59,7 @@ PHONEMIZER_REGISTRY: Dict[Phonemizer, Tuple[str, str, Optional[str]]] = {
58
59
  _P.ORTHOGRAPHY2IPA: (f"{_BASE}.o2ipa", "Orthography2IPAPhonemizer", "o2i"),
59
60
  # vendored (not an optional extra) -- see _vendored/africa_g2p
60
61
  _P.AFRICA_G2P: (f"{_BASE}.africa", "AfricaG2PPhonemizer", None),
62
+ _P.MATOUB_KAB: (f"{_BASE}.ber", "MatoubKabylePhonemizer", None),
61
63
  _P.GHANA_G2P: (f"{_BASE}.ghana", "GhanaG2PPhonemizer", "ghana"),
62
64
  # ported in the CJK/AR stage; registered here so no member is silently
63
65
  # unmapped — resolution raises ImportError naming the pending extra
@@ -2,7 +2,7 @@
2
2
  VERSION_MAJOR = 0
3
3
  VERSION_MINOR = 0
4
4
  VERSION_BUILD = 4
5
- VERSION_ALPHA = 30
5
+ VERSION_ALPHA = 32
6
6
  # END_VERSION_BLOCK
7
7
 
8
8
  VERSION_STR = f"{VERSION_MAJOR}.{VERSION_MINOR}.{VERSION_BUILD}"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: scriptconv
3
- Version: 0.0.4a30
3
+ Version: 0.0.4a32
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
@@ -42,6 +42,9 @@ Requires-Dist: epitran; extra == "epitran"
42
42
  Provides-Extra: transphone
43
43
  Requires-Dist: scriptconv[phonemizers]; extra == "transphone"
44
44
  Requires-Dist: transphone; extra == "transphone"
45
+ Provides-Extra: phonetisaurus
46
+ Requires-Dist: scriptconv[phonemizers]; extra == "phonetisaurus"
47
+ Requires-Dist: phonetisaurus; extra == "phonetisaurus"
45
48
  Provides-Extra: misaki
46
49
  Requires-Dist: scriptconv[phonemizers]; extra == "misaki"
47
50
  Requires-Dist: misaki; extra == "misaki"
@@ -25,6 +25,7 @@ scriptconv/phonemizers/__init__.py
25
25
  scriptconv/phonemizers/africa.py
26
26
  scriptconv/phonemizers/ar.py
27
27
  scriptconv/phonemizers/base.py
28
+ scriptconv/phonemizers/ber.py
28
29
  scriptconv/phonemizers/en.py
29
30
  scriptconv/phonemizers/enums.py
30
31
  scriptconv/phonemizers/eu.py
@@ -494,6 +495,7 @@ scriptconv/phonemizers/_vendored/mantoq/buck/__init__.py
494
495
  scriptconv/phonemizers/_vendored/mantoq/buck/phonetise_buckwalter.py
495
496
  scriptconv/phonemizers/_vendored/mantoq/buck/symbols.py
496
497
  scriptconv/phonemizers/_vendored/mantoq/buck/tokenization.py
498
+ scriptconv/phonemizers/_vendored/matoub_kab/__init__.py
497
499
  tests/test_arpa_stress.py
498
500
  tests/test_cangjie.py
499
501
  tests/test_cli.py
@@ -511,6 +513,8 @@ tests/test_phonemizers_cjk_ar.py
511
513
  tests/test_phonemizers_friendly_import_errors.py
512
514
  tests/test_phonemizers_ghana.py
513
515
  tests/test_phonemizers_halabi_iqra.py
516
+ tests/test_phonemizers_matoub_kab.py
517
+ tests/test_phonemizers_phonetisaurus.py
514
518
  tests/test_phonemizers_pt_tugaphone.py
515
519
  tests/test_phonemizers_ru.py
516
520
  tests/test_readings.py
@@ -84,6 +84,10 @@ orthography2ipa
84
84
  quebra-frases
85
85
  langcodes
86
86
 
87
+ [phonetisaurus]
88
+ scriptconv[phonemizers]
89
+ phonetisaurus
90
+
87
91
  [pt]
88
92
  scriptconv[phonemizers]
89
93
  bifonia>=0.1.1
@@ -26,7 +26,8 @@ class TestEnums(unittest.TestCase):
26
26
  self.assertEqual(Alphabet.XSAMPA.value, "x-sampa")
27
27
  self.assertEqual(Alphabet.VOSK.value, "vosk")
28
28
  self.assertEqual(Phonemizer.GHANA_G2P.value, "ghana_g2p")
29
- self.assertEqual(len(list(Phonemizer)), 46) # +HALABI, +IQRA, +GHANA_G2P
29
+ self.assertEqual(Phonemizer.MATOUB_KAB.value, "matoub_kab")
30
+ self.assertEqual(len(list(Phonemizer)), 48) # +HALABI, +IQRA, +GHANA_G2P, +PHONETISAURUS, +MATOUB_KAB
30
31
  self.assertEqual(len(list(Alphabet)), 23) # incl. HALABI, VOSK, AFRICA_G2P
31
32
 
32
33
 
@@ -51,6 +51,7 @@ CASES = {
51
51
  Phonemizer.GRUUT: ("gruut", _trigger_gruut),
52
52
  Phonemizer.GORUUT: ("pygoruut", _trigger_construct),
53
53
  Phonemizer.EPITRAN: ("epitran", _trigger_construct),
54
+ Phonemizer.PHONETISAURUS: ("phonetisaurus", _trigger_construct),
54
55
  Phonemizer.TRANSPHONE: ("transphone", _trigger_construct),
55
56
  Phonemizer.DEEPPHONEMIZER: ("dp", _trigger_construct),
56
57
  Phonemizer.OPENPHONEMIZER: ("openphonemizer", _trigger_construct),
@@ -68,7 +69,7 @@ class TestLazyBackendImportsAreFriendly(unittest.TestCase):
68
69
  def test_all_documented_backends_covered(self):
69
70
  # keeps this test list honest if a new Phonemizer member is added
70
71
  # backed by one of the wrapper modules touched by this convention
71
- self.assertEqual(len(CASES), 15)
72
+ self.assertEqual(len(CASES), 16)
72
73
 
73
74
  def _assert_friendly(self, member):
74
75
  module_name, trigger = CASES[member]
@@ -97,6 +98,9 @@ class TestLazyBackendImportsAreFriendly(unittest.TestCase):
97
98
  def test_transphone(self):
98
99
  self._assert_friendly(Phonemizer.TRANSPHONE)
99
100
 
101
+ def test_phonetisaurus(self):
102
+ self._assert_friendly(Phonemizer.PHONETISAURUS)
103
+
100
104
  def test_deepphonemizer(self):
101
105
  self._assert_friendly(Phonemizer.DEEPPHONEMIZER)
102
106
 
@@ -0,0 +1,137 @@
1
+ """The Matoub Kabyle route: it phonemizes, and it is not the africa-g2p route."""
2
+ import ast
3
+ import pathlib
4
+ import sys
5
+ import tempfile
6
+ import unittest
7
+
8
+ from scriptconv.phonemizers import ber as _ber_module
9
+ from scriptconv.phonemizers._vendored import matoub_kab as _vendored_module
10
+ from scriptconv.phonemizers.ber import MatoubKabylePhonemizer
11
+ from scriptconv.phonemizers.enums import Alphabet, Phonemizer
12
+ from scriptconv.phonemizers.registry import PHONEMIZER_REGISTRY, get_phonemizer
13
+
14
+ _VENDORED = pathlib.Path(_vendored_module.__file__)
15
+ _BER = pathlib.Path(_ber_module.__file__)
16
+
17
+
18
+ def _import_roots(path):
19
+ """Root module of every import statement in *path*.
20
+
21
+ Relative imports are skipped: they cannot reach outside the package.
22
+ """
23
+ roots = set()
24
+ for node in ast.walk(ast.parse(path.read_text(encoding="utf-8"))):
25
+ if isinstance(node, ast.Import):
26
+ roots.update(alias.name.split(".")[0] for alias in node.names)
27
+ elif isinstance(node, ast.ImportFrom) and not node.level and node.module:
28
+ roots.add(node.module.split(".")[0])
29
+ return roots
30
+
31
+
32
+ def _tmp_module(source):
33
+ handle = tempfile.NamedTemporaryFile("w", suffix=".py", delete=False,
34
+ encoding="utf-8")
35
+ with handle:
36
+ handle.write(source)
37
+ return pathlib.Path(handle.name)
38
+
39
+
40
+ # Measured against the reference rules in agbalu/Matoub-82M
41
+ # tokenization_matoub.py at revision 3d00056f, on 2026-09-25.
42
+ REFERENCE = {
43
+ "taddart": "θædːærθ",
44
+ "ameqqran": "æməqːræn",
45
+ "azul fell awen": "æzul fəlː æwən",
46
+ "tamurt n leqbayel": "θæmurθ n ləqβæjəl",
47
+ "aqcic yecca aɣrum": "ɑqʃiʃ jəʃːæ ɑʁrum",
48
+ }
49
+
50
+
51
+ class TestMatoubKabyle(unittest.TestCase):
52
+ def setUp(self):
53
+ self.p = MatoubKabylePhonemizer()
54
+
55
+ def test_phonemizes_real_words(self):
56
+ for text, expected in REFERENCE.items():
57
+ with self.subTest(text=text):
58
+ self.assertEqual(self.p.phonemize_string(text, "kab"), expected)
59
+
60
+ def test_the_rules_that_make_this_route_its_own(self):
61
+ # Each assertion is one rule africa-g2p does not apply. If these ever
62
+ # start matching africa-g2p, the two routes have been conflated.
63
+ # spirantisation: t -> θ, b -> β, d -> ð
64
+ self.assertEqual(self.p.phonemize_string("tamurt", "kab"), "θæmurθ")
65
+ # gemination is length on the restored stop, not a doubled symbol
66
+ self.assertEqual(self.p.phonemize_string("taddart", "kab"), "θædːærθ")
67
+ self.assertNotIn("ðð", self.p.phonemize_string("taddart", "kab"))
68
+ # /a/ backs to ɑ beside a backing consonant, and stays æ otherwise
69
+ self.assertTrue(self.p.phonemize_string("aqcic", "kab").startswith("ɑ"))
70
+ self.assertTrue(self.p.phonemize_string("azul", "kab").startswith("æ"))
71
+
72
+ def test_registry_entry_resolves(self):
73
+ self.assertIn(Phonemizer.MATOUB_KAB, PHONEMIZER_REGISTRY)
74
+ module, name, extra = PHONEMIZER_REGISTRY[Phonemizer.MATOUB_KAB]
75
+ self.assertEqual(name, "MatoubKabylePhonemizer")
76
+ # no extra: the rules are vendored and need only the standard library
77
+ self.assertIsNone(extra)
78
+ self.assertIsInstance(get_phonemizer(Phonemizer.MATOUB_KAB),
79
+ MatoubKabylePhonemizer)
80
+
81
+ def test_emits_ipa_and_chunks(self):
82
+ self.assertEqual(self.p.alphabet, Alphabet.IPA)
83
+ self.assertEqual(self.p.phonemize("azul", "kab"), [["æ", "z", "u", "l"]])
84
+
85
+ def test_only_kabyle(self):
86
+ self.assertEqual(MatoubKabylePhonemizer.supported_langs(), ["kab"])
87
+ for other in ("eng", "fra", "ber"):
88
+ with self.subTest(lang=other):
89
+ with self.assertRaises(ValueError):
90
+ self.p.phonemize_string("azul", other)
91
+
92
+ def test_an_unknown_character_raises_and_is_never_dropped(self):
93
+ # The upstream file records that silent deletion cost three Kabyle
94
+ # consonants once. A symbol with no rule must be reported.
95
+ with self.assertRaises(ValueError):
96
+ self.p.phonemize_string("aβc", "kab")
97
+
98
+ def test_the_vendored_rules_need_no_third_party_import(self):
99
+ # Read the property off the source, not off sys.modules. An earlier
100
+ # form of this test asserted that "transformers" and "torch" were
101
+ # absent from sys.modules; neither is installed, so the assertion was
102
+ # true before the module was imported at all, and adding
103
+ # `import packaging` to the vendored file left it passing.
104
+ #
105
+ # The property is load-bearing: it is why the registry row carries
106
+ # extra=None, and why the rules are vendored instead of depended on. A
107
+ # convenience import added later would keep get_phonemizer working on
108
+ # the machine that added it and fail as an ImportError on a user
109
+ # install.
110
+ for path in (_VENDORED, _BER):
111
+ with self.subTest(path=path.name):
112
+ for root in _import_roots(path):
113
+ self.assertTrue(
114
+ root in sys.stdlib_module_names or root == "scriptconv",
115
+ f"{path.name} imports {root!r}, which is neither the "
116
+ f"standard library nor scriptconv itself; the registry "
117
+ f"row advertises this backend as needing no extra")
118
+
119
+ def test_that_import_check_fails_on_a_planted_third_party_import(self):
120
+ # The control. Without it the check above could be vacuous for a new
121
+ # reason: a parser that collects nothing also reports nothing.
122
+ planted = _tmp_module("import packaging\nimport re\n")
123
+ self.assertEqual(_import_roots(planted), {"packaging", "re"})
124
+ self.assertNotIn("packaging", sys.stdlib_module_names)
125
+ # and a clean module yields only allowed roots
126
+ clean = _tmp_module("import re\nfrom typing import Final\n")
127
+ self.assertEqual(_import_roots(clean), {"re", "typing"})
128
+
129
+ def test_the_import_reader_sees_the_real_files(self):
130
+ # A reader that silently found no imports would make the check above
131
+ # pass for the wrong reason, so pin what it actually collects.
132
+ self.assertIn("re", _import_roots(_VENDORED))
133
+ self.assertIn("scriptconv", _import_roots(_BER))
134
+
135
+
136
+ if __name__ == "__main__":
137
+ unittest.main()