scriptconv 0.0.4a30__tar.gz → 0.0.4a31__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 (523) hide show
  1. {scriptconv-0.0.4a30/scriptconv.egg-info → scriptconv-0.0.4a31}/PKG-INFO +4 -1
  2. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/pyproject.toml +1 -0
  3. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/enums.py +1 -0
  4. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/mul.py +99 -1
  5. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/registry.py +1 -0
  6. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/version.py +1 -1
  7. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31/scriptconv.egg-info}/PKG-INFO +4 -1
  8. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv.egg-info/SOURCES.txt +1 -0
  9. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv.egg-info/requires.txt +4 -0
  10. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/tests/test_phonemizers_base.py +1 -1
  11. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/tests/test_phonemizers_friendly_import_errors.py +5 -1
  12. scriptconv-0.0.4a31/tests/test_phonemizers_phonetisaurus.py +201 -0
  13. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/LICENSE +0 -0
  14. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/README.md +0 -0
  15. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/requirements.txt +0 -0
  16. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/__init__.py +0 -0
  17. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/__main__.py +0 -0
  18. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/cangjie.py +0 -0
  19. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/conventions.py +0 -0
  20. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/data/__init__.py +0 -0
  21. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/data/cangjie5_tc.tsv.gz +0 -0
  22. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/diacritics.py +0 -0
  23. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/graph.py +0 -0
  24. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/notation.py +0 -0
  25. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/__init__.py +0 -0
  26. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_thirdparty/__init__.py +0 -0
  27. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_thirdparty/bw2ipa.py +0 -0
  28. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_thirdparty/hangul2ipa.py +0 -0
  29. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_thirdparty/ko_tables/aspiration.csv +0 -0
  30. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_thirdparty/ko_tables/assimilation.csv +0 -0
  31. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_thirdparty/ko_tables/double_coda.csv +0 -0
  32. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_thirdparty/ko_tables/hanja.tsv +0 -0
  33. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_thirdparty/ko_tables/ipa.csv +0 -0
  34. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_thirdparty/ko_tables/neutralization.csv +0 -0
  35. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_thirdparty/ko_tables/tensification.csv +0 -0
  36. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_thirdparty/ko_tables/yale.csv +0 -0
  37. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_thirdparty/shami/__init__.py +0 -0
  38. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_thirdparty/shami/codeswitch.py +0 -0
  39. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_thirdparty/shami/diacritize.py +0 -0
  40. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_thirdparty/shami/dialectal.py +0 -0
  41. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_thirdparty/shami/english_g2p.py +0 -0
  42. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_thirdparty/shami/espeak.py +0 -0
  43. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_thirdparty/shami/frontend.py +0 -0
  44. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_thirdparty/shami/levantine_g2p.py +0 -0
  45. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_thirdparty/shami/normalize.py +0 -0
  46. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_thirdparty/shami/phoneme_inventory.py +0 -0
  47. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_thirdparty/vosk_g2p.py +0 -0
  48. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_thirdparty/zh_num.py +0 -0
  49. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/__init__.py +0 -0
  50. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/DATA_LICENSE.md +0 -0
  51. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/LICENSE.md +0 -0
  52. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/__init__.py +0 -0
  53. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/cli.py +0 -0
  54. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/convert.py +0 -0
  55. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/data/ipa_universal_graphemes.json +0 -0
  56. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/data/registry.json +0 -0
  57. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/english.py +0 -0
  58. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/fallback.py +0 -0
  59. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/g2p.py +0 -0
  60. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/aar.json +0 -0
  61. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/abi.json +0 -0
  62. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/acd.json +0 -0
  63. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ach.json +0 -0
  64. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/acz.json +0 -0
  65. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ada.json +0 -0
  66. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ade.json +0 -0
  67. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/adj.json +0 -0
  68. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/aeb.json +0 -0
  69. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ael.json +0 -0
  70. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/afr.json +0 -0
  71. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ags.json +0 -0
  72. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/aha.json +0 -0
  73. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/aiw.json +0 -0
  74. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ajg.json +0 -0
  75. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/akp.json +0 -0
  76. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/aks.json +0 -0
  77. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/aku.json +0 -0
  78. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/alz.json +0 -0
  79. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/amb.json +0 -0
  80. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/amf.json +0 -0
  81. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/amh.json +0 -0
  82. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/anc.json +0 -0
  83. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ank.json +0 -0
  84. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ann.json +0 -0
  85. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/any.json +0 -0
  86. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/apd.json +0 -0
  87. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ara.json +0 -0
  88. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/arb.json +0 -0
  89. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ary.json +0 -0
  90. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/arz.json +0 -0
  91. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ato.json +0 -0
  92. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/avi.json +0 -0
  93. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/avn.json +0 -0
  94. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/avu.json +0 -0
  95. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ayb.json +0 -0
  96. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/azo.json +0 -0
  97. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bam.json +0 -0
  98. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bas.json +0 -0
  99. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bav.json +0 -0
  100. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bax.json +0 -0
  101. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bba.json +0 -0
  102. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bbq.json +0 -0
  103. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bci.json +0 -0
  104. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bcq.json +0 -0
  105. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bde.json +0 -0
  106. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bdj.json +0 -0
  107. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bdu.json +0 -0
  108. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bec.json +0 -0
  109. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/beh.json +0 -0
  110. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bej.json +0 -0
  111. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bem.json +0 -0
  112. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bex.json +0 -0
  113. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bfa.json +0 -0
  114. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bfj.json +0 -0
  115. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bfm.json +0 -0
  116. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bhy.json +0 -0
  117. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bib.json +0 -0
  118. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bim.json +0 -0
  119. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bin.json +0 -0
  120. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bjo.json +0 -0
  121. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bjt.json +0 -0
  122. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bkc.json +0 -0
  123. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bkm.json +0 -0
  124. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bky.json +0 -0
  125. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ble.json +0 -0
  126. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/blm.json +0 -0
  127. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bng.json +0 -0
  128. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bni.json +0 -0
  129. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bol.json +0 -0
  130. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bom.json +0 -0
  131. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bot.json +0 -0
  132. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/boy.json +0 -0
  133. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/boz.json +0 -0
  134. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bqj.json +0 -0
  135. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bqp.json +0 -0
  136. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bqx.json +0 -0
  137. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bsc.json +0 -0
  138. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bsq.json +0 -0
  139. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/buc.json +0 -0
  140. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bud.json +0 -0
  141. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/buf.json +0 -0
  142. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bum.json +0 -0
  143. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bva.json +0 -0
  144. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bvm.json +0 -0
  145. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bwj.json +0 -0
  146. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bxk.json +0 -0
  147. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/byn.json +0 -0
  148. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/byv.json +0 -0
  149. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/bza.json +0 -0
  150. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/cgg.json +0 -0
  151. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/cjk.json +0 -0
  152. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/cko.json +0 -0
  153. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/cme.json +0 -0
  154. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/cop.json +0 -0
  155. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/daa.json +0 -0
  156. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/daf.json +0 -0
  157. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dag.json +0 -0
  158. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dbq.json +0 -0
  159. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dec.json +0 -0
  160. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dgd.json +0 -0
  161. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/did.json +0 -0
  162. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/din.json +0 -0
  163. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dmf.json +0 -0
  164. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dnj.json +0 -0
  165. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dop-benin.json +0 -0
  166. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dop-benin2.json +0 -0
  167. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dow.json +0 -0
  168. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dsh.json +0 -0
  169. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dua.json +0 -0
  170. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dug.json +0 -0
  171. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dyo.json +0 -0
  172. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dyu.json +0 -0
  173. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/dzd.json +0 -0
  174. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ebo.json +0 -0
  175. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ebr.json +0 -0
  176. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/efi.json +0 -0
  177. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ell.json +0 -0
  178. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ema.json +0 -0
  179. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/emk.json +0 -0
  180. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/eng.json +0 -0
  181. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/enn.json +0 -0
  182. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/etn.json +0 -0
  183. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/eto.json +0 -0
  184. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ewe.json +0 -0
  185. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ewo.json +0 -0
  186. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/fak.json +0 -0
  187. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/fat.json +0 -0
  188. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ffm.json +0 -0
  189. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/fia.json +0 -0
  190. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/flr.json +0 -0
  191. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/fmp.json +0 -0
  192. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/fng.json +0 -0
  193. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/fod.json +0 -0
  194. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/fon.json +0 -0
  195. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/fuc.json +0 -0
  196. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/fue.json +0 -0
  197. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gaa.json +0 -0
  198. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gej.json +0 -0
  199. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gez.json +0 -0
  200. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gfe.json +0 -0
  201. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gha.json +0 -0
  202. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gho.json +0 -0
  203. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gjn.json +0 -0
  204. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gng.json +0 -0
  205. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/god.json +0 -0
  206. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gog.json +0 -0
  207. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gou.json +0 -0
  208. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/grb.json +0 -0
  209. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/grr.json +0 -0
  210. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gud.json +0 -0
  211. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/guk.json +0 -0
  212. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gur.json +0 -0
  213. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gux.json +0 -0
  214. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/guz.json +0 -0
  215. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gwa.json +0 -0
  216. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gwd.json +0 -0
  217. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gwr.json +0 -0
  218. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/gxx.json +0 -0
  219. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/hag.json +0 -0
  220. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/har.json +0 -0
  221. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/hau-niger.json +0 -0
  222. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/hau-nigeria.json +0 -0
  223. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/hay.json +0 -0
  224. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/hdy.json +0 -0
  225. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/hts.json +0 -0
  226. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ibo.json +0 -0
  227. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/igb.json +0 -0
  228. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ige.json +0 -0
  229. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/igl.json +0 -0
  230. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/igo.json +0 -0
  231. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ikw.json +0 -0
  232. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/irk.json +0 -0
  233. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/iso.json +0 -0
  234. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/jib.json +0 -0
  235. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kab.json +0 -0
  236. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kbo.json +0 -0
  237. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kbp.json +0 -0
  238. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kbr.json +0 -0
  239. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kcn.json +0 -0
  240. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kde.json +0 -0
  241. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kdh.json +0 -0
  242. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kdj.json +0 -0
  243. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kdn.json +0 -0
  244. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kdx.json +0 -0
  245. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kea.json +0 -0
  246. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kec.json +0 -0
  247. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ker.json +0 -0
  248. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/khq.json +0 -0
  249. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/khy.json +0 -0
  250. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kik.json +0 -0
  251. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kin.json +0 -0
  252. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kiz.json +0 -0
  253. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kmb.json +0 -0
  254. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/knc.json +0 -0
  255. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/knf.json +0 -0
  256. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/koo.json +0 -0
  257. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kpe.json +0 -0
  258. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kqs.json +0 -0
  259. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/krb.json +0 -0
  260. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kri.json +0 -0
  261. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ksb.json +0 -0
  262. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ktz.json +0 -0
  263. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kuj.json +0 -0
  264. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/kus.json +0 -0
  265. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lad.json +0 -0
  266. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lai.json +0 -0
  267. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lch.json +0 -0
  268. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ldd.json +0 -0
  269. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lgg.json +0 -0
  270. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lgq.json +0 -0
  271. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lig.json +0 -0
  272. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lin.json +0 -0
  273. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lky.json +0 -0
  274. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lln.json +0 -0
  275. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lma.json +0 -0
  276. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lmd.json +0 -0
  277. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lmp.json +0 -0
  278. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lns.json +0 -0
  279. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/loi.json +0 -0
  280. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lok.json +0 -0
  281. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lol.json +0 -0
  282. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lot.json +0 -0
  283. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lpx.json +0 -0
  284. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lub.json +0 -0
  285. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/luc.json +0 -0
  286. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lue.json +0 -0
  287. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lug.json +0 -0
  288. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lul.json +0 -0
  289. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/lun.json +0 -0
  290. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/luw.json +0 -0
  291. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mas.json +0 -0
  292. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/maw.json +0 -0
  293. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mck.json +0 -0
  294. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mcp.json +0 -0
  295. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mcu.json +0 -0
  296. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mdj.json +0 -0
  297. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mev.json +0 -0
  298. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mfb.json +0 -0
  299. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mfe.json +0 -0
  300. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mfi.json +0 -0
  301. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mfq.json +0 -0
  302. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mgc.json +0 -0
  303. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mgd.json +0 -0
  304. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mgh.json +0 -0
  305. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mhi.json +0 -0
  306. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mkf.json +0 -0
  307. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mkw.json +0 -0
  308. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mlg.json +0 -0
  309. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mlw.json +0 -0
  310. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mmo.json +0 -0
  311. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mmy.json +0 -0
  312. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mnf.json +0 -0
  313. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mnk.json +0 -0
  314. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mos.json +0 -0
  315. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mpg.json +0 -0
  316. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mqu.json +0 -0
  317. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mse.json +0 -0
  318. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mur.json +0 -0
  319. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mwe.json +0 -0
  320. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/myf.json +0 -0
  321. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/myk.json +0 -0
  322. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/myo.json +0 -0
  323. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/myx.json +0 -0
  324. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/mzk.json +0 -0
  325. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/naw.json +0 -0
  326. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nba.json +0 -0
  327. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ncu.json +0 -0
  328. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ndb.json +0 -0
  329. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ndo.json +0 -0
  330. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ney.json +0 -0
  331. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nfr.json +0 -0
  332. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nga.json +0 -0
  333. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ngb-zaire.json +0 -0
  334. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ngb-zaire2.json +0 -0
  335. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ngh.json +0 -0
  336. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ngi.json +0 -0
  337. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nhb.json +0 -0
  338. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nhu.json +0 -0
  339. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nhw.json +0 -0
  340. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nko.json +0 -0
  341. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nmn.json +0 -0
  342. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nmq.json +0 -0
  343. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nnb.json +0 -0
  344. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nnh.json +0 -0
  345. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nnw.json +0 -0
  346. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nqo.json +0 -0
  347. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nso.json +0 -0
  348. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nuj.json +0 -0
  349. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nup.json +0 -0
  350. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nus.json +0 -0
  351. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nwb.json +0 -0
  352. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nya.json +0 -0
  353. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nym.json +0 -0
  354. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nzd.json +0 -0
  355. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/nzi.json +0 -0
  356. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ogc.json +0 -0
  357. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/oku.json +0 -0
  358. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/onw.json +0 -0
  359. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/pae.json +0 -0
  360. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/pbi.json +0 -0
  361. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/pny.json +0 -0
  362. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/pov.json +0 -0
  363. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/puu.json +0 -0
  364. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/pze.json +0 -0
  365. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/rel.json +0 -0
  366. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/rmt.json +0 -0
  367. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/rng.json +0 -0
  368. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/run.json +0 -0
  369. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sad.json +0 -0
  370. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sag-central_african_republic.json +0 -0
  371. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sag-congo.json +0 -0
  372. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sav.json +0 -0
  373. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sef-cote_d_ivoire.json +0 -0
  374. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sef-cote_d_ivoire2.json +0 -0
  375. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/seh.json +0 -0
  376. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/she.json +0 -0
  377. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/shk.json +0 -0
  378. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/shu.json +0 -0
  379. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/shy.json +0 -0
  380. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sig.json +0 -0
  381. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/siz.json +0 -0
  382. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sld.json +0 -0
  383. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sna.json +0 -0
  384. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/snk-senegal.json +0 -0
  385. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/snk.json +0 -0
  386. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sok.json +0 -0
  387. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sop.json +0 -0
  388. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/spa.json +0 -0
  389. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/spy.json +0 -0
  390. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ssl.json +0 -0
  391. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ssn.json +0 -0
  392. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ssw.json +0 -0
  393. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/suk.json +0 -0
  394. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sur.json +0 -0
  395. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sus.json +0 -0
  396. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/swb.json +0 -0
  397. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/swh.json +0 -0
  398. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/sym.json +0 -0
  399. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/szg.json +0 -0
  400. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tan.json +0 -0
  401. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/taq.json +0 -0
  402. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/taz.json +0 -0
  403. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tbt.json +0 -0
  404. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tbz.json +0 -0
  405. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ted.json +0 -0
  406. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tem.json +0 -0
  407. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/teo.json +0 -0
  408. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/thv.json +0 -0
  409. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/thz.json +0 -0
  410. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tig.json +0 -0
  411. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tik.json +0 -0
  412. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tir.json +0 -0
  413. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tmc.json +0 -0
  414. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tnr.json +0 -0
  415. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/toh.json +0 -0
  416. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/toq.json +0 -0
  417. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/trc.json +0 -0
  418. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tsc.json +0 -0
  419. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tso.json +0 -0
  420. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tsp.json +0 -0
  421. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ttq.json +0 -0
  422. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tui.json +0 -0
  423. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tum.json +0 -0
  424. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tuq.json +0 -0
  425. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tuz.json +0 -0
  426. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/twi.json +0 -0
  427. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/tzm.json +0 -0
  428. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/uba.json +0 -0
  429. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/udu.json +0 -0
  430. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ukv.json +0 -0
  431. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/urh.json +0 -0
  432. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/vag.json +0 -0
  433. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/vai.json +0 -0
  434. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ven.json +0 -0
  435. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/vmw.json +0 -0
  436. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/vut.json +0 -0
  437. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/wan.json +0 -0
  438. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/wib.json +0 -0
  439. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/wmw.json +0 -0
  440. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/wob.json +0 -0
  441. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/wol.json +0 -0
  442. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/wwa.json +0 -0
  443. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/xho.json +0 -0
  444. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/xog.json +0 -0
  445. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/xon.json +0 -0
  446. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/xrb.json +0 -0
  447. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/xsm.json +0 -0
  448. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/yam.json +0 -0
  449. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/yat.json +0 -0
  450. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ybb.json +0 -0
  451. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/yid.json +0 -0
  452. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/yko.json +0 -0
  453. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/yor.json +0 -0
  454. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/yun.json +0 -0
  455. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/zag.json +0 -0
  456. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/zen.json +0 -0
  457. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/ziw.json +0 -0
  458. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/zne.json +0 -0
  459. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/languages/zul.json +0 -0
  460. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/loader.py +0 -0
  461. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/normalizer.py +0 -0
  462. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/africa_g2p/pipeline.py +0 -0
  463. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/iqra_phonetiser/LICENSE.md +0 -0
  464. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/iqra_phonetiser/__init__.py +0 -0
  465. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/iqra_phonetiser/phonetiser.py +0 -0
  466. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/kog2p/LICENSE.md +0 -0
  467. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/kog2p/__init__.py +0 -0
  468. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/kog2p/rulebook.txt +0 -0
  469. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/mantoq/LICENSE.md +0 -0
  470. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/mantoq/__init__.py +0 -0
  471. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/mantoq/buck/__init__.py +0 -0
  472. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/mantoq/buck/phonetise_buckwalter.py +0 -0
  473. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/mantoq/buck/symbols.py +0 -0
  474. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/mantoq/buck/tokenization.py +0 -0
  475. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/mantoq/num2words.py +0 -0
  476. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/_vendored/mantoq/unicode_symbol2label.py +0 -0
  477. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/africa.py +0 -0
  478. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/ar.py +0 -0
  479. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/base.py +0 -0
  480. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/en.py +0 -0
  481. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/eu.py +0 -0
  482. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/fa.py +0 -0
  483. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/ghana.py +0 -0
  484. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/gl.py +0 -0
  485. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/he.py +0 -0
  486. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/ja.py +0 -0
  487. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/ko.py +0 -0
  488. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/mwl.py +0 -0
  489. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/o2ipa.py +0 -0
  490. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/pt.py +0 -0
  491. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/ru.py +0 -0
  492. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/shami.py +0 -0
  493. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/vi.py +0 -0
  494. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/phonemizers/zh.py +0 -0
  495. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/py.typed +0 -0
  496. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/readings.py +0 -0
  497. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/scripts.py +0 -0
  498. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv/translit.py +0 -0
  499. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv.egg-info/dependency_links.txt +0 -0
  500. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/scriptconv.egg-info/top_level.txt +0 -0
  501. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/setup.cfg +0 -0
  502. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/tests/test_arpa_stress.py +0 -0
  503. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/tests/test_cangjie.py +0 -0
  504. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/tests/test_cli.py +0 -0
  505. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/tests/test_conventions.py +0 -0
  506. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/tests/test_diacritics.py +0 -0
  507. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/tests/test_diacritics_graph.py +0 -0
  508. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/tests/test_errors_policy.py +0 -0
  509. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/tests/test_examples.py +0 -0
  510. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/tests/test_graph.py +0 -0
  511. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/tests/test_he_extra_declares_phonikud.py +0 -0
  512. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/tests/test_notation.py +0 -0
  513. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/tests/test_phonemizers_africa.py +0 -0
  514. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/tests/test_phonemizers_cjk_ar.py +0 -0
  515. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/tests/test_phonemizers_ghana.py +0 -0
  516. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/tests/test_phonemizers_halabi_iqra.py +0 -0
  517. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/tests/test_phonemizers_pt_tugaphone.py +0 -0
  518. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/tests/test_phonemizers_ru.py +0 -0
  519. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/tests/test_readings.py +0 -0
  520. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/tests/test_readings_zh.py +0 -0
  521. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/tests/test_scripts.py +0 -0
  522. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/tests/test_scripts_stressonnx_compat.py +0 -0
  523. {scriptconv-0.0.4a30 → scriptconv-0.0.4a31}/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.4a31
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"]
@@ -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
@@ -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"),
@@ -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 = 31
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.4a31
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"
@@ -511,6 +511,7 @@ tests/test_phonemizers_cjk_ar.py
511
511
  tests/test_phonemizers_friendly_import_errors.py
512
512
  tests/test_phonemizers_ghana.py
513
513
  tests/test_phonemizers_halabi_iqra.py
514
+ tests/test_phonemizers_phonetisaurus.py
514
515
  tests/test_phonemizers_pt_tugaphone.py
515
516
  tests/test_phonemizers_ru.py
516
517
  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,7 @@ 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(len(list(Phonemizer)), 47) # +HALABI, +IQRA, +GHANA_G2P, +PHONETISAURUS
30
30
  self.assertEqual(len(list(Alphabet)), 23) # incl. HALABI, VOSK, AFRICA_G2P
31
31
 
32
32
 
@@ -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,201 @@
1
+ """The Phonetisaurus wrapper: registry wiring, the model contract, and the
2
+ output string.
3
+
4
+ Phonetisaurus carries no rules of its own. Everything it knows is in one
5
+ trained FST, and no FST is published with the ``phonetisaurus`` package or with
6
+ scriptconv, so a test that phonemizes a real word against a real model would
7
+ have to train one or download one. Training runs the bundled ``estimate-ngram``
8
+ binary, which is a system-level dependency this suite must not need, and a test
9
+ never downloads. So the engine call is stubbed at the one function the wrapper
10
+ uses, ``phonetisaurus.predict``, and the assertions are on the string the
11
+ wrapper builds from the engine's answer. The parts NOT stubbed are the parts
12
+ this wrapper owns: the model contract, the word indexing, the separator and the
13
+ alphabet check.
14
+ """
15
+ import os
16
+ import sys
17
+ import tempfile
18
+ import unittest
19
+ from types import ModuleType
20
+ from unittest.mock import patch
21
+
22
+ from scriptconv.phonemizers import Phonemizer, get_phonemizer_class
23
+ from scriptconv.phonemizers.enums import Alphabet
24
+ from scriptconv.phonemizers.registry import PHONEMIZER_REGISTRY
25
+
26
+
27
+ def _fake_phonetisaurus(answers, reorder=True):
28
+ """A stand-in for the ``phonetisaurus`` package, exposing only
29
+ ``predict``, which is the whole surface the wrapper uses.
30
+
31
+ The real ``predict`` reads a word list and yields ``(word, symbols)``
32
+ pairs. It does not promise the caller's order, and it yields nothing for a
33
+ word the model cannot read. The stub returns pairs in REVERSE order by
34
+ default for exactly that reason: a wrapper that consumed the pairs
35
+ positionally would pass this suite if the stub echoed the request order,
36
+ and would put the wrong pronunciation on every word in production.
37
+
38
+ ``nbest`` is modelled too, because it changes the SHAPE of the answer and
39
+ not just its length: the engine prints one line per ranked pronunciation,
40
+ BEST FIRST, and ``predict`` yields one pair per line, so a word appears
41
+ ``nbest`` times. ``answers`` maps a word to its ranked list, best first.
42
+
43
+ The reversal therefore applies to the WORDS and never inside one word's
44
+ ranked lines. Word order is a freedom the engine has; rank order is a
45
+ promise it keeps, and a stub that broke it would be testing a different
46
+ engine.
47
+ """
48
+ mod = ModuleType("phonetisaurus")
49
+
50
+ def predict(words, model_path, nbest=1, env=None):
51
+ # one group per word, the group's pairs in rank order
52
+ groups = [[(w, ranked) for ranked in answers[w][:nbest]]
53
+ for w in words if w in answers]
54
+ if reorder:
55
+ # the WORDS may come back in any order; the ranked lines of one
56
+ # word may not, so the groups reverse and their contents do not
57
+ groups.reverse()
58
+ for group in groups:
59
+ for pair in group:
60
+ yield pair
61
+
62
+ mod.predict = predict
63
+ return mod
64
+
65
+
66
+ class TestRegistryWiring(unittest.TestCase):
67
+ def test_registry_names_the_module_class_and_extra(self):
68
+ entry = PHONEMIZER_REGISTRY[Phonemizer.PHONETISAURUS]
69
+ self.assertEqual(
70
+ entry,
71
+ ("scriptconv.phonemizers.mul", "PhonetisaurusPhonemizer",
72
+ "phonetisaurus"))
73
+
74
+ def test_the_class_resolves(self):
75
+ cls = get_phonemizer_class(Phonemizer.PHONETISAURUS)
76
+ self.assertEqual(cls.__name__, "PhonetisaurusPhonemizer")
77
+
78
+ def test_the_enum_value_is_the_wire_string(self):
79
+ self.assertEqual(Phonemizer.PHONETISAURUS.value, "phonetisaurus")
80
+
81
+ def test_the_extra_is_declared_in_pyproject(self):
82
+ try:
83
+ import tomllib
84
+ except ImportError:
85
+ import tomli as tomllib
86
+ root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
87
+ with open(os.path.join(root, "pyproject.toml"), "rb") as f:
88
+ extras = tomllib.load(f)["project"]["optional-dependencies"]
89
+ self.assertIn("phonetisaurus", extras)
90
+ self.assertIn("phonetisaurus", extras["phonetisaurus"])
91
+
92
+
93
+ class TestModelContract(unittest.TestCase):
94
+ """scriptconv never downloads a model, so the wrapper must refuse to be
95
+ built without one, and say what to pass."""
96
+
97
+ def _cls(self):
98
+ return get_phonemizer_class(Phonemizer.PHONETISAURUS)
99
+
100
+ def test_no_model_is_refused(self):
101
+ with patch.dict(sys.modules,
102
+ {"phonetisaurus": _fake_phonetisaurus({})}):
103
+ with self.assertRaises(ValueError) as ctx:
104
+ self._cls()()
105
+ self.assertIn("model=", str(ctx.exception))
106
+
107
+ def test_a_missing_file_is_refused(self):
108
+ with patch.dict(sys.modules,
109
+ {"phonetisaurus": _fake_phonetisaurus({})}):
110
+ with self.assertRaises(ValueError):
111
+ self._cls()(model="/nonexistent/g2p.fst")
112
+
113
+ def test_an_alphabet_the_wrapper_does_not_declare_is_refused(self):
114
+ with tempfile.NamedTemporaryFile(suffix=".fst") as fst:
115
+ with patch.dict(sys.modules,
116
+ {"phonetisaurus": _fake_phonetisaurus({})}):
117
+ with self.assertRaises(ValueError) as ctx:
118
+ self._cls()(model=fst.name, alphabet=Alphabet.HANGUL)
119
+ self.assertIn("hangul", str(ctx.exception))
120
+
121
+
122
+ class TestOutputString(unittest.TestCase):
123
+ """What the wrapper builds out of the engine's answer."""
124
+
125
+ def _phonemizer(self, answers, **kw):
126
+ cls = get_phonemizer_class(Phonemizer.PHONETISAURUS)
127
+ fst = tempfile.NamedTemporaryFile(suffix=".fst", delete=False)
128
+ fst.close()
129
+ self.addCleanup(os.unlink, fst.name)
130
+ with patch.dict(sys.modules,
131
+ {"phonetisaurus": _fake_phonetisaurus(answers)}):
132
+ return cls(model=fst.name, **kw)
133
+
134
+ def test_one_word(self):
135
+ p = self._phonemizer({"cat": [["k", "a", "t"]]})
136
+ self.assertEqual(p.phonemize_string("cat", "en"), "k a t")
137
+
138
+ def test_two_words_keep_their_order(self):
139
+ p = self._phonemizer({"cat": [["k", "a", "t"]],
140
+ "bat": [["b", "a", "t"]]})
141
+ self.assertEqual(p.phonemize_string("cat bat", "en"), "k a t b a t")
142
+
143
+ def test_an_empty_separator_gives_a_bare_string(self):
144
+ p = self._phonemizer({"cat": [["k", "a", "t"]]}, separator="")
145
+ self.assertEqual(p.phonemize_string("cat", "en"), "kat")
146
+
147
+ def test_a_word_the_engine_drops_is_skipped(self):
148
+ """predict() yields nothing for a word the model cannot read. The
149
+ wrapper drops it rather than raising."""
150
+ p = self._phonemizer({"cat": [["k", "a", "t"]],
151
+ "bat": [["b", "a", "t"]]})
152
+ self.assertEqual(p.phonemize_string("cat xyzzy bat", "en"),
153
+ "k a t b a t")
154
+
155
+ def test_the_output_follows_the_INPUT_order_not_the_engine_order(self):
156
+ """The discriminating case. The stub answers in reverse, so a wrapper
157
+ that consumed the pairs positionally would return them reversed. The
158
+ wrapper indexes by word, so the sentence keeps its own order."""
159
+ p = self._phonemizer({"cat": [["k", "a", "t"]],
160
+ "dog": [["d", "o", "g"]],
161
+ "bat": [["b", "a", "t"]]})
162
+ self.assertEqual(p.phonemize_string("cat dog bat", "en"),
163
+ "k a t d o g b a t")
164
+
165
+ def test_nbest_2_keeps_the_BEST_ranked_pronunciation(self):
166
+ """With nbest > 1 the engine yields one pair per ranked reading, best
167
+ first, so a word appears twice. Building a dict over the pairs keeps
168
+ the LAST one, which is the worst-ranked reading, while the docstring
169
+ promises the best. The wrapper keeps the first pair per word.
170
+
171
+ This is the case that tells the two apart: both readings are present,
172
+ both are well-formed, and only the ORDER says which is right."""
173
+ p = self._phonemizer({"cat": [["k", "a", "t"], ["k", "a", "ts"]]},
174
+ nbest=2)
175
+ self.assertEqual(p.phonemize_string("cat", "en"), "k a t")
176
+
177
+ def test_nbest_2_over_several_words(self):
178
+ p = self._phonemizer({"cat": [["k", "a", "t"], ["k", "a", "ts"]],
179
+ "bat": [["b", "a", "t"], ["b", "a", "ts"]]},
180
+ nbest=2)
181
+ self.assertEqual(p.phonemize_string("cat bat", "en"), "k a t b a t")
182
+
183
+ def test_empty_text(self):
184
+ p = self._phonemizer({"cat": [["k", "a", "t"]]})
185
+ self.assertEqual(p.phonemize_string("", "en"), "")
186
+
187
+ def test_the_language_argument_does_not_route(self):
188
+ """The model decides the language. Any tag must give the same answer,
189
+ because the wrapper claims no routing."""
190
+ p = self._phonemizer({"cat": [["k", "a", "t"]]})
191
+ self.assertEqual(p.phonemize_string("cat", "en"),
192
+ p.phonemize_string("cat", "oc"))
193
+
194
+ def test_the_declared_alphabet_is_kept(self):
195
+ p = self._phonemizer({"cat": [["K", "AE", "T"]]}, alphabet=Alphabet.ARPA)
196
+ self.assertEqual(p.alphabet, Alphabet.ARPA)
197
+ self.assertEqual(p.phonemize_string("cat", "en"), "K AE T")
198
+
199
+
200
+ if __name__ == "__main__":
201
+ unittest.main()
File without changes
File without changes