Browse Source

Merge branch 'master' into android

Conflicts:
	README.md
master
Reece H. Dunn 11 years ago
parent
commit
056562a6e3
100 changed files with 312120 additions and 10746 deletions
  1. 4
    1
      .gitignore
  2. 211
    69
      Makefile.am
  3. 0
    4
      README.md
  4. 53
    10
      configure.ac
  5. 33
    13
      dictsource/an_rules
  6. 133
    194
      dictsource/as_list
  7. 166
    208
      dictsource/as_rules
  8. 73
    0
      dictsource/bn_list
  9. 926
    698
      dictsource/da_rules
  10. 2
    0
      dictsource/de_list
  11. 1
    0
      dictsource/de_rules
  12. 591
    153
      dictsource/en_list
  13. 6257
    5963
      dictsource/en_rules
  14. 84
    140
      dictsource/es_list
  15. 283
    279
      dictsource/es_rules
  16. 199811
    0
      dictsource/extra/ru_listx
  17. 57669
    0
      dictsource/extra/zh_listx
  18. 33760
    0
      dictsource/extra/zhy_list
  19. 3969
    52
      dictsource/fa_list
  20. 258
    40
      dictsource/fa_rules
  21. 136
    0
      dictsource/gd_list
  22. 410
    0
      dictsource/gd_rules
  23. 155
    120
      dictsource/gu_list
  24. 333
    303
      dictsource/gu_rules
  25. 1
    0
      dictsource/hi_rules
  26. 608
    607
      dictsource/hu_rules
  27. 1637
    330
      dictsource/it_list
  28. 284
    400
      dictsource/it_listx
  29. 492
    358
      dictsource/it_rules
  30. 15
    1
      dictsource/kn_rules
  31. 166
    0
      dictsource/lfn_list
  32. 175
    0
      dictsource/lfn_rules
  33. 3
    3
      dictsource/nl_list
  34. 4
    2
      dictsource/nl_rules
  35. 90
    39
      dictsource/om_list
  36. 61
    84
      dictsource/om_rules
  37. 210
    0
      dictsource/or_list
  38. 335
    0
      dictsource/or_rules
  39. 37
    12
      dictsource/pt_list
  40. 45
    14
      dictsource/pt_rules
  41. 2
    1
      dictsource/sk_list
  42. 58
    7
      dictsource/ta_list
  43. 270
    15
      dictsource/ta_rules
  44. 4
    1
      dictsource/te_rules
  45. 35
    13
      dictsource/ur_list
  46. 14
    1
      dictsource/ur_rules
  47. 536
    314
      dictsource/vi_rules
  48. 7
    3
      docs/dictionary.html
  49. 6
    5
      docs/phonemes.html
  50. 14
    0
      docs/voices.html
  51. BIN
      espeak-data/mbrola_ph/in1_phtrans
  52. BIN
      espeak-data/mbrola_ph/ir1_phtrans
  53. 1
    1
      espeak-data/voices/en-us
  54. 3
    1
      espeak-data/voices/europe/it
  55. 9
    4
      espeak-data/voices/mb/mb-ir1
  56. 6
    0
      espeak-data/voices/other/lfn
  57. 3
    0
      espeak-data/voices/test/gd
  58. 1
    1
      espeak-data/voices/test/om
  59. 2
    0
      espeak-data/voices/test/or
  60. 1
    2
      espeak-data/voices/test/sl
  61. 45
    3
      mkdictlist
  62. 53
    0
      phsource/intonation
  63. 259
    83
      phsource/mbrola/ir1
  64. 6
    0
      phsource/ph_aragon
  65. 8
    0
      phsource/ph_dutch
  66. 19
    1
      phsource/ph_english
  67. 7
    0
      phsource/ph_english_sc
  68. 25
    6
      phsource/ph_english_us
  69. 7
    0
      phsource/ph_english_wm
  70. 76
    0
      phsource/ph_gujarati
  71. 26
    15
      phsource/ph_italian
  72. 41
    0
      phsource/ph_malayalam
  73. 95
    0
      phsource/ph_manipuri
  74. 105
    0
      phsource/ph_oriya
  75. 99
    59
      phsource/ph_oromo
  76. 336
    6
      phsource/ph_s_gaelic
  77. 4
    0
      phsource/ph_spanish_la
  78. 16
    9
      phsource/ph_vietnam_sgn
  79. 10
    2
      phsource/phonemes
  80. BIN
      phsource/vdiph/@i_4
  81. BIN
      phsource/vdiph/a#u
  82. BIN
      phsource/vnasal/ai_n
  83. BIN
      phsource/vnasal/au_n
  84. 8
    1
      platforms/windows/make_espeak.iss
  85. 1
    1
      platforms/windows/make_espeakedit.iss
  86. 37
    0
      platforms/windows/mingw/espeak_test_lib.c
  87. 169
    0
      platforms/windows/mingw/espeak_win_1_0.txt
  88. 16
    0
      platforms/windows/mingw/readme.txt
  89. 5
    5
      platforms/windows/windows_sapi/version.rc2
  90. 10
    1
      src/compiledata.cpp
  91. 24
    14
      src/compiledict.cpp
  92. 44
    18
      src/dictionary.cpp
  93. 26
    10
      src/espeakedit.cpp
  94. 18
    11
      src/event.cpp
  95. 1
    0
      src/extras.cpp
  96. 2
    0
      src/fifo.cpp
  97. 9
    6
      src/main.h
  98. 52
    29
      src/numbers.cpp
  99. 8
    0
      src/options.cpp
  100. 0
    0
      src/options.h

+ 4
- 1
.gitignore View File

dictsource/*_extra dictsource/*_extra
dictsource/dict_log dictsource/dict_log
dictsource/dict_phonemes dictsource/dict_phonemes
dictsource/ru_listx
dictsource/zh_listx
dictsource/zhy_list


phsource/compile_prog_log phsource/compile_prog_log
phsource/compile_report phsource/compile_report
phsource/error_intonation phsource/error_intonation
phsource/error_log phsource/error_log
phsource/phonemes.stamp


espeak-data/dir.stamp
espeak-data/config espeak-data/config
espeak-data/dictsource espeak-data/dictsource
espeak-data/phsource espeak-data/phsource

+ 211
- 69
Makefile.am View File

LIBDIR=@libdir@ LIBDIR=@libdir@
DATADIR=$(PREFIX)/share/espeak-data DATADIR=$(PREFIX)/share/espeak-data


SHARED_VERSION=2:47:1 # = *.so.1.1.47
SHARED_VERSION=2:48:1 # = *.so.1.1.48


MKDIR=mkdir -p MKDIR=mkdir -p


-D_LARGEFILE_SOURCE=1 -DNO_GCC_PRAGMA -D_ESPEAKEDIT -D_LARGEFILE_SOURCE=1 -DNO_GCC_PRAGMA -D_ESPEAKEDIT
src_espeakedit_SOURCES = $(common_SOURCE) $(libespeak_SOURCE) $(espeakedit_SOURCE) $(wave_SOURCE) src_espeakedit_SOURCES = $(common_SOURCE) $(libespeak_SOURCE) $(espeakedit_SOURCE) $(wave_SOURCE)


espeak-data/phontab: src/espeakedit
ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile
##### phoneme data:

espeak-data/phondata: phsource/phonemes.stamp
espeak-data/phondata-manifest: phsource/phonemes.stamp
espeak-data/phonindex: phsource/phonemes.stamp
espeak-data/phontab: phsource/phonemes.stamp
espeak-data/intonations: phsource/phonemes.stamp

phsource/phonemes.stamp: \
phsource/ph_afrikaans \
phsource/ph_akan \
phsource/ph_albanian \
phsource/ph_amhari \
phsource/ph_aragon \
phsource/ph_armenian \
phsource/ph_assamese \
phsource/ph_azerbaijani \
phsource/ph_base2 \
phsource/ph_bengali \
phsource/ph_bulgarian \
phsource/ph_catalan \
phsource/ph_consonants \
phsource/ph_croatian \
phsource/ph_czech \
phsource/ph_danish \
phsource/ph_dari \
phsource/ph_divehi \
phsource/ph_dutch \
phsource/ph_english \
phsource/ph_english_n \
phsource/ph_english_rp \
phsource/ph_english_sc \
phsource/ph_english_us \
phsource/ph_english_wi \
phsource/ph_english_wm \
phsource/ph_esperanto \
phsource/ph_estonian \
phsource/ph_farsi \
phsource/ph_finnish \
phsource/ph_french \
phsource/ph_french_ca \
phsource/ph_georgian \
phsource/ph_german \
phsource/ph_greek \
phsource/ph_greek_ancient \
phsource/ph_greenlandic \
phsource/ph_gujarati \
phsource/ph_haitian \
phsource/ph_hindi \
phsource/ph_hungarian \
phsource/ph_icelandic \
phsource/ph_indonesian \
phsource/ph_irish \
phsource/ph_italian \
phsource/ph_kannada \
phsource/ph_kazakh \
phsource/ph_kinyarwanda \
phsource/ph_korean \
phsource/ph_kurdish \
phsource/ph_latin \
phsource/ph_latvian \
phsource/ph_lithuanian \
phsource/ph_lojban \
phsource/ph_macedonian \
phsource/ph_malayalam \
phsource/ph_maltese \
phsource/ph_manipuri \
phsource/ph_nahuatl \
phsource/ph_nepali \
phsource/ph_northern-sotho \
phsource/ph_norwegian \
phsource/ph_oriya \
phsource/ph_oromo \
phsource/ph_polish \
phsource/ph_portugal \
phsource/ph_pt_brazil \
phsource/ph_punjabi \
phsource/ph_romanian \
phsource/ph_russian \
phsource/ph_s_gaelic \
phsource/ph_serbian \
phsource/ph_setswana \
phsource/ph_sinhala \
phsource/ph_slovak \
phsource/ph_slovenian \
phsource/ph_spanish \
phsource/ph_spanish_la \
phsource/ph_swahili \
phsource/ph_swedish \
phsource/ph_tamil \
phsource/ph_tatar \
phsource/ph_telugu \
phsource/ph_tibetan \
phsource/ph_turkish \
phsource/ph_urdu \
phsource/ph_vietnam \
phsource/ph_vietnam_hue \
phsource/ph_vietnam_sgn \
phsource/ph_welsh \
phsource/ph_wolof \
phsource/ph_zh \
phsource/ph_zh_yue \
phsource/phonemes \
src/espeakedit
ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile && touch $@


##### android targets: ##### android targets:


espeak-data/fi_dict \ espeak-data/fi_dict \
espeak-data/fr_dict \ espeak-data/fr_dict \
espeak-data/ga_dict \ espeak-data/ga_dict \
espeak-data/gd_dict \
espeak-data/grc_dict \ espeak-data/grc_dict \
espeak-data/gu_dict \ espeak-data/gu_dict \
espeak-data/hbs_dict \ espeak-data/hbs_dict \
espeak-data/ko_dict \ espeak-data/ko_dict \
espeak-data/ku_dict \ espeak-data/ku_dict \
espeak-data/la_dict \ espeak-data/la_dict \
espeak-data/lfn_dict \
espeak-data/lt_dict \ espeak-data/lt_dict \
espeak-data/lv_dict \ espeak-data/lv_dict \
espeak-data/mk_dict \ espeak-data/mk_dict \
espeak-data/nl_dict \ espeak-data/nl_dict \
espeak-data/no_dict \ espeak-data/no_dict \
espeak-data/om_dict \ espeak-data/om_dict \
espeak-data/or_dict \
espeak-data/pa_dict \ espeak-data/pa_dict \
espeak-data/pap_dict \ espeak-data/pap_dict \
espeak-data/pl_dict \ espeak-data/pl_dict \
af: espeak-data/af_dict af: espeak-data/af_dict
dictsource/af_extra: dictsource/af_extra:
touch dictsource/af_extra touch dictsource/af_extra
espeak-data/af_dict: src/espeak espeak-data/phontab dictsource/af_list dictsource/af_rules dictsource/af_extra
espeak-data/af_dict: src/espeak phsource/phonemes.stamp dictsource/af_list dictsource/af_rules dictsource/af_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=af && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=af && cd ..


am: espeak-data/am_dict am: espeak-data/am_dict
dictsource/am_extra: dictsource/am_extra:
touch dictsource/am_extra touch dictsource/am_extra
espeak-data/am_dict: src/espeak espeak-data/phontab dictsource/am_list dictsource/am_rules dictsource/am_extra
espeak-data/am_dict: src/espeak phsource/phonemes.stamp dictsource/am_list dictsource/am_rules dictsource/am_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=am && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=am && cd ..


an: espeak-data/an_dict an: espeak-data/an_dict
dictsource/an_extra: dictsource/an_extra:
touch dictsource/an_extra touch dictsource/an_extra
espeak-data/an_dict: src/espeak espeak-data/phontab dictsource/an_list dictsource/an_rules dictsource/an_extra
espeak-data/an_dict: src/espeak phsource/phonemes.stamp dictsource/an_list dictsource/an_rules dictsource/an_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=an && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=an && cd ..


as: espeak-data/as_dict as: espeak-data/as_dict
dictsource/as_extra: dictsource/as_extra:
touch dictsource/as_extra touch dictsource/as_extra
espeak-data/as_dict: src/espeak espeak-data/phontab dictsource/as_list dictsource/as_rules dictsource/as_extra
espeak-data/as_dict: src/espeak phsource/phonemes.stamp dictsource/as_list dictsource/as_rules dictsource/as_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=as && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=as && cd ..


az: espeak-data/az_dict az: espeak-data/az_dict
dictsource/az_extra: dictsource/az_extra:
touch dictsource/az_extra touch dictsource/az_extra
espeak-data/az_dict: src/espeak espeak-data/phontab dictsource/az_list dictsource/az_rules dictsource/az_extra
espeak-data/az_dict: src/espeak phsource/phonemes.stamp dictsource/az_list dictsource/az_rules dictsource/az_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=az && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=az && cd ..


bg: espeak-data/bg_dict bg: espeak-data/bg_dict
dictsource/bg_extra: dictsource/bg_extra:
touch dictsource/bg_extra touch dictsource/bg_extra
espeak-data/bg_dict: src/espeak espeak-data/phontab dictsource/bg_list dictsource/bg_listx dictsource/bg_rules dictsource/bg_extra
espeak-data/bg_dict: src/espeak phsource/phonemes.stamp dictsource/bg_list dictsource/bg_listx dictsource/bg_rules dictsource/bg_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=bg && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=bg && cd ..


bn: espeak-data/bn_dict bn: espeak-data/bn_dict
dictsource/bn_extra: dictsource/bn_extra:
touch dictsource/bn_extra touch dictsource/bn_extra
espeak-data/bn_dict: src/espeak espeak-data/phontab dictsource/bn_list dictsource/bn_rules dictsource/bn_extra
espeak-data/bn_dict: src/espeak phsource/phonemes.stamp dictsource/bn_list dictsource/bn_rules dictsource/bn_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=bn && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=bn && cd ..


ca: espeak-data/ca_dict ca: espeak-data/ca_dict
dictsource/ca_extra: dictsource/ca_extra:
touch dictsource/ca_extra touch dictsource/ca_extra
espeak-data/ca_dict: src/espeak espeak-data/phontab dictsource/ca_list dictsource/ca_rules dictsource/ca_extra
espeak-data/ca_dict: src/espeak phsource/phonemes.stamp dictsource/ca_list dictsource/ca_rules dictsource/ca_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=ca && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=ca && cd ..


cs: espeak-data/cs_dict cs: espeak-data/cs_dict
dictsource/cs_extra: dictsource/cs_extra:
touch dictsource/cs_extra touch dictsource/cs_extra
espeak-data/cs_dict: src/espeak espeak-data/phontab dictsource/cs_list dictsource/cs_rules dictsource/cs_extra
espeak-data/cs_dict: src/espeak phsource/phonemes.stamp dictsource/cs_list dictsource/cs_rules dictsource/cs_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=cs && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=cs && cd ..


cy: espeak-data/cy_dict cy: espeak-data/cy_dict
dictsource/cy_extra: dictsource/cy_extra:
touch dictsource/cy_extra touch dictsource/cy_extra
espeak-data/cy_dict: src/espeak espeak-data/phontab dictsource/cy_list dictsource/cy_rules dictsource/cy_extra
espeak-data/cy_dict: src/espeak phsource/phonemes.stamp dictsource/cy_list dictsource/cy_rules dictsource/cy_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=cy && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=cy && cd ..


da: espeak-data/da_dict da: espeak-data/da_dict
dictsource/da_extra: dictsource/da_extra:
touch dictsource/da_extra touch dictsource/da_extra
espeak-data/da_dict: src/espeak espeak-data/phontab dictsource/da_list dictsource/da_rules dictsource/da_extra
espeak-data/da_dict: src/espeak phsource/phonemes.stamp dictsource/da_list dictsource/da_rules dictsource/da_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=da && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=da && cd ..


de: espeak-data/de_dict de: espeak-data/de_dict
dictsource/de_extra: dictsource/de_extra:
touch dictsource/de_extra touch dictsource/de_extra
espeak-data/de_dict: src/espeak espeak-data/phontab dictsource/de_list dictsource/de_rules dictsource/de_extra
espeak-data/de_dict: src/espeak phsource/phonemes.stamp dictsource/de_list dictsource/de_rules dictsource/de_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=de && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=de && cd ..


el: espeak-data/el_dict el: espeak-data/el_dict
dictsource/el_extra: dictsource/el_extra:
touch dictsource/el_extra touch dictsource/el_extra
espeak-data/el_dict: src/espeak espeak-data/phontab dictsource/el_list dictsource/el_rules dictsource/el_extra
espeak-data/el_dict: src/espeak phsource/phonemes.stamp dictsource/el_list dictsource/el_rules dictsource/el_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=el && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=el && cd ..


en: espeak-data/en_dict en: espeak-data/en_dict
dictsource/en_extra: dictsource/en_extra:
touch dictsource/en_extra touch dictsource/en_extra
espeak-data/en_dict: src/espeak espeak-data/phontab dictsource/en_list dictsource/en_rules dictsource/en_extra
espeak-data/en_dict: src/espeak phsource/phonemes.stamp dictsource/en_list dictsource/en_rules dictsource/en_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=en && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=en && cd ..


eo: espeak-data/eo_dict eo: espeak-data/eo_dict
dictsource/eo_extra: dictsource/eo_extra:
touch dictsource/eo_extra touch dictsource/eo_extra
espeak-data/eo_dict: src/espeak espeak-data/phontab dictsource/eo_list dictsource/eo_rules dictsource/eo_extra
espeak-data/eo_dict: src/espeak phsource/phonemes.stamp dictsource/eo_list dictsource/eo_rules dictsource/eo_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=eo && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=eo && cd ..


es: espeak-data/es_dict es: espeak-data/es_dict
dictsource/es_extra: dictsource/es_extra:
touch dictsource/es_extra touch dictsource/es_extra
espeak-data/es_dict: src/espeak espeak-data/phontab dictsource/es_list dictsource/es_rules dictsource/es_extra
espeak-data/es_dict: src/espeak phsource/phonemes.stamp dictsource/es_list dictsource/es_rules dictsource/es_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=es && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=es && cd ..


et: espeak-data/et_dict et: espeak-data/et_dict
dictsource/et_extra: dictsource/et_extra:
touch dictsource/et_extra touch dictsource/et_extra
espeak-data/et_dict: src/espeak espeak-data/phontab dictsource/et_list dictsource/et_rules dictsource/et_extra
espeak-data/et_dict: src/espeak phsource/phonemes.stamp dictsource/et_list dictsource/et_rules dictsource/et_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=et && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=et && cd ..


fa: espeak-data/fa_dict fa: espeak-data/fa_dict
dictsource/fa_extra: dictsource/fa_extra:
touch dictsource/fa_extra touch dictsource/fa_extra
espeak-data/fa_dict: src/espeak espeak-data/phontab dictsource/fa_list dictsource/fa_rules dictsource/fa_extra
espeak-data/fa_dict: src/espeak phsource/phonemes.stamp dictsource/fa_list dictsource/fa_rules dictsource/fa_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=fa && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=fa && cd ..


fi: espeak-data/fi_dict fi: espeak-data/fi_dict
dictsource/fi_extra: dictsource/fi_extra:
touch dictsource/fi_extra touch dictsource/fi_extra
espeak-data/fi_dict: src/espeak espeak-data/phontab dictsource/fi_list dictsource/fi_rules dictsource/fi_extra
espeak-data/fi_dict: src/espeak phsource/phonemes.stamp dictsource/fi_list dictsource/fi_rules dictsource/fi_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=fi && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=fi && cd ..


fr: espeak-data/fr_dict fr: espeak-data/fr_dict
dictsource/fr_extra: dictsource/fr_extra:
touch dictsource/fr_extra touch dictsource/fr_extra
espeak-data/fr_dict: src/espeak espeak-data/phontab dictsource/fr_list dictsource/fr_rules dictsource/fr_extra
espeak-data/fr_dict: src/espeak phsource/phonemes.stamp dictsource/fr_list dictsource/fr_rules dictsource/fr_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=fr && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=fr && cd ..


ga: espeak-data/ga_dict ga: espeak-data/ga_dict
dictsource/ga_extra: dictsource/ga_extra:
touch dictsource/ga_extra touch dictsource/ga_extra
espeak-data/ga_dict: src/espeak espeak-data/phontab dictsource/ga_list dictsource/ga_rules dictsource/ga_extra
espeak-data/ga_dict: src/espeak phsource/phonemes.stamp dictsource/ga_list dictsource/ga_rules dictsource/ga_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=ga && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=ga && cd ..


gd: espeak-data/gd_dict
dictsource/gd_extra:
touch dictsource/gd_extra
espeak-data/gd_dict: src/espeak phsource/phonemes.stamp dictsource/gd_list dictsource/gd_rules dictsource/gd_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=gd && cd ..

grc: espeak-data/grc_dict grc: espeak-data/grc_dict
dictsource/grc_extra: dictsource/grc_extra:
touch dictsource/grc_extra touch dictsource/grc_extra
espeak-data/grc_dict: src/espeak espeak-data/phontab dictsource/grc_list dictsource/grc_rules dictsource/grc_extra
espeak-data/grc_dict: src/espeak phsource/phonemes.stamp dictsource/grc_list dictsource/grc_rules dictsource/grc_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=grc && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=grc && cd ..


gu: espeak-data/gu_dict gu: espeak-data/gu_dict
dictsource/gu_extra: dictsource/gu_extra:
touch dictsource/gu_extra touch dictsource/gu_extra
espeak-data/gu_dict: src/espeak espeak-data/phontab dictsource/gu_list dictsource/gu_rules dictsource/gu_extra
espeak-data/gu_dict: src/espeak phsource/phonemes.stamp dictsource/gu_list dictsource/gu_rules dictsource/gu_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=gu && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=gu && cd ..


hbs: espeak-data/hbs_dict hbs: espeak-data/hbs_dict
dictsource/hbs_extra: dictsource/hbs_extra:
touch dictsource/hbs_extra touch dictsource/hbs_extra
espeak-data/hbs_dict: src/espeak espeak-data/phontab dictsource/hbs_list dictsource/hbs_rules dictsource/hbs_extra
espeak-data/hbs_dict: src/espeak phsource/phonemes.stamp dictsource/hbs_list dictsource/hbs_rules dictsource/hbs_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=hbs && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=hbs && cd ..


hi: espeak-data/hi_dict hi: espeak-data/hi_dict
dictsource/hi_extra: dictsource/hi_extra:
touch dictsource/hi_extra touch dictsource/hi_extra
espeak-data/hi_dict: src/espeak espeak-data/phontab dictsource/hi_list dictsource/hi_rules dictsource/hi_extra
espeak-data/hi_dict: src/espeak phsource/phonemes.stamp dictsource/hi_list dictsource/hi_rules dictsource/hi_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=hi && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=hi && cd ..


hu: espeak-data/hu_dict hu: espeak-data/hu_dict
dictsource/hu_extra: dictsource/hu_extra:
touch dictsource/hu_extra touch dictsource/hu_extra
espeak-data/hu_dict: src/espeak espeak-data/phontab dictsource/hu_list dictsource/hu_rules dictsource/hu_extra
espeak-data/hu_dict: src/espeak phsource/phonemes.stamp dictsource/hu_list dictsource/hu_rules dictsource/hu_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=hu && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=hu && cd ..


hy: espeak-data/hy_dict hy: espeak-data/hy_dict
dictsource/hy_extra: dictsource/hy_extra:
touch dictsource/hy_extra touch dictsource/hy_extra
espeak-data/hy_dict: src/espeak espeak-data/phontab dictsource/hy_list dictsource/hy_rules dictsource/hy_extra
espeak-data/hy_dict: src/espeak phsource/phonemes.stamp dictsource/hy_list dictsource/hy_rules dictsource/hy_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=hy && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=hy && cd ..


id: espeak-data/id_dict id: espeak-data/id_dict
dictsource/id_extra: dictsource/id_extra:
touch dictsource/id_extra touch dictsource/id_extra
espeak-data/id_dict: src/espeak espeak-data/phontab dictsource/id_list dictsource/id_rules dictsource/id_extra
espeak-data/id_dict: src/espeak phsource/phonemes.stamp dictsource/id_list dictsource/id_rules dictsource/id_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=id && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=id && cd ..


is: espeak-data/is_dict is: espeak-data/is_dict
dictsource/is_extra: dictsource/is_extra:
touch dictsource/is_extra touch dictsource/is_extra
espeak-data/is_dict: src/espeak espeak-data/phontab dictsource/is_list dictsource/is_rules dictsource/is_extra
espeak-data/is_dict: src/espeak phsource/phonemes.stamp dictsource/is_list dictsource/is_rules dictsource/is_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=is && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=is && cd ..


it: espeak-data/it_dict it: espeak-data/it_dict
dictsource/it_extra: dictsource/it_extra:
touch dictsource/it_extra touch dictsource/it_extra
espeak-data/it_dict: src/espeak espeak-data/phontab dictsource/it_list dictsource/it_listx dictsource/it_rules dictsource/it_extra
espeak-data/it_dict: src/espeak phsource/phonemes.stamp dictsource/it_list dictsource/it_listx dictsource/it_rules dictsource/it_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=it && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=it && cd ..


jbo: espeak-data/jbo_dict jbo: espeak-data/jbo_dict
dictsource/jbo_extra: dictsource/jbo_extra:
touch dictsource/jbo_extra touch dictsource/jbo_extra
espeak-data/jbo_dict: src/espeak espeak-data/phontab dictsource/jbo_list dictsource/jbo_rules dictsource/jbo_extra
espeak-data/jbo_dict: src/espeak phsource/phonemes.stamp dictsource/jbo_list dictsource/jbo_rules dictsource/jbo_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=jbo && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=jbo && cd ..


ka: espeak-data/ka_dict ka: espeak-data/ka_dict
dictsource/ka_extra: dictsource/ka_extra:
touch dictsource/ka_extra touch dictsource/ka_extra
espeak-data/ka_dict: src/espeak espeak-data/phontab dictsource/ka_list dictsource/ka_rules dictsource/ka_extra
espeak-data/ka_dict: src/espeak phsource/phonemes.stamp dictsource/ka_list dictsource/ka_rules dictsource/ka_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=ka && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=ka && cd ..


kl: espeak-data/kl_dict kl: espeak-data/kl_dict
dictsource/kl_extra: dictsource/kl_extra:
touch dictsource/kl_extra touch dictsource/kl_extra
espeak-data/kl_dict: src/espeak espeak-data/phontab dictsource/kl_list dictsource/kl_rules dictsource/kl_extra
espeak-data/kl_dict: src/espeak phsource/phonemes.stamp dictsource/kl_list dictsource/kl_rules dictsource/kl_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=kl && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=kl && cd ..


kn: espeak-data/kn_dict kn: espeak-data/kn_dict
dictsource/kn_extra: dictsource/kn_extra:
touch dictsource/kn_extra touch dictsource/kn_extra
espeak-data/kn_dict: src/espeak espeak-data/phontab dictsource/kn_list dictsource/kn_rules dictsource/kn_extra
espeak-data/kn_dict: src/espeak phsource/phonemes.stamp dictsource/kn_list dictsource/kn_rules dictsource/kn_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=kn && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=kn && cd ..


ko: espeak-data/ko_dict ko: espeak-data/ko_dict
dictsource/ko_extra: dictsource/ko_extra:
touch dictsource/ko_extra touch dictsource/ko_extra
espeak-data/ko_dict: src/espeak espeak-data/phontab dictsource/ko_list dictsource/ko_rules dictsource/ko_extra
espeak-data/ko_dict: src/espeak phsource/phonemes.stamp dictsource/ko_list dictsource/ko_rules dictsource/ko_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=ko && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=ko && cd ..


ku: espeak-data/ku_dict ku: espeak-data/ku_dict
dictsource/ku_extra: dictsource/ku_extra:
touch dictsource/ku_extra touch dictsource/ku_extra
espeak-data/ku_dict: src/espeak espeak-data/phontab dictsource/ku_list dictsource/ku_rules dictsource/ku_extra
espeak-data/ku_dict: src/espeak phsource/phonemes.stamp dictsource/ku_list dictsource/ku_rules dictsource/ku_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=ku && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=ku && cd ..


la: espeak-data/la_dict la: espeak-data/la_dict
dictsource/la_extra: dictsource/la_extra:
touch dictsource/la_extra touch dictsource/la_extra
espeak-data/la_dict: src/espeak espeak-data/phontab dictsource/la_list dictsource/la_rules dictsource/la_extra
espeak-data/la_dict: src/espeak phsource/phonemes.stamp dictsource/la_list dictsource/la_rules dictsource/la_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=la && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=la && cd ..


lfn: espeak-data/lfn_dict
dictsource/lfn_extra:
touch dictsource/lfn_extra
espeak-data/lfn_dict: src/espeak phsource/phonemes.stamp dictsource/lfn_list dictsource/lfn_rules dictsource/lfn_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=lfn && cd ..

lt: espeak-data/lt_dict lt: espeak-data/lt_dict
dictsource/lt_extra: dictsource/lt_extra:
touch dictsource/lt_extra touch dictsource/lt_extra
espeak-data/lt_dict: src/espeak espeak-data/phontab dictsource/lt_list dictsource/lt_rules dictsource/lt_extra
espeak-data/lt_dict: src/espeak phsource/phonemes.stamp dictsource/lt_list dictsource/lt_rules dictsource/lt_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=lt && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=lt && cd ..


lv: espeak-data/lv_dict lv: espeak-data/lv_dict
dictsource/lv_extra: dictsource/lv_extra:
touch dictsource/lv_extra touch dictsource/lv_extra
espeak-data/lv_dict: src/espeak espeak-data/phontab dictsource/lv_list dictsource/lv_rules dictsource/lv_extra
espeak-data/lv_dict: src/espeak phsource/phonemes.stamp dictsource/lv_list dictsource/lv_rules dictsource/lv_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=lv && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=lv && cd ..


mk: espeak-data/mk_dict mk: espeak-data/mk_dict
dictsource/mk_extra: dictsource/mk_extra:
touch dictsource/mk_extra touch dictsource/mk_extra
espeak-data/mk_dict: src/espeak espeak-data/phontab dictsource/mk_list dictsource/mk_rules dictsource/mk_extra
espeak-data/mk_dict: src/espeak phsource/phonemes.stamp dictsource/mk_list dictsource/mk_rules dictsource/mk_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=mk && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=mk && cd ..


ml: espeak-data/ml_dict ml: espeak-data/ml_dict
dictsource/ml_extra: dictsource/ml_extra:
touch dictsource/ml_extra touch dictsource/ml_extra
espeak-data/ml_dict: src/espeak espeak-data/phontab dictsource/ml_list dictsource/ml_rules dictsource/ml_extra
espeak-data/ml_dict: src/espeak phsource/phonemes.stamp dictsource/ml_list dictsource/ml_rules dictsource/ml_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=ml && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=ml && cd ..


ms: espeak-data/ms_dict ms: espeak-data/ms_dict
dictsource/ms_extra: dictsource/ms_extra:
touch dictsource/ms_extra touch dictsource/ms_extra
espeak-data/ms_dict: src/espeak espeak-data/phontab dictsource/ms_list dictsource/ms_rules dictsource/ms_extra
espeak-data/ms_dict: src/espeak phsource/phonemes.stamp dictsource/ms_list dictsource/ms_rules dictsource/ms_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=ms && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=ms && cd ..


nci: espeak-data/nci_dict nci: espeak-data/nci_dict
dictsource/nci_extra: dictsource/nci_extra:
touch dictsource/nci_extra touch dictsource/nci_extra
espeak-data/nci_dict: src/espeak espeak-data/phontab dictsource/nci_list dictsource/nci_rules dictsource/nci_extra
espeak-data/nci_dict: src/espeak phsource/phonemes.stamp dictsource/nci_list dictsource/nci_rules dictsource/nci_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=nci && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=nci && cd ..


ne: espeak-data/ne_dict ne: espeak-data/ne_dict
dictsource/ne_extra: dictsource/ne_extra:
touch dictsource/ne_extra touch dictsource/ne_extra
espeak-data/ne_dict: src/espeak espeak-data/phontab dictsource/ne_list dictsource/ne_rules dictsource/ne_extra
espeak-data/ne_dict: src/espeak phsource/phonemes.stamp dictsource/ne_list dictsource/ne_rules dictsource/ne_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=ne && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=ne && cd ..


nl: espeak-data/nl_dict nl: espeak-data/nl_dict
dictsource/nl_extra: dictsource/nl_extra:
touch dictsource/nl_extra touch dictsource/nl_extra
espeak-data/nl_dict: src/espeak espeak-data/phontab dictsource/nl_list dictsource/nl_rules dictsource/nl_extra
espeak-data/nl_dict: src/espeak phsource/phonemes.stamp dictsource/nl_list dictsource/nl_rules dictsource/nl_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=nl && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=nl && cd ..


no: espeak-data/no_dict no: espeak-data/no_dict
dictsource/no_extra: dictsource/no_extra:
touch dictsource/no_extra touch dictsource/no_extra
espeak-data/no_dict: src/espeak espeak-data/phontab dictsource/no_list dictsource/no_rules dictsource/no_extra
espeak-data/no_dict: src/espeak phsource/phonemes.stamp dictsource/no_list dictsource/no_rules dictsource/no_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=no && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=no && cd ..


om: espeak-data/om_dict om: espeak-data/om_dict
dictsource/om_extra: dictsource/om_extra:
touch dictsource/om_extra touch dictsource/om_extra
espeak-data/om_dict: src/espeak espeak-data/phontab dictsource/om_list dictsource/om_rules dictsource/om_extra
espeak-data/om_dict: src/espeak phsource/phonemes.stamp dictsource/om_list dictsource/om_rules dictsource/om_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=om && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=om && cd ..


or: espeak-data/or_dict
dictsource/or_extra:
touch dictsource/or_extra
espeak-data/or_dict: src/espeak phsource/phonemes.stamp dictsource/or_list dictsource/or_rules dictsource/or_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=or && cd ..

pa: espeak-data/pa_dict pa: espeak-data/pa_dict
dictsource/pa_extra: dictsource/pa_extra:
touch dictsource/pa_extra touch dictsource/pa_extra
espeak-data/pa_dict: src/espeak espeak-data/phontab dictsource/pa_list dictsource/pa_rules dictsource/pa_extra
espeak-data/pa_dict: src/espeak phsource/phonemes.stamp dictsource/pa_list dictsource/pa_rules dictsource/pa_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=pa && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=pa && cd ..


pap: espeak-data/pap_dict pap: espeak-data/pap_dict
dictsource/pap_extra: dictsource/pap_extra:
touch dictsource/pap_extra touch dictsource/pap_extra
espeak-data/pap_dict: src/espeak espeak-data/phontab dictsource/pap_list dictsource/pap_rules dictsource/pap_extra
espeak-data/pap_dict: src/espeak phsource/phonemes.stamp dictsource/pap_list dictsource/pap_rules dictsource/pap_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=pap && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=pap && cd ..


pl: espeak-data/pl_dict pl: espeak-data/pl_dict
dictsource/pl_extra: dictsource/pl_extra:
touch dictsource/pl_extra touch dictsource/pl_extra
espeak-data/pl_dict: src/espeak espeak-data/phontab dictsource/pl_list dictsource/pl_rules dictsource/pl_extra
espeak-data/pl_dict: src/espeak phsource/phonemes.stamp dictsource/pl_list dictsource/pl_rules dictsource/pl_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=pl && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=pl && cd ..


pt: espeak-data/pt_dict pt: espeak-data/pt_dict
dictsource/pt_extra: dictsource/pt_extra:
touch dictsource/pt_extra touch dictsource/pt_extra
espeak-data/pt_dict: src/espeak espeak-data/phontab dictsource/pt_list dictsource/pt_rules dictsource/pt_extra
espeak-data/pt_dict: src/espeak phsource/phonemes.stamp dictsource/pt_list dictsource/pt_rules dictsource/pt_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=pt && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=pt && cd ..


ro: espeak-data/ro_dict ro: espeak-data/ro_dict
dictsource/ro_extra: dictsource/ro_extra:
touch dictsource/ro_extra touch dictsource/ro_extra
espeak-data/ro_dict: src/espeak espeak-data/phontab dictsource/ro_list dictsource/ro_rules dictsource/ro_extra
espeak-data/ro_dict: src/espeak phsource/phonemes.stamp dictsource/ro_list dictsource/ro_rules dictsource/ro_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=ro && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=ro && cd ..


ru: espeak-data/ru_dict ru: espeak-data/ru_dict
dictsource/ru_extra: dictsource/ru_extra:
touch dictsource/ru_extra touch dictsource/ru_extra
espeak-data/ru_dict: src/espeak espeak-data/phontab dictsource/ru_list dictsource/ru_rules dictsource/ru_extra
dictsource/ru_listx:
ln -svf extra/ru_listx dictsource/
if HAVE_RU_EXTENDED_DICTIONARY
espeak-data/ru_dict: src/espeak phsource/phonemes.stamp dictsource/ru_list dictsource/ru_rules dictsource/ru_extra dictsource/ru_listx
else
espeak-data/ru_dict: src/espeak phsource/phonemes.stamp dictsource/ru_list dictsource/ru_rules dictsource/ru_extra
endif
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=ru && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=ru && cd ..


si: espeak-data/si_dict si: espeak-data/si_dict
dictsource/si_extra: dictsource/si_extra:
touch dictsource/si_extra touch dictsource/si_extra
espeak-data/si_dict: src/espeak espeak-data/phontab dictsource/si_list dictsource/si_rules dictsource/si_extra
espeak-data/si_dict: src/espeak phsource/phonemes.stamp dictsource/si_list dictsource/si_rules dictsource/si_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=si && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=si && cd ..


sk: espeak-data/sk_dict sk: espeak-data/sk_dict
dictsource/sk_extra: dictsource/sk_extra:
touch dictsource/sk_extra touch dictsource/sk_extra
espeak-data/sk_dict: src/espeak espeak-data/phontab dictsource/sk_list dictsource/sk_rules dictsource/sk_extra
espeak-data/sk_dict: src/espeak phsource/phonemes.stamp dictsource/sk_list dictsource/sk_rules dictsource/sk_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=sk && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=sk && cd ..


sl: espeak-data/sl_dict sl: espeak-data/sl_dict
dictsource/sl_extra: dictsource/sl_extra:
touch dictsource/sl_extra touch dictsource/sl_extra
espeak-data/sl_dict: src/espeak espeak-data/phontab dictsource/sl_list dictsource/sl_rules dictsource/sl_extra
espeak-data/sl_dict: src/espeak phsource/phonemes.stamp dictsource/sl_list dictsource/sl_rules dictsource/sl_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=sl && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=sl && cd ..


sq: espeak-data/sq_dict sq: espeak-data/sq_dict
dictsource/sq_extra: dictsource/sq_extra:
touch dictsource/sq_extra touch dictsource/sq_extra
espeak-data/sq_dict: src/espeak espeak-data/phontab dictsource/sq_list dictsource/sq_rules dictsource/sq_extra
espeak-data/sq_dict: src/espeak phsource/phonemes.stamp dictsource/sq_list dictsource/sq_rules dictsource/sq_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=sq && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=sq && cd ..


sv: espeak-data/sv_dict sv: espeak-data/sv_dict
dictsource/sv_extra: dictsource/sv_extra:
touch dictsource/sv_extra touch dictsource/sv_extra
espeak-data/sv_dict: src/espeak espeak-data/phontab dictsource/sv_list dictsource/sv_rules dictsource/sv_extra
espeak-data/sv_dict: src/espeak phsource/phonemes.stamp dictsource/sv_list dictsource/sv_rules dictsource/sv_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=sv && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=sv && cd ..


sw: espeak-data/sw_dict sw: espeak-data/sw_dict
dictsource/sw_extra: dictsource/sw_extra:
touch dictsource/sw_extra touch dictsource/sw_extra
espeak-data/sw_dict: src/espeak espeak-data/phontab dictsource/sw_list dictsource/sw_rules dictsource/sw_extra
espeak-data/sw_dict: src/espeak phsource/phonemes.stamp dictsource/sw_list dictsource/sw_rules dictsource/sw_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=sw && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=sw && cd ..


ta: espeak-data/ta_dict ta: espeak-data/ta_dict
dictsource/ta_extra: dictsource/ta_extra:
touch dictsource/ta_extra touch dictsource/ta_extra
espeak-data/ta_dict: src/espeak espeak-data/phontab dictsource/ta_list dictsource/ta_rules dictsource/ta_extra
espeak-data/ta_dict: src/espeak phsource/phonemes.stamp dictsource/ta_list dictsource/ta_rules dictsource/ta_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=ta && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=ta && cd ..


te: espeak-data/te_dict te: espeak-data/te_dict
dictsource/te_extra: dictsource/te_extra:
touch dictsource/te_extra touch dictsource/te_extra
espeak-data/te_dict: src/espeak espeak-data/phontab dictsource/te_list dictsource/te_rules dictsource/te_extra
espeak-data/te_dict: src/espeak phsource/phonemes.stamp dictsource/te_list dictsource/te_rules dictsource/te_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=te && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=te && cd ..


tr: espeak-data/tr_dict tr: espeak-data/tr_dict
dictsource/tr_extra: dictsource/tr_extra:
touch dictsource/tr_extra touch dictsource/tr_extra
espeak-data/tr_dict: src/espeak espeak-data/phontab dictsource/tr_list dictsource/tr_rules dictsource/tr_extra
espeak-data/tr_dict: src/espeak phsource/phonemes.stamp dictsource/tr_list dictsource/tr_rules dictsource/tr_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=tr && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=tr && cd ..


ur: espeak-data/ur_dict ur: espeak-data/ur_dict
dictsource/ur_extra: dictsource/ur_extra:
touch dictsource/ur_extra touch dictsource/ur_extra
espeak-data/ur_dict: src/espeak espeak-data/phontab dictsource/ur_list dictsource/ur_rules dictsource/ur_extra
espeak-data/ur_dict: src/espeak phsource/phonemes.stamp dictsource/ur_list dictsource/ur_rules dictsource/ur_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=ur && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=ur && cd ..


vi: espeak-data/vi_dict vi: espeak-data/vi_dict
dictsource/vi_extra: dictsource/vi_extra:
touch dictsource/vi_extra touch dictsource/vi_extra
espeak-data/vi_dict: src/espeak espeak-data/phontab dictsource/vi_list dictsource/vi_rules dictsource/vi_extra
espeak-data/vi_dict: src/espeak phsource/phonemes.stamp dictsource/vi_list dictsource/vi_rules dictsource/vi_extra
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=vi && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=vi && cd ..


zh: espeak-data/zh_dict zh: espeak-data/zh_dict
dictsource/zh_extra: dictsource/zh_extra:
touch dictsource/zh_extra touch dictsource/zh_extra
espeak-data/zh_dict: src/espeak espeak-data/phontab dictsource/zh_list dictsource/zh_rules dictsource/zh_extra
dictsource/zh_listx:
ln -svf extra/zh_listx dictsource/
if HAVE_ZH_EXTENDED_DICTIONARY
espeak-data/zh_dict: src/espeak phsource/phonemes.stamp dictsource/zh_list dictsource/zh_rules dictsource/zh_extra dictsource/zh_listx
else
espeak-data/zh_dict: src/espeak phsource/phonemes.stamp dictsource/zh_list dictsource/zh_rules dictsource/zh_extra
endif
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=zh && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=zh && cd ..


zhy: espeak-data/zhy_dict zhy: espeak-data/zhy_dict
dictsource/zhy_extra: dictsource/zhy_extra:
touch dictsource/zhy_extra touch dictsource/zhy_extra
espeak-data/zhy_dict: src/espeak espeak-data/phontab dictsource/zhy_rules dictsource/zhy_extra
dictsource/zhy_list:
ln -svf extra/zhy_list dictsource/
if HAVE_ZHY_EXTENDED_DICTIONARY
espeak-data/zhy_dict: src/espeak phsource/phonemes.stamp dictsource/zhy_rules dictsource/zhy_extra dictsource/zhy_list
else
espeak-data/zhy_dict: src/espeak phsource/phonemes.stamp dictsource/zhy_rules dictsource/zhy_extra
endif
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=zhy && cd .. cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=zhy && cd ..

+ 0
- 4
README.md View File



Now, you can install the APK using the `adb` tool: Now, you can install the APK using the `adb` tool:


$ adb install -r bin/eSpeakActivity-release-signed.apk

### Enabling eSpeak on the Device

After running, `eSpeakActivity` will extract the `espeakdata.zip` file into its After running, `eSpeakActivity` will extract the `espeakdata.zip` file into its
own data directory to set up the available voices. own data directory to set up the available voices.



+ 53
- 10
configure.ac View File

AC_PREREQ([2.63]) AC_PREREQ([2.63])
AC_INIT([eSpeak], [1.47], [https://github.com/rhdunn/espeak/issues], [espeak], [https://github.com/rhdunn/espeak])
AC_INIT([eSpeak], [1.48], [https://github.com/rhdunn/espeak/issues], [espeak], [https://github.com/rhdunn/espeak])
AM_INIT_AUTOMAKE() AM_INIT_AUTOMAKE()


m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES]) m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES])
AM_CONDITIONAL(OPT_SONIC, [test x"$have_sonic" = xyes]) AM_CONDITIONAL(OPT_SONIC, [test x"$have_sonic" = xyes])
AM_CONDITIONAL(OPT_ASYNC, [test x"$have_async" = xyes]) AM_CONDITIONAL(OPT_ASYNC, [test x"$have_async" = xyes])


dnl ================================================================
dnl Extended dictionary checks.
dnl ================================================================

AC_ARG_WITH([extdict-ru],
[AS_HELP_STRING([--with-extdict-ru], [use the extended Russian Dictionary file @<:@default=no@:>@])],
[])

if test "$with_extdict_ru" = "yes" ; then
have_extdict_ru=yes
else
have_extdict_ru=no
fi

AC_ARG_WITH([extdict-zh],
[AS_HELP_STRING([--with-extdict-zh], [use the extended Mandarin Chinese Dictionary file @<:@default=no@:>@])],
[])

if test "$with_extdict_zh" = "yes" ; then
have_extdict_zh=yes
else
have_extdict_zh=no
fi

AC_ARG_WITH([extdict-zhy],
[AS_HELP_STRING([--with-extdict-zhy], [use the extended Cantonese Chinese Dictionary file @<:@default=no@:>@])],
[])

if test "$with_extdict_zhy" = "yes" ; then
have_extdict_zhy=yes
else
have_extdict_zhy=no
fi

AM_CONDITIONAL(HAVE_RU_EXTENDED_DICTIONARY, [test x"$have_extdict_ru" = xyes])
AM_CONDITIONAL(HAVE_ZH_EXTENDED_DICTIONARY, [test x"$have_extdict_zh" = xyes])
AM_CONDITIONAL(HAVE_ZHY_EXTENDED_DICTIONARY, [test x"$have_extdict_zhy" = xyes])

dnl ================================================================ dnl ================================================================
dnl wxWidgets checks. dnl wxWidgets checks.
dnl ================================================================ dnl ================================================================
Compiler flags: ${CXXFLAGS} Compiler flags: ${CXXFLAGS}


wxWidgets: ${WX_VERSION} wxWidgets: ${WX_VERSION}
pulseaudio: ${have_pulseaudio}
portaudio: ${have_portaudio}
sada: ${have_sada}
audio configuration: ${AUDIO}

Klatt: ${have_klatt}
MBROLA: ${have_mbrola}
Sonic: ${have_sonic}
Async: ${have_async}
pulseaudio: ${have_pulseaudio}
portaudio: ${have_portaudio}
sada: ${have_sada}
audio configuration: ${AUDIO}

Klatt: ${have_klatt}
MBROLA: ${have_mbrola}
Sonic: ${have_sonic}
Async: ${have_async}

Extended Dictionaries:
Russian: ${have_extdict_ru}
Chinese (Mandarin): ${have_extdict_zh}
Chinese (Cantonese): ${have_extdict_zhy}
]) ])

+ 33
- 13
dictsource/an_rules View File

.L03 f h j s y z r // allow [B] [D] [Q] before these consonants .L03 f h j s y z r // allow [B] [D] [Q] before these consonants
.L04 b v f p // labials, nasals are [m] .L04 b v f p // labials, nasals are [m]
.L05 g k // velars, nasals are [N] .L05 g k // velars, nasals are [N]
.L06 a e o


.group a .group a
a a a a
u) e E u) e E
y) e E y) e E


L06_) e (CC e# // unstressed 'e' silent at start of word after a,e,o
L06_h) e (CC e# // unstressed 'e' silent at start of word after a,e,o

_) ent' (AP4 ent _) ent' (AP4 ent
_) enta' ,ent%a _) enta' ,ent%a




.group h .group h
h // silent h // silent
hu (e gw
hu (i gw
hu (Y gw


.group i .group i
i i i i
i (u_ i i (u_ i
i (A j i (A j




.group j .group j
n n n n
n (L04 m n (L04 m
n (_L04 m n (_L04 m
ny n^
ny (A n^




.group ñ .group ñ




.group q .group q
q k
q k
qu (A kw qu (A kw
qü kw qü kw
qu (e k qu (e k
qu (i k qu (i k
qu (é k qu (é k
qu (í k qu (í k
qu ('A k
qu ('hA k



.group r .group r
r r r r
&) s (_S1 s &) s (_S1 s


_) s' (AP2 s _) s' (AP2 s
_) s (C@ %es
_) s (hA s
_) s (y s
A_) s (C s




.group t .group t
u) t (_ t# u) t (_ t#
ei) t (_ t# ei) t (_ t#
n) t (_ = // silent, but stress on last vowel n) t (_ = // silent, but stress on last vowel
n) t (m // Silent
_pos) t (h t
_pos) t (C // Silent
n) t (m // Silent
_pos) t (h t
_pos) t (C // Silent
tz T tz T
ue) t (_ t# ue) t (_ t#
ui) t (_ t# ui) t (_ t#
u (i u u (i u
r) uix uS r) uix uS
r) u (A u r) u (A u
A) u (Y gw
u (A w u (A w
_) u (u u
_) u (A gw _) u (A gw
//Ar) u (Y gw
_des) u (Y gw
_es) u (Y gw


// Some exception
_esquir) u (el Qw // esquiruelo, esquiruelos
_cir) u (ell Qw // Ciruello, ciruella, ciruellos, ciruellas


.group v // same as 'b' .group v // same as 'b'
v b v b
x ks x ks
_) x S _) x S
i) x S i) x S
C) x S


.group y .group y
y j y j
y (_ i y (_ i
C) y (C i


.group z .group z
z T z T




.group .group
'
'
á ''a á ''a
é ''e é ''e
í ''i í ''i
ó ''o ó ''o
ú ''u ú ''u


__) - (_D m'enos
D_) - (_D m'enos
__) - (_D m'enos
D_) - (_D m'enos

+ 133
- 194
dictsource/as_list View File

// Translation rules for Bengali

// Translation rules for Assamese
// input by .
// This file is UTF8 encoded // This file is UTF8 encoded


// Numbers // Numbers
// Bengali numbers are changed to latin characters before translation
_0 S'unjO
_1 '&k
// Numbers are changed to latin characters before translation
_0 X'unjO
_1 'ek
_2 d'uj _2 d'uj
_3 t'in
_4 tS'ar
_3 t'ini
_4 tS#'ar'i
_5 p'a~tS _5 p'a~tS
_6 tS#'Oj _6 tS#'Oj
_7 S'at
_8 'at.#
_7 X'at
_8 a~t.#
_9 n'Oj _9 n'Oj


_2a d'u // with hundreds etc. _2a d'u // with hundreds etc.
_6a tS#'a
_6a tS#'O
_9a n'O _9a n'O




_10 d'OS
_11 '&garo
_10 d@h
_11 Ig#'a:ro
_12 b'arO _12 b'arO
_13 t'erO _13 t'erO
_14 tS'oddO
_14 tS#au'ddO
_15 p'OnerO _15 p'OnerO
_16 S'olO
_17 S'OterO
_16 X'olO
_17 X'OterO
_18 'at.#arO _18 'at.#arO
_19 'uniS
_19 'un'niS


_20 k'uri // or b'iS ??
_20 b'iS
_21 ek'uS _21 ek'uS
_22 b'ajS _22 b'ajS
_23 t'ejS _23 t'ejS
_24 tS'ObbiS _24 tS'ObbiS
_25 p'O~tSiS _25 p'O~tSiS
_26 tSh'abbiS _26 tSh'abbiS
_27 Sat'aS
_27 X'at'aS
_28 'at.#aS _28 'at.#aS
_29 unOtr'iS
_29 'unOtr'iS


_30 tr'iS _30 tr'iS
_31 ekOtr'iS
_32 bOtr'iS
_33 tetr'iS
_34 tSowtr'iS
_35 pO~jtr'iS
_31 'ek'Otr'iS
_32 b'Otr'iS
_33 t'etr'iS
_34 tS'owtr'iS
_35 p'O~jtr'iS
_36 tS#'Otr'iS _36 tS#'Otr'iS
_37 Sa~itr'iS
_38 at.tr'iS
_37 X'a~i'tr'iS
_38 'a~t.tr'iS
_39 'unOtSOll'iS _39 'unOtSOll'iS


_40 tSOll'iS _40 tSOll'iS
_41 ektSOll'iS
_42 biall'iS
_43 tetall'iS
_44 tSoall'iS
_45 pO~jtall'iS
_46 tSetSOll'iS
_47 SatSOll'is
_48 atSOll'iS
_49 unOpO~tSaS
_50 pO~tS'aS
_51 &kann'o
_52 bajann'o
_53 tepann'o
_54 tSujann'o
_55 pontSann'o
_56 tS#apann'o
_57 Satann'o
_58 at.ann'o
_59 unOS'at.
_60 s'at.
_61 ekSOt.t.'i
_62 baSOt.t.'i
_63 teSOt.t.'i
_64 tSowSOt.t.'i
_65 pojSOt.t.'i
_66 SeSOt.t.'i
_67 SatSOt.t.'i
_68 at.SOt.t.'i
_6X sat.t.'i
_69 unOSOtt'ur
_70 SOtt'Or
_71 ekatt'Or
_72 bahatt'Or
_73 tehatt'Or
_74 tSuhatt'Or
_75 pOtSatt'Or
_76 tS#ijatt'Or
_77 Satatt'Or
_78 at.att'Or
_79 unOaS'i
_80 aS'i
_81 &kaS'i
_82 beraS'i
_83 teraS'i
_84 tSuraS'i
_85 po~tSaS'i
_86 tS#ijaS'i
_87 SataS'i
_88 at.aS'i
_89 ,unOnObb'oj
_41 'ektSOll'iS
_42 b'iall'iS
_43 t'etall'iS
_44 tS'oall'iS
_45 p'O~jtall'iS
_46 tS'etSO'll'iS
_47 X'atSOll'is
_48 'a~'tSOll'iS
_49 'unOpO~tSaS
_50 p'O~tS'aS
_51 I'kann'o
_52 b'ajann'o
_53 t'epann'o
_54 tS'ujann'o
_55 p'ontSann'o
_56 tS#'apann'o
_57 X'atann'o
_58 'at.ann'o
_59 'unO'Xa:t.
_60 sa:t.
_61 'ek'XO't.t.'i
_62 b'aXO't.t.'i
_63 t'eXO't.t.'i
_64 tS'ow'XO't.t.'i
_65 p'oj'XO't.t.'i
_66 S'eSOt.t.'i
_67 Sa:tSOt'ti
_68 'a~t.SOt.t.'i
_6X s'at.t.'i
_69 'unO'X'Ott'Or
_70 X'Ott'Or
_71 I'k#'Ott'Or
_72 b'ahatt'Or
_73 t'iatt'Or
_74 tS'uhatt'Or
_75 p'OX'at.t'Or
_76 tS#'ijatt'Or
_77 S'atatt'Or
_78 'a~t.att'Or
_79 'unOa'X'i
_80 a:X'i
_81 I'ka'X'i
_82 b'ira'X'i
_83 t'ira'X'i
_84 tS'ura'X'i
_85 p'o~tSa'X'i
_86 tS#'ija'X'i
_87 S'ataS'i
_88 X'ata'S'i
_89 'unOnObb'oj


_90 nObb'oj _90 nObb'oj
_91 &kanObb'oj
_92 beranObb'oj
_93 teranObb'oj
_94 tSuranObb'oj
_95 pOtSanObb'oj
_96 tS#ijanObb'oj
_97 SatanObb'oj
_98 at.anObb'oj
_99 niranObb'oj
_0C S'o
_91 I'kanObb'oj
_92 b'ira'nObb'oj
_93 t'ira:nObb'oj
_94 tS'uranObb'oj
_95 p'OtSanObb'oj
_96 tS#'ijanObb'oj
_97 X'atanObb'oj
_98 'a~t.anObb'oj
_99 n'iranObb'oj
_0C e'X'o
_0M1 h'ajar _0M1 h'ajar
_0M2 l'ak# _0M2 l'ak#
_0M3 k'ot.i _0M3 k'ot.i
_0M4 'Orbud _0M4 'Orbud
_dpt _d'Osomik_
_dpt _d'OX'omik_




// Single consonants // Single consonants
খ k#O খ k#O
গ gO গ gO
ঘ g#O ঘ g#O
ঙ 'uNO~
ঙ 'uNgO~
চ tSO চ tSO
ছ tShO // [h] to distinguish from [tS] ছ tShO // [h] to distinguish from [tS]
জ JO জ JO
ব bO ব bO
ভ b#O ভ b#O
ম mO ম mO
য় Oj
য ,ontostedZ'O য ,ontostedZ'O
র rO
ড় r.O
ড় r.O // (d. + nukta)
ঢ় hr.O
ঢ় hr.O // (d#. + nukta)
ৰ rO
ল lO ল lO
ৱ wO
শ t,aleboS:'O শ t,aleboS:'O
ষ m,ud#en:oS:'O ষ m,ud#en:oS:'O
স d,onteS:'O
স d,onte'X:'O
হ hO হ hO
ৎ kh,Ond.ot'O
ক্ষ k,ojmud#en:oS:'O ক্ষ k,ojmud#en:oS:'O
ড় dOerO // (d. + nukta)
ঢ় d#e hr.O // (d#. + nukta)
য় ,ontosteOj
ৎ kh,Ond.ot'O





// full vowels // full vowels
অ O অ O
আ a আ a
ই hrOS:o'i ই hrOS:o'i
ঈ dirg#o'i
ঈ d'i:rg#o'i
উ hrOS:o'u উ hrOS:o'u
ঊ dirg#o'u
ঊ d'i:rg#o'u
ঋ ri ঋ ri
ও o
ঔ ow ঔ ow

এ e $u+ // word 'it' এ e $u+ // word 'it'
ঐ oj $u+ // word 'that' ঐ oj $u+ // word 'that'
ও o $u+ $brk // 'and' ও o $u+ $brk // 'and'
_এ e _এ e
_ঐ oj _ঐ oj
_ও o




// combining vowel signs // combining vowel signs
া 'akar া 'akar
ি r'oS:ikar
ী d'irg#ikar
r'oS:ukar
ু d'irg#ukar
ি hrOS:o'ikar
ী d'i:rg#ikar
hrOS:o'ukar
ু d'i:rg#ukar
ৃ r'ikar ৃ r'ikar
ে 'ekar ে 'ekar
ৈ 'ojkar ৈ 'ojkar
় b'indu ় b'indu


$ d.Olar $ d.Olar
% SOtk'Ora
% X'Otk'Ora
+ jOg + jOg
= SOman
= X'Oman






// Punctuation // Punctuation
। dVn.d.V
। dVn.ri
_, koma _, koma
_? pr'oSnOtSihnO _? pr'oSnOtSihnO


// Pronouns // Pronouns
আমি $u // main: I
আমায় $u
আমার $u


আমরা $u // we
আমাদের $u
ময $u // I, me
আমি $u // us
আমার $u // our


আপনি $u // you(formal) আপনি $u // you(formal)
আপনাকে $u
আপনার $u
আপনাক $u


তুমি $u // you (informal) তুমি $u // you (informal)
তোমায় $u
তোমার $u
তোমাদের $u

তুই $u // you (informal)
তোকে $u
তোমাক $u
তয় $u // you (informal)
তোক $u
তোর $u তোর $u


এ $u // he/she/it
আপনি $u
এটার $u
এর $u

ইনি $u // they
এনাকে $u
এনার $u

ও $u // he/she/it
সে $u
ওর $u
তার $u

ওরা $u // they
তারা $u
ওদের $u // unheṃ: them
তাদের $u

এই $u // e:I this/it
এটা $u // e:ta: this/it
এটার $u // e:ta:'r this/it
এর $u // e:r this/it

ওটা $u // o:ta: that
ওটাকে $u // o:ta:ke: to that
ওটার $u // o:ta:'r of that
সি $u // he
তাই $u // she


ওগুলো $u // o:gu:lo: those
ওগুলোকে $u // o:gu:lo:ke: to those
ওগুলোর $u // o:gu:lo:'r of those




// Prepositions/Postpositions
মধ্যে $u // moddhe in
উপর $u // upor on, above
নীচে $u // niche below

পূর্ব্বে $u // purbe before, prior
পর্য্যন্ত $u // parjonto till
অব্দি $u // abdi till
বিনা $u // bina without



// Questions
কেন $u $pause // kano why interrogative particle
কি $u $pause // ki what
কোথায় $u $pause // kothaay where
কখন $u $pause // kakhon when
কে $u $pause // ke who
কিয় $u $pause // kio why interrogative particle
কি $u $pause // ki what
কোত $u $pause // kot where
কেতিয়া $u $pause // ketia when
কোন $u $pause // kon who


// Conjunctions // Conjunctions


ং $u $pause // ebong: and
আর $u $pause // aar: and
অথা $u $pause // athoba: or
এরং $u $pause // ebong: and
আরু $u $pause // aaru : and
অথরা $u $pause // athoba: or
কিন্তু $u $pause // kintu: but কিন্তু $u $pause // kintu: but
যদি $pause // jodi: if যদি $pause // jodi: if
তবু $pause // tobu: still, yet
তবে $pause // tabe: if...then
তেতিয়া $pause // then
অথচ $u // athacho: yet অথচ $u // athacho: yet




// Verbs

হয় $u


ছিল $u // chilo: past aux
ছিলেন $u // chilen


করছি $u // korchi: continuous
করছিলাম $u // korchilam: past indefinite
করেছি $u // korechi: past



// Exceptions // Exceptions
ত &to
এটা &ta // one piece, one

+ 166
- 208
dictsource/as_rules View File


// Pronounciation rule for Assamese.
// This file is UTF8 encoded // This file is UTF8 encoded


// letter groups: // letter groups:
// C consonants // C consonants
// Y vowel letters and vowel signs // Y vowel letters and vowel signs




.replace .replace
০ 0 ০ 0
১ 1 ১ 1
৮ 8 ৮ 8
৯ 9 ৯ 9



// Vowels // Vowels



.group অ .group অ
V
অঁ O~
অ্যা & // V,ja in [æmiba]
V
অঁ O~
অ্যা & // V,ja in [æmiba]


.group আ .group আ
a
আঁ a~
a
আঁ a~


.group ই .group ই
i
ইঁ i~
i
ইঁ i~




.group ঈ .group ঈ
i
ঈঁ i~
i
ঈঁ i~




.group উ .group উ
উ u
উঁ u~

উ u
উঁ u~
.group ঊ .group ঊ
ঊ u
ঊঁ u~

ঊ u
ঊঁ u~
.group ঋ .group ঋ
ঋ ri
ঋঁ ri~

.group ঌ
ঌ l-
ঋ ri
.group এ .group এ
এ &
এঁ &~

এ &
এঁ &~
.group ঐ .group ঐ
ঐ oj
ঐঁ o~j

ঐ oj
ঐঁ o~j
.group এ .group এ
e
এঁ e~
e
এঁ e~
এ্যা & // e,ja [ækademi]

এ্যা & // e,ja [ækademi]


.group ও .group ও
ও o
ওঁ o~

ও o
ওঁ o~
.group ঔ .group ঔ
ow
ঔঁ o~w
ow
ঔঁ o~w


.group ও //?? .group ও //??
ও o:


ও o:


// Vowel Signs // Vowel Signs


.group া .group া
a
াঁ a~
C) া a
C) াঁ a~
.group ি .group ি
ি i
িঁ i~
C) ি i
C) িঁ i~
.group ী .group ী
i
ীঁ i~
C) ী i
C) ীঁ i~


.group ূ .group ূ
u
ূঁ u~
C) ূ u
C) ূঁ u~


.group ু .group ু
u
ুঁ u~
C) ু u
C) ুঁ u~
.group ৃ .group ৃ
ৃ ri
ৃঁ ri~
C) ৃ r'i


.group ে .group ে
ে e
েঁ e~
েউ ew

C) ে e
C) েঁ e~
C) েউ ew


.group ৈ .group ৈ
oj
ৈঁ o~j
C) ৈ oj
C) ৈঁ o~j
.group ো .group ো
o
োঁ o~
C) ো o
C) োঁ o~
.group ৌ .group ৌ
ow
ৌঁ o~w
C) ৌ ow
C) ৌঁ o~w
// Consonants // Consonants


.group ক .group ক
ক kV
ক (B k
ক kV
ক (B k



.group খ .group খ
k#V
খ (B k#
k#V
খ (B k#
.group গ .group গ
gV
গ (B g
gV
গ (B g




.group ঘ .group ঘ
g#V
ঘ (B g#
g#V
ঘ (B g#


.group ঙ .group ঙ
NV
্ (B N
NV
(B N




.group চ .group চ
tSV
চ (B tS
tSV
চ (B tS




.group ছ .group ছ
tS#V
ছ (B tS#
tS#V
ছ (B tS#


.group জ .group জ
JV
জ (B J
JV
জ (B J
জ্ব JV
জ্ব (B J
জ্ঞ ggo~
জ্ঞ (B gg
জ্ব JV
জ্ব (B J
জ্ঞ ggo~
জ্ঞ (B gg




.group ঝ .group ঝ
J#V
ঝ (B J#
J#V
ঝ (B J#


.group ঞ .group ঞ
nV
্ (B n
nV
(B n


.group ট .group ট
t.V
ট (B t.
t.V
ট (B t.




.group ঠ .group ঠ
ঠ t.#V
ঠ (B t.#
ঠ t.#V
ঠ (B t.#


.group ড .group ড
d.V
ড (B d.
d.V
ড (B d.


ড় r.V // nukta
ড় (B r.

.group ঢ .group ঢ
d.#V
ঢ (B d.#
ঢ d.#V
ঢ (B d.#


ঢ় hr.V
ঢ় (B hr.
.group ণ .group ণ
ণ nV // should be [n.] if adjacent to t. or d. ?
ণ (B n

ণ nV // should be [n.] if adjacent to t. or d. ?
ণ (B n




.group ত .group ত
ত tV
ত (B t
ত tV
ত (B t
ত (_ to


.group থ .group থ
t#V
থ (B t#
t#V
থ (B t#




.group দ .group দ
dV
দ (B d
dV
দ (B d




.group ধ .group ধ
d#V
ধ (B d#
d#V
ধ (B d#




.group ন .group ন
nV
ন (B n
nV
ন (B n


.group প .group প
pV
প (B p
pV
প (B p


.group ফ .group ফ
fV // or [p#] ?
ফ (B f
fV // or [p#] ?
ফ (B f


.group ব .group ব
bV
ব (B b
bV
ব (B b


.group ভ .group ভ
b#V
ভ (B b#
b#V
ভ (B b#


.group ম .group ম
ম mV
ম (B m

.group য়
য় jV
য় (B j
ম mV
ম (B m


.group য .group য
য dZV
য (B dZ
য় jV // nukta
য় (B j

্) য (C & // ব্যস্ত [bæsto]
্) যা & // ব্যাকরণ [bækɔron]
য dZV
য (B dZ
্) য (_ :O // double the previous consonant
্) য (B_ :
্) য (C & // ব্যস্ত [bæsto]
্) যা & // ব্যাকরণ [bækɔron]




.group
rV
র (B r
.group
rV
ৰ (B r


.group ল .group ল
lV
ল (B l
lV
ল (B l


.group ৱ
ৱ waV
ৱ (B wO




.group শ .group শ
SV // or [s] ?
শ (B S
SV // or [s] ?
শ (B S
শ (্ল s
শ (্ল s


.group ষ .group ষ
SV
ষ (B S
SV
ষ (B S


.group স .group স
স SV // or [s] ??
স (B S
স (্থ s
স (্ত s
_) স্ব SV // shb
স X@ // or [s] ??
স (B X
স (্থ s
স (্ত s
স (্য s // সমস্যা
_) স্ব SV // shb
_) স্ব (B S _) স্ব (B S


.group হ .group হ
হ hV
হ (B h
হ hV
হ (B h
হ (_ ho


.group হ্ব
হ্ব vV
হ্ব (B v
.group ক্ষ
ক্ষ k#k#V // or [k#:] ?
ক্ষ (B k#k#


.group ৎ
ৎ t
.group ড়
ড় r.V // can be ড plus nukta
ড় (B r.


.group ঢ়
ঢ় hr.V // can be ঢ plus nukta
ঢ় (B hr.


.group ড় // can be ড plus nukta
ড় r.V
ড় (B r.
.group য়
য় jV
_) য় (B j
য় (B // used to separate 2 vowels


.group ঢ় // can be ঢ plus nukta
ঢ় hr.V
ঢ় (B hr.
.group হ্ব
হ্ব vV
হ্ব (B v


.group ৎ
ৎ t


.group ঁ .group ঁ
ঁ O~ // candrabindu, nasalize the previous vowel
C) ঁ O~ // candrabindu, nasalize the previous vowel/Consonants


.group ং .group ং
ং N // anusvara/onushshor

A) ং N // anusvara/onushshor
C) ং N
.group ঃ // visarga/bishorgo .group ঃ // visarga/bishorgo
ঃ // doubles the following consonant ঃ // doubles the following consonant
ঃ (_ H
ঃ (_ H


.group ্ // virama/hoshonto .group ্ // virama/hoshonto

.group ়
় // nukta, modifies a consonant




.group
// obsolete letters
ঋ r-
ৠ r-
ঌ l-
ৡ l-
ৃ r-
ৄ r-
ৢ l-
ৣ l-


__) - (_D bij'og
D_) - (_D bij'og
// D_) - (_D bij'og

+ 73
- 0
dictsource/bn_list View File



// Exceptions // Exceptions
এত &to এত &to
// Exceptions - where inherent vowel even being between two consonant is not pronounced as (o) mostly in case of two words pronounced and used as a single word. The list however is not final and contain most commonly used words.

সোমবার Som,bar
মঙ্গলবার mOng'ol,bar
বুধবার budh,bar
অমলকান্তি amol,kanti
অন্দরমহল andor,mahol
আকাশকুসুম aka:S,kuSum
আতসবাজী atoS,ba:JI
আদবকায়দা a:dob,kaj'da:
আনকোরা a:n,kora:
আনচান an,can
আপনজন a:pon,jon
আমজনতা a:m'jano'ta:
আলটপকা al,tO,pka
আসকারা a:s,ka:ra:
আসনতলে a:son,tole
ইমনকল্যান imon,kal'la:n
ঈগলপাখী igol,pa:khi
ইঁদুরছানা i~dur'cha:na:
একজন &k'JOn
উত্তরদাতা utt'or,data
উত্তরদায়ী utt;or,da:I
কচকচি kO,c'kOci
কবরখানা kObOr,kha:na
করদাতা kOr,data:
কয়েদখানা kO'edkhana
কয়েকজন kOekJOn
কলকাতা kOlkata
কনকচাঁপা kOnOk,c~a:pa
কাজললতা kaJol,lOta
কারখানা kar,khana
কারবার kar,bar
কালকেতু kal,ketu
কালপুরুষ kal,puruS
খরখরে khOr,khOre
খাপছাড়া khap,chara:
খানখান khan,khan
খানসামা khan,Sama
খাশমহল khaS,mOhOl
খিড়কি khir.ki
খুনসুটি khun,Suti
খুরপি khu,rpi
গজগজ gOJgOJ
গরমিল gOr,mil
ঘটকালী g#Ot'kali
চটপট cOt,pOt
চালবাজ cal'baJ
চালবাজি cal'baJi
ছটপট c#Ot'pOt
জলখাবার JOl,khabar
টনটনে tOn,tOne
টানটান ta:n,tan
ঠগবাজ t.#Og'baJ
ঠিকঠাক t.#ik,t.#ak
নাড়কোল nar,kol
প্রধানমন্ত্রী prOd.#an,mOn'tri
বাসনকোসন ba:son'koson
গালগল্প gal'gOlpo
ঘাসপাতা gha:s'pa:ta
চালচুলো ca:lculo
ছালবাকল c#al'ba:kol
কানপাতলা ka:n'patla:
খানখান kha:n'khan
আরামবাগ ara:m'bag
হারামজাদা hara:m'Jada:
নামডাক na:m'da:k
নাকছাবি na:kcha:bi
পাশবালিশ pash'baliS
ফুলশয্যা ful'SaJJa:
খালবিল kha:l'bil
জালসাজি Jal'Sa:Ji
পোষ্টমাস্টার post'ma:sta:r

+ 926
- 698
dictsource/da_rules
File diff suppressed because it is too large
View File


+ 2
- 0
dictsource/de_list View File

teaser _^_EN teaser _^_EN
tech _^_EN tech _^_EN
terminal _^_EN terminal _^_EN
time _^_EN
trip _^_EN trip _^_EN
tuner _^_EN tuner _^_EN
unix _^_EN unix _^_EN
ersten e:rst@n ersten e:rst@n
erstmal e:rstma:l erstmal e:rstma:l
erzgebirg e:rtsg@bIrg erzgebirg e:rtsg@bIrg
expedient Ekspe:dI'Ent
extravagant $1 extravagant $1
extrem Ekstr'e:m extrem Ekstr'e:m



+ 1
- 0
dictsource/de_rules View File

@t) ien (_ 'i:@n @t) ien (_ 'i:@n
&) iens (_ =I;@ns &) iens (_ =I;@ns
ient (_ I'Ent ient (_ I'Ent
d) ient (_ i:nt
&) ienz (_ I'Ents &) ienz (_ I'Ents
sch) ie (n i: sch) ie (n i:
@) ie (reX 'i: @) ie (reX 'i:

+ 591
- 153
dictsource/en_list
File diff suppressed because it is too large
View File


+ 6257
- 5963
dictsource/en_rules
File diff suppressed because it is too large
View File


+ 84
- 140
dictsource/es_list View File

_14 kat'OrTe _14 kat'OrTe
_15 k'inTe _15 k'inTe
_20 b'eInte _20 b'eInte
_2X b'eInt
_2X beInt
_3X tr'eInta _3X tr'eInta
_4X kwar'Enta _4X kwar'Enta
_5X Tinkw'Enta _5X Tinkw'Enta
_7X sEt'Enta _7X sEt'Enta
_8X OtS'Enta _8X OtS'Enta
_9X nOB'Enta _9X nOB'Enta
_0C Tj'EntOs
// _0C Tj'EntOs
_1C0 Tj'en // exactly one hundred _1C0 Tj'en // exactly one hundred
_1C Tj'ento _1C Tj'ento
_2C dosTj'entos
_3C tresTj'entos
_4C kwatroTj'entos
_5C kinj'EntOs _5C kinj'EntOs
_6C seIsTj'entos
_7C s,eteTj'EntOs _7C s,eteTj'EntOs
_8C otSoTj'entos
_9C n,OBeTj'EntOs _9C n,OBeTj'EntOs
_0M1 m'il _0M1 m'il
_0M2 miJ^'ones _0M2 miJ^'ones


// unstressed words // unstressed words
// articles // articles
el $u
el $atend
los $u
los $atend
la $u
la $atend
las $u
las $atend
lo $u
lo $atend
el $u+
los $u+
la $u+
las $u+
lo $u+








// pronouns // pronouns


me $u $only // reflexive pronouns
me $atend
te $u
te $atend
le $u
le $atend
les $u
les $atend
se $u
se $atend
nos $u
nos $atend
os $u
os $atend
me $u+ $only // reflexive pronouns
te $u+
le $u+
les $u+
se $u+
nos $u+
os $u+




// possessives // possessives
mi $u
mi $atend
mis $u
mis $atend
tu $u
tu $atend
tus $u
tus $atend
su $u
su $atend
sus $u
sus $atend
nuestro $u
nuestro $atend
nuestros $u
nuestros $atend
nuestra $u
nuestra $atend
nuestras $u
nuestras $atend
vuestro $u
vuestro $atend
vuestros $u
vuestros $atend
vuestra $u
vuestra $atend
vuestras $u
vuestras $atend
mi $u+
mis $u+
tu $u+
tus $u+
su $u+
sus $u+
nuestro $u+
nuestros $u+
nuestra $u+
nuestras $u+
vuestro $u+
vuestros $u+
vuestra $u+
vuestras $u+
// prepositions // prepositions
a $u // at
a $atend
al $u
al $atend
de $u // of,from
de $atend
del $u
del $atend
en $u
en $atend
con $u // with
con $atend
sin $u
sin $atend
por $u // for,through,along,via
por $atend
tras $u
tras $atend
ante $u $only
ante $atend
para $u // for,in order,by
para $atend
entre $u
entre $atend
sobre $u
sobre $atend
bajo $u
bajo $atend
desde $u // from,since
desde $atend
hasta $u
hasta $atend
hacia $u
hacia $atend


e $u $only
e $atend
a $u+ // at
al $u+
de $u+ // of,from
del $u+
en $u+
con $u+ // with
sin $u+
por $u+ // for,through,along,via
tras $u+
ante $u+ $only
para $u+ // for,in order,by
entre $u+
sobre $u+
bajo $u+ $only
desde $u+ // from,since
hasta $u+
hacia $u+


e $u+ $only
y %i // and y %i // and
o $u // or
o $atend
u $u
u $atend


aunque $u // although
aunque $atend
pero $u
pero $atend
porque $u // because
porque $atend


que $u // what
que $atend
cuando $u
cuando $atend
cuanto $u
cuanto $atend
donde $u
donde $atend
como $u
como $atend
quien $u
quien $atend
quienes $u
quienes $atend
mientras $u
mientras $atend
si $u
si $atend
o $u+ // or
u $u+


aunque $u+ // although
pero $u+
porque $u+ // because


que $u+ // that
cuando $u+
cuanto $u+
donde $u+
como $u+
quien $u+
quienes $u+
mientras $u+
si $u+






b be b be
c Te c Te
d de d de
f _|Efe
f Efe
g xe g xe
h atSe h atSe
j xOta j xOta
k ka k ka
l _|Ele
m _|Eme
n _|Ene
ñ _|En^e
l Ele
m Eme
n Ene
ñ En^e
p pe p pe
q ku q ku
r _|Ere
s _|Ese
r Ere
s Ese
t te t te
v _|uBe
v uBe
w uBe||d'OBle w uBe||d'OBle
x _|Ekis
x Ekis
z TEta z TEta


_a a _a a
_e e _e e
_o o _o o
_y igri'eQa _y igri'eQa
y igri'eQa $atend
ch tSe ch tSe
ll 'El^e ll 'El^e
á 'a||aTEntw'aDa á 'a||aTEntw'aDa
é 'e||aTEntw'aDa é 'e||aTEntw'aDa
í 'i||aTEntw'aDa í 'i||aTEntw'aDa
_ó 'o||aTEntw'aDa _ó 'o||aTEntw'aDa
ó 'o||aTEntw'aDa $atend
ú 'u||aTEntw'aDa ú 'u||aTEntw'aDa
ü ,uDj'ErEsis
ü 'u||kon||dj'ErEsis








linux $1 linux $1
méxico m'Exiko méxico m'Exiko
mexicano mExikano

vietnam $2
spanish sp'aniS spanish sp'aniS
english ínglish $text english ínglish $text
firefox f'aIrfoks firefox f'aIrfoks
twitter tw'iter twitter tw'iter
twit tw'it twit tw'it
mozilla moT'ila mozilla moT'ila
espeak isp'ik
(e speak) isp'ik
espeak 'isp'ik
(e speak) 'isp'ik
eloquence 'elokwens eloquence 'elokwens
speech sp'itS speech sp'itS
platform pl'atfom platform pl'atfom

+ 283
- 279
dictsource/es_rules View File

// translation rules for Spanish
// This file is UTF-8 encoded

// Conditional rules
// ?1 Castilian
// ?2 Latin America
// ?3 mbrola VZ1

.L01 l r y
.L02 b d g n m // change [s] to [z] before these
.L03 f h j s y z r // allow [B] [D] [Q] before these consonants
.L04 b v f p // labials, nasals are [m]
.L05 g k // velars, nasals are [N]
.L06 j w l r b d g n m p t k c

.group a
a a
ai aI
ay (K aI
ay (_ 'aI
au aU
au (_ 'aU


.group b
b b
_) b ($unpr b // phoneme definition may change it to [B]
_) b (L01A b // Only bl, br are allowed at start of word
_) b (A b
b (A B
b (cY B
b (L03 B
m) b b
n) b b
b (iA b
b (uA b

.group c
c k
_) c (L01A k // allow: cl cr at start of word
_) ch (A tS // allow _ch

c (Y T // ce, ci
ch tS
A) ck k

.group d
d d
_) d ($unpr d // phoneme definition may change it to [D]
_) d (rA d
_) d (A d
d (A D
d (_ D
d (cY D
d (L03 D
d (v D
m) d d
n) d d
l) d d
r) d d


.group e
e e
// e (CK E
e (nK E
e (r E
e (Ch e
Ar) e E
ei eI
ey (K eI
ey (_ 'eI
eu eU
eu (_ 'eU


.group f
f f
_) f (L01A f // allow fl fr at start of word


.group g
g g
_) g ($unpr g // phoneme definition may change it to [Q]
_) g (L01A g
_) gh (A g // allow _gh in foreign words
_) gn (A n
_) g (A g
g (A Q
g (_ Q
g (cY Q
g (L03 Q
m) g g
n) g g
g (Y+ x // ge gi


.group h
h // silent
_) hi (A j


.group i
i i
i (A j
C) i (A j
gu) i (A j
?!3 l) i (A %i
?!3 r) i (A %i


.group j
j x


.group k
k k
_) k (L01A k // allow kl kr at start of word


.group l
l l
ll (_ l
_) ll (A l^ // allowe _ll
?2 _) ll (A J^
?2 ll j:
?2 n_) ll (A dZ
ll l^



.group m
m m
@) m (_ =m
_) mn (em n
_) mb (A mb


.group n
n n
n (L04 m
n (_L04 m
n (L05 N
n (_L05 N
n (j N
ny (A n^ // catalan words
_) nh (A n

.group o
o o
o (CK O
o (r O
o (Ch o
Ar) o O
oi oI
oy (K oI
oy (_ 'oI
ou ow

.group p
p p
_) p (L01A p // allow pl pr at start of word
p (t p:
_) ph (A f
ph (@ f
ph (K f
_) ps (i s
_) ps (eudo s
_) pt (ero t
_) pt (ol t


.group q
q k
qu (Y k // que, qui
_) qw (A kw // qwerty


.group r
r r
r (_ r
r (t r
A) r (A r
C) r (A r
_) r (A R
l) r (A R
m) r (A R
n) r (A R
s) r (A R
rr RR2


.group s
s s
&) s (_S1 s
_) s (K@ s
ss s
_) sh (A S
_) sh (L01A S
sh (K S
?!1 sc (Y s // sce sci for non castilian accent

.group t
t t
_) t (L01A t // all tr at start of word
_) th (@ t
th (K t
_) tx (A tS
tx tS


.group u
u u
u (u u
u (A w
!?3 l) u (A %u
!?3 r) u (A %u
g) u (e
g) u (i
g) u (é
g) u (í

.group v
v b
_) v ($unpr b // phoneme definition may change it to [B]
_) v (L01A b // Only bl, br are allowed at start of word
_) v (A b
v (A B
v (cY B
v (L03 B
m) v b
n) v b
v (iA b
v (uA b


.group w
w w
_) wh (A w


.group x
x ks
_) x ($unpr s // ?
?!1 xc (Y ks // xce xci for non castilian accent

.group y
y i
_) y ($unpr J
_m) y (A j
_l) y (A j
y (A j:
_) y (A J^
u) y (K j:
n_) y (A dZ
y (_ i

.group z
z T
?2 z (L02 z
zz ts


.group
á ''a
é ''E
í ''i
ó ''O
ú ''u
ü u
ñ n^
$ d'Olar

_) - (_D m'EnOs
A_) - (_D _
C_) - (_D _

, (D kOma

// translation rules for Spanish
// This file is UTF-8 encoded
// Conditional rules
// ?1 Castilian
// ?2 Latin America
// ?3 mbrola VZ1
.L01 l r y
.L02 b d g n m // change [s] to [z] before these
.L03 f h j r s y z // allow [B] [D] [Q] before these consonants
.L04 b v f p // labials, nasals are [m]
.L05 g k // velars, nasals are [N]
.L06 j w l r b d g n m p t k c
.group a
a a
ai aI
ay (K aI
ay (_ 'aI
au aU
au (_ 'aU
.group b
b b
_) b ($unpr b // phoneme definition may change it to [B]
_) b (L01A b // Only bl, br are allowed at start of word
_) b (A b
b (A B
b (cY B
b (L03 B
m) b b
n) b b
b (iA b
b (uA b
.group c
c k
_) c (L01A k // allow: cl cr at start of word
_) ch tS // allow _ch
c (Y T // ce, ci
ch tS
A) ck k
.group d
d d
_) d ($unpr d // phoneme definition may change it to [D]
_) d (rA d
_) d (A d
d (A D
d (_ d
d (_A D
d (cY D
d (L03 D
l) d d
d (v D
m) d d
n) d d
r) d d
.group e
e e
// e (CK E
e (nK E
e (r E
e (Ch e
Ar) e E
ei eI
ey (K eI
ey (_ 'eI
eu eU
eu (_ 'eU
.group f
f f
_) f (L01A f // allow fl fr at start of word
.group g
g g
_) g ($unpr g // phoneme definition may change it to [Q]
_) g (L01A g
_) gh (A g // allow _gh in foreign words
_) gn (A n
_) g (A g
g (A Q
g (_A Q
g (_ g
g (cY Q
g (L03 Q
m) g g
n) g g
g (Y+ x // ge gi
n) g (_ // ing
.group h
h // silent
_) hi (A j
.group i
i i
i (A j
C) i (A j
gu) i (A j
?!3 l) i (A %i
?!3 r) i (A %i
?!3 Al) i (A j
?!3 Ar) i (A j
.group j
j x
.group k
k k
_) k (L01A k // allow kl kr at start of word
.group l
l l
ll (_ l^
_) ll (A l^ // allowe _ll
?2 _) ll (A J^
?2 ll j:
?2 n_) ll (A dZ
ll l^
.group m
m m
// @) m (_ =m
_) mn (em n
_) mb (A mb
.group n
n n
n (L04 m
n (_L04 m
n (L05 N
n (_L05 N
n (j N
ny (A n^ // catalan words
_) nh (A n
.group o
o o
o (CK O
o (r O
o (Ch o
Ar) o O
oi oI
oy (K oI
oy (_ 'oI
ou ow
.group p
p p
_) p (L01A p // allow pl pr at start of word
p (t p:
_) ph (A f
ph (@ f
ph (K f
_) ps (i s
_) ps (eudo s
_) pt (ero t
_) pt (ol t
.group q
q k
qu (Y k // que, qui
_) qw (A kw // qwerty
.group r
r r
r (_ r
r (t r
A) r (A r
C) r (A r
_) r (A R2
l) r (A R2
m) r (A R2
n) r (A R2
s) r (A R2
rr R2
.group s
s s
&) s (_S1 s
_) s (K@ s
ss s:
_) sh (A S
_) sh (L01A S
sh (K S
?!1 sc (Y s // sce sci for non castilian accent
.group t
t t
_) t (L01A t // all tr at start of word
_) th (@ t
th (K t
_) tx (A tS
tx tS
.group u
u u
u (u u
u (A w
!?3 l) u (A %u
!?3 r) u (A %u
g) u (e
g) u (i
g) u (é
g) u (í
.group v
v b
_) v ($unpr b // phoneme definition may change it to [B]
_) v (L01A b // Only bl, br are allowed at start of word
_) v (A b
v (A B
v (cY B
v (L03 B
m) v b
n) v b
v (iA b
v (uA b
.group w
w w
_) wh (A w
.group x
x ks
_) x ($unpr s // ?
?!1 xc (Y ks // xce xci for non castilian accent
me) x (ic x // mexicano, mexicana, etc.
.group y
y i
_) y ($unpr J
_m) y (A j
_l) y (A j
y (A j:
_) y (A J^
u) y (K j:
n_) y (A dZ
y (_ i
.group z
z T
zz ts
.group
á ''a
é ''E
í ''i
ó ''O
ú ''u
ü u
ñ n^
$ d'Olar
_) - (_D m'EnOs
A_) - (_D _
C_) - (_D _
, (D kOma

+ 199811
- 0
dictsource/extra/ru_listx
File diff suppressed because it is too large
View File


+ 57669
- 0
dictsource/extra/zh_listx
File diff suppressed because it is too large
View File


+ 33760
- 0
dictsource/extra/zhy_list
File diff suppressed because it is too large
View File


+ 3969
- 52
dictsource/fa_list
File diff suppressed because it is too large
View File


+ 258
- 40
dictsource/fa_rules View File

// * Farsi Language fa (or Parsi or Persian) fa_rules Version 3.0
// * Farsi Language fa (or Parsi or Persian) fa_rules Version 3.0
// * This file writen by Shadyar Khodayari 2013
// * Farsi Language fa (or Parsi or Persian) fa_rules Version 3.1
// * This file writen by Shadyar Khodayari 11-14-2013
//********* //*********
// * This program is free software; you can redistribute it and/or modify * // * This program is free software; you can redistribute it and/or modify *
// * it under the terms of the GNU General Public License as published by * // * it under the terms of the GNU General Public License as published by *
// replacing unknown characters and Arabic numbers with Farsi characters and Latin numbers // replacing unknown characters and Arabic numbers with Farsi characters and Latin numbers
.replace .replace
٪ % ٪ %
ي ی
ۍ ی
ى ی
ك ک
ە ه
ھ ه
ٔ ٴ
ي ی // this is "ي" Shift + x on the Persian Keyboard ("ye Arabi") that has been replaced with "ی" Standard for some programing reasones.
٠ 0 ٠ 0
۰ 0 ۰ 0
۱ 1 ۱ 1
۸ 8 ۸ 8
٩ 9 ٩ 9
۹ 9 ۹ 9
ﺁ آ
ﺍ ا
ﺎ ا
ﺄ أ
ﺏ ب
ﺐ ب
ﺑ ب
ﺒ ب
ﭖ پ
ﭗ پ
ﭘ پ
ﭙ پ
ﺕ ت
ﺖ ت
ﺗ ت
ﺘ ت
ﺚ ث
ﺛ ث
ﺜ ث
ﺝ ج
ﺞ ج
ﺠ ج
ﺟ ج
ﭻ چ
ﭼ چ
ﭽ چ
ﺢ ح
ﺣ ح
ﺤ ح
ﺥ خ
ﺦ خ
ﺧ خ
ﺨ خ
ﺩ د
ﺪ د
ﺫ ذ
ﺬ ذ
ﺭ ر
ﺮ ر
ﺯ ز
ﺰ ز
ﮊ ژ
ﺱ س
ﺲ س
ﺳ س
ﺴ س
ﺵ ش
ﺶ ش
ﺷ ش
ﺸ ش
ﺹ ص
ﺺ ص
ﺻ ص
ﺼ ص
ﺽ ض
ﺿ ض
ﻀ ض
ﻁ ط
ﻂ ط
ﻃ ط
ﻄ ط
ﻇ ظ
ﻈ ظ
ﻉ ع
ﻊ ع
ﻋ ع
ﻌ ع
ﻍ غ
ﻎ غ
ﻏ غ
ﻐ غ
ﻑ ف
ﻒ ف
ﻓ ف
ﻔ ف
ﻕ ق
ﻖ ق
ﻗ ق
ﻘ ق
ك ک
ﮎ ک
ﮏ ک
ﮐ ک
ﮑ ک
ﻛ ک
ﮒ گ
ﮓ گ
ﮔ گ
ﮕ گ
ﻝ ل
ﻞ ل
ﻟ ل
ﻠ ل
ﻡ م
ﻢ م
ﻣ م
ﻤ م
ﻥ ن
ﻦ ن
ﻧ ن
ﻨ ن
ﻭ و
ﻮ و
ھ ه
ە ه
ﻩ ه
ﻪ ه
ﻫ ه
ﻬ ه
ى ی
ۍ ی
ﯼ ی
ﯽ ی
ﯾ ی
ﯿ ی
ﻰ ی
ﻱ ی
ﻲ ی
ﻳ ی
ﻴ ی
ﻻ لا
ﻼ لا
ﺔ ة
ﺋ ئ
ﺌ ئ
ﺀ ء




// (ZWNJ) U+200c character (half space) is recognized as Hyphen and this simbole "-" have been definded for this character in the rules. // (ZWNJ) U+200c character (half space) is recognized as Hyphen and this simbole "-" have been definded for this character in the rules.
// (ZWNJ) U+200c character (half space) is recognized as Hyphen and this simbole "-" has been definded for this character in the rules. // (ZWNJ) U+200c character (half space) is recognized as Hyphen and this simbole "-" has been definded for this character in the rules.




.group +
__) + (_D mosbate-


.group -
__) - (_D manfije-


.group آ .group آ
_) آN 'A: _) آN 'A:
آ 'A آ 'A
L09L09) آموخته (_Sm6 Amuxte: L09L09) آموخته (_Sm6 Amuxte:
L09L09) آموختۀ (_Sm6 Amuxteje L09L09) آموختۀ (_Sm6 Amuxteje
L09L09) آگاه (_Sm4 AgAh L09L09) آگاه (_Sm4 AgAh
L09L09)آلات (_Sm4 AlAt




.group ا .group ا
اً an اً an
اٍ en اٍ en
اٌ on اٌ on
ا (ٓ A


// Prefixes ا // Prefixes ا
_) ال (L09L09L09P2@ al _) ال (L09L09L09P2@ al
l09l09l03) انیدید (_NSm6 Anidid l09l09l03) انیدید (_NSm6 Anidid
l09l09l03) انیدند (_NSm6 Anidand l09l09l03) انیدند (_NSm6 Anidand
l09l09l03) انیدن (_NSm5 Anidan l09l09l03) انیدن (_NSm5 Anidan
L09L04) افرین (_Sm5 AfaRin
L09L04) الدین (_Sm5 oddin L09L04) الدین (_Sm5 oddin
L09L04) الدّین (_Sm6 oddin L09L04) الدّین (_Sm6 oddin
L09L04) الدوله (_Sm6 oddole:
L09L04) الدّوله (_Sm7 oddole:
L09L04) الدولۀ (_Sm6 oddoleje
L09L04) الدّولۀ (_Sm7 oddoleje
L09L04) الملک (_Sm5 olmolk
L09L04) الملوک (_Sm6 olmoluk
L09L04) الحکما (_Sm6 olhokamA
L09L04) الممالک (_Sm7 olmamAlek
L09L04) السلطنه (_Sm7 ossaltane:
L09L04) السّلطنه (_Sm8 ossaltane:
L09L04) السلطنۀ (_Sm7 ossaltaneje
L09L04) السّلطنۀ (_Sm8 ossaltaneje
L09L04) السادات (_Sm7 ossAdAt
L09L04) السّادات (_Sm8 ossAdAt


// arabic form of words (Babs) ا // arabic form of words (Babs) ا
//استفعال eg. استخراج (Fa eSpeak read itd correctly) //استفعال eg. استخراج (Fa eSpeak read itd correctly)
_) ب (وL02L09P1@ be _) ب (وL02L09P1@ be
_) بر (L04L09L09P2@ baR _) بر (L04L09L09P2@ baR
_) بر (آL09L09P2@ baR _) بر (آL09L09P2@ baR
_) برمی (L04L09L09P4@ baRmi
_) برمی (آL09L09P4@ baRmi
_) برنمی (L04L09L09P5@ baRnemi
_) برنمی (آL09L09P5@ baRnemi
_) به (L04L09L09P2@ beh _) به (L04L09L09P2@ beh
_) به (آL09L09P2@ beh _) به (آL09L09P2@ beh
_) بد (آL09L09P2@ bad\ _) بد (آL09L09P2@ bad\
_) بلا (آL09L09P3@ belA _) بلا (آL09L09P3@ belA
_) بزرگ (L04L09L09P4@ bozoRg _) بزرگ (L04L09L09P4@ bozoRg
_) بزرگ (آL09L09P4@ bozoRg _) بزرگ (آL09L09P4@ bozoRg
_) بنفش (آL09L09P4@ banafS
_) بنفش (L04L09L09P4@ banafS


// suffixes ب // suffixes ب
L09L09) بخش (_Sm3 baxS L09L09) بخش (_Sm3 baxS
L09L09) بندهاتون (_NSm8 bandhAtun L09L09) بندهاتون (_NSm8 bandhAtun
L09L09) بندهایشان (_NSm9 bandhAjeSAn L09L09) بندهایشان (_NSm9 bandhAjeSAn
L09L09) بندهاشون (_NSm8 bandhASun L09L09) بندهاشون (_NSm8 bandhASun
L09L09) بار (_Sm3 bAR
L09L09) باز (_Sm3 bAz L09L09) باز (_Sm3 bAz
L09L09) بست (_Sm3 bast L09L09) بست (_Sm3 bast
L09L09) بان (_Sm3 bAn L09L09) بان (_Sm3 bAn
L09L09) باش (_Sm3 bAS L09L09) باش (_Sm3 bAS
L09L09) بزرگ (_Sm4 bozoRg L09L09) بزرگ (_Sm4 bozoRg
L09L09) باور (_Sm4 bAvaR L09L09) باور (_Sm4 bAvaR
L09L09) برانگیز (_Sm baRangiz
L09L09) برانگیز (_Sm7 baRangiz
L09L09) باف (_Sm3 bAf
L09L09) بافت (_Sm4 bAft
L09L09) بلند (_Sm4 boland


// arabic form of words (Babs) ب // arabic form of words (Babs) ب
//فواعل eg. جوامع //فواعل eg. جوامع
L09L09) پندار (_Sm5 pendAR L09L09) پندار (_Sm5 pendAR
L09L09) پرست (_Sm4 paRast L09L09) پرست (_Sm4 paRast
L09L09) پناه (_Sm4 panAh L09L09) پناه (_Sm4 panAh
L09L09) پسند (_Sm4 pasand


// arabic form of words (Babs) پ // arabic form of words (Babs) پ
//فواعل eg. جوامع //فواعل eg. جوامع
L09L09) خیز (_Sm3 xiz L09L09) خیز (_Sm3 xiz
L09L09) خواست (_Sm5 xAst L09L09) خواست (_Sm5 xAst
L09L09) خواب (_Sm4 xAb L09L09) خواب (_Sm4 xAb
L09L09) خواند (_Sm5 xAnd
L09L09) خورد (_Sm4 xoRd
L09L09) خوردگی (_Sm6 xoRdegi


// arabic form of words (Babs) خ // arabic form of words (Babs) خ
//فواعل eg. جوامع //فواعل eg. جوامع
_) دست (آL09L09P3@ dast _) دست (آL09L09P3@ dast
_) درست (L04L09L09P4@ dorost _) درست (L04L09L09P4@ dorost
_) درست (آL09L09P4@ dorost _) درست (آL09L09P4@ dorost
_) دراز (L04L09L09P4@ deRAz
_) دراز (آL09L09P4@ deRAz
_) درال (L04L09L09P4@ dARol
_) درال (تL09L09+P4@ dARo_'
_) درال (دL09L09+P4@ dARo_'
_) درال (آL09L09P4@ dARol


// suffixes د // suffixes د
L09L09) داد (_Sm3 dAd L09L09) داد (_Sm3 dAd
L09L09) دوش (_Sm3 duS L09L09) دوش (_Sm3 duS
L09L09) دهی (_Sm3 dehi L09L09) دهی (_Sm3 dehi
L09L09) دوست (_Sm4 dust L09L09) دوست (_Sm4 dust
L09L09) دوز (_Sm3 duz
L09L09) دخت (_Sm3 doxt


// arabic form of words (Babs) د // arabic form of words (Babs) د
//فواعل eg. جوامع //فواعل eg. جوامع
// Prefixes ذ // Prefixes ذ
_) ذی (L04L09L09P2@ zi _) ذی (L04L09L09P2@ zi
_) ذی (آL09L09P2@ zi _) ذی (آL09L09P2@ zi
_) ذوال (L04L09L09P4@ zol
_) ذوال (آL09L09P4@ zol


// Suffixes ذ // Suffixes ذ
// Prefixes ر // Prefixes ر
_) رضا (L04L09L09P3@ RezA _) رضا (L04L09L09P3@ RezA
_) رضا (آL09L09P3@ RezA _) رضا (آL09L09P3@ RezA
_) ریز (L04L09L09P2@ Riz
_) ریز (L04L09L09P3@ Riz
_) ریز (آL09L09P3@ Riz _) ریز (آL09L09P3@ Riz
_) راست (L04L09L09P4@ RAst: _) راست (L04L09L09P4@ RAst:
_) راست (آL09L09P4@ RAst _) راست (آL09L09P4@ RAst
_) رنگ (L04L09L09P3@ Rang
_) رنگ (آL09L09P3@ Rang


// suffixes ر // suffixes ر
//L09L09L09) ران (_Sm3 RAn //L09L09L09) ران (_Sm3 RAn
_) زود (L04L09L09P3@ zud _) زود (L04L09L09P3@ zud
_) زود (آL09L09P3@ zud _) زود (آL09L09P3@ zud
_) زیر (آL09L09P3@ ziR _) زیر (آL09L09P3@ ziR
_) زرد (L04L09L09P3@ zaRd
_) زرد (آL09L09P3@ zaRd


// suffixes ز // suffixes ز
L09L09) زاد (_Sm3 zAd L09L09) زاد (_Sm3 zAd
س (ـــL02 s س (ـــL02 s
س (ـــL03 sa س (ـــL03 sa
س (ــ sa س (ــ sa
_) ست (_ set // eg. "این سِتِ جواهر"
// Consonants Analyzer // Consonants Analyzer
// Right to left characters Analyzer // Right to left characters Analyzer
// Analyzing 2nd Consonant of 3 Consonants // Analyzing 2nd Consonant of 3 Consonants
_) سوء (L09L09P3@ su?e _) سوء (L09L09P3@ su?e
_) سانتی (L04L09L09P5@ sAnti _) سانتی (L04L09L09P5@ sAnti
_) سانتی (آL09L09P5@ sAnti _) سانتی (آL09L09P5@ sAnti
_) سید (L09P3@ sej:ed:
_) سید (آL09L09P3@ sej:ed
_) سید (L04L09L09P3@ sejjed
_) سید (آL09L09P3@ sejjed
_) سیّد (L04L09L09P4@ sejjed
_) سیّد (آL09L09P4@ sejjed
_) سپید (L04L09L09P4@ sepid
_) سپید (آL09L09P4@ sepid
_) سفید (L04L09L09P4@ sefid
_) سفید (آL09L09P4@ sefid
_) سپید (آL09L09P4@ sepid
_) سبز (L04L09L09P3@ sabz
_) سبز (آL09L09P3@ sabz
_) سنگ (L04L09L09P3@ sang
_) سنگ (آL09L09P3@ sang


// suffixes س // suffixes س
L09L01) ست (_+NSm2 st
L09L03) ست (_+NSm2 ast
-) ست (_+NSm2 st // eg. "کجا‌ست"
L09L01) ست (_++NSm2 st
L09L03) ست (_++NSm2 ast
L01-) ست (_+NSm2 st // eg. "کجا‌ست"
L02-) ست (_+NSm2 ast
L03-) ست (_+NSm2 ast // eg. "میز‌ست"
L09L03) ستان (_Sm4 estAn L09L03) ستان (_Sm4 estAn
L09L01) ستان (_Sm4 stAn L09L01) ستان (_Sm4 stAn
L09L09) سان (_Sm3 sAn L09L09) سان (_Sm3 sAn
L09L09) سوار (_Sm4 savAR L09L09) سوار (_Sm4 savAR
L09L09) سال (_Sm3 sAl L09L09) سال (_Sm3 sAl
L09L09) سالار (_Sm5 sAlAR L09L09) سالار (_Sm5 sAlAR
L09L09) سرشت (_Sm4 seReSt
L09L09) ستیز (_Sm4 setiz


// arabic form of words (Babs) س // arabic form of words (Babs) س
//فواعل eg. جوامع //فواعل eg. جوامع
_) شاد (آL09L09P3@ S'Ad _) شاد (آL09L09P3@ S'Ad
_) شاه (L04L09L09P3@ S'Ah _) شاه (L04L09L09P3@ S'Ah
_) شاه (آL09L09P3@ S'Ah _) شاه (آL09L09P3@ S'Ah
_) شیر (L04L09L09P3@ SiR-
_) شیر (آL09L09P3@ SiR-


// suffixes ش // suffixes ش
L09L09) شناس (_Sm4 SenAs L09L09) شناس (_Sm4 SenAs
_) صدر (آL09L09P5@ sadr _) صدر (آL09L09P5@ sadr


// Suffixes ص // Suffixes ص
L09L09) صد (_Sm2 sad
// L09L09) صد (_Sm2 sad
L09L09) صفت (_Sm3 sefat


// arabic form of words (Babs) ص // arabic form of words (Babs) ص
//فواعل eg. جوامع //فواعل eg. جوامع
L09L09) فریب (_Sm4 faRib L09L09) فریب (_Sm4 faRib
L09L09) فرما (_Sm4 faRmA L09L09) فرما (_Sm4 faRmA
L09L09) فرسا (_Sm4 faRsA L09L09) فرسا (_Sm4 faRsA
L09L09) فرنگی (_Sm5 faRangi


// arabic form of words (Babs) ف // arabic form of words (Babs) ف
//فواعل eg. جوامع //فواعل eg. جوامع
// Prefixes ق // Prefixes ق
_) قابل (L04L09L09P4@ q1'Abele _) قابل (L04L09L09P4@ q1'Abele
_) قابل (آL09L09P4@ q1'Abele _) قابل (آL09L09P4@ q1'Abele
_) قرمز (L04L09L09P4@ q1eRmez
_) قرمز (آL09L09P4@ q1eRmez


// suffixes ق // suffixes ق
L09L09) کنندۀ (_Sm5 konandeje L09L09) کنندۀ (_Sm5 konandeje
L09L09) کنندگان (_Sm7 konandegAn L09L09) کنندگان (_Sm7 konandegAn
L09L09) کوچک (_Sm4 kutSak L09L09) کوچک (_Sm4 kutSak
L09L09) کلام (_Sm4 kalAm
L09L09) کرد (_Sm3 kaRd


// arabic form of words (Babs) ک // arabic form of words (Babs) ک
//فواعل eg. جوامع //فواعل eg. جوامع
L09L01) گانمان (_Sm6 gAnemAn L09L01) گانمان (_Sm6 gAnemAn
L09L01) گانتان (_Sm6 gAnetAn L09L01) گانتان (_Sm6 gAnetAn
L09L01) گانشان (_Sm6 gAneSAn L09L01) گانشان (_Sm6 gAneSAn
L09L01) گانه (_Sm4 g'Ane:
L09L01) گانۀ (_Sm4 g'Aneje
L09L03) گانه (_Sm4 eg'Ane:
L09L03) گانۀ (_Sm4 eg'Aneje
L09L09) گانه (_Sm4 g'Ane:
L09L09) گانۀ (_Sm4 g'Aneje
L09L09) گون (_Sm3 gun L09L09) گون (_Sm3 gun
L09L09) گونه (_Sm4 gune: L09L09) گونه (_Sm4 gune:
L09L09) گاه (_Sm3 g'Ah L09L09) گاه (_Sm3 g'Ah
L09L09) گشا (_Sm3 goSA L09L09) گشا (_Sm3 goSA
L09L09) گریز (_Sm4 goRiz L09L09) گریز (_Sm4 goRiz
L09L09) گسار (_Sm4 gosAR L09L09) گسار (_Sm4 gosAR
L09L09) گراف (_Sm4 geRAf
L09L09) گزین (_Sm4 gozin


// arabic form of words (Babs) گ // arabic form of words (Babs) گ
//فواعل eg. جوامع //فواعل eg. جوامع
_) مصطفی (L04L09L09P5@ mostafA _) مصطفی (L04L09L09P5@ mostafA
_) میلی (L04L09L09P4@ mili _) میلی (L04L09L09P4@ mili
_) میلی (آL09L09P4@ mili _) میلی (آL09L09P4@ mili
_) ماه (L04L09L09P3@ mAh
_) ماه (L03L09L09P3@ mAh
_) ماه(آL09L09P3@ mAh _) ماه(آL09L09P3@ mAh
_) مگا (L04L09L09P3@ megA _) مگا (L04L09L09P3@ megA
_) مگا(آL09L09P3@ megA _) مگا(آL09L09P3@ megA
_) مولتی (L04L09L09P5@ multi _) مولتی (L04L09L09P5@ multi
_) مولتی(آL09L09P5@ multi _) مولتی(آL09L09P5@ multi
_) مایکرو (L04L09L09P6@ mAjkRo
_) مایکرو (آL09L09P6@ mAjkRo
_) میکرو (L04L09L09P5@ mikRo
_) میکرو (آL09L09P5@ mikRo
_) ماکرو (L04L09L09P5@ mAkRo
_) ماکرو (آL09L09P5@ mAkRo


// suffixes م // suffixes م
L09L09) ماه (_Sm3 mAh L09L09) ماه (_Sm3 mAh
L09L09) مردان (_Sm5 maRdAn L09L09) مردان (_Sm5 maRdAn
L09L09) منش (_Sm3 maneS L09L09) منش (_Sm3 maneS
L09L09) مآب (_Sm3 maAb L09L09) مآب (_Sm3 maAb
L09L09) مقام (_Sm4 maq1Am
L09L09) مرغ (_Sm3 moRq1


// arabic form of words (Babs) م // arabic form of words (Babs) م
//فواعل eg. جوامع //فواعل eg. جوامع
_) نو (آL09L09P2@ no' _) نو (آL09L09P2@ no'
_) نیم (L04L09L09P3@ nim _) نیم (L04L09L09P3@ nim
_) نیم (آL09L09P3@ nim _) نیم (آL09L09P3@ nim
_) نیکو (L04L09L09P4@ niku
_) نیکو (آL09L09P4@ niku


// suffixes ن // suffixes ن
L09L09L03) ن (_NSm1 an L09L09L03) ن (_NSm1 an
L09L09) نشین (_Sm4 neSin L09L09) نشین (_Sm4 neSin
L09L09) نکردن (_Sm5 nakaRdan L09L09) نکردن (_Sm5 nakaRdan
L09L09L09) نشدن (_Sm4 naSodan L09L09L09) نشدن (_Sm4 naSodan
L09L09L09) نشانده (_Sm6 neSAnde:
L09L09L09) نشاندۀ (_Sm6 neSAndeje


// arabic form of words (Babs) ن // arabic form of words (Babs) ن
//فواعل eg. جوامع //فواعل eg. جوامع
//و in first of words //و in first of words
_) و (L03 va _) و (L03 va
_) و (L01 v _) و (L01 v
// و preceded by another latter
// و preceded by another letter
_ا) و (L03 u: _ا) و (L03 u:
_ا) و (یا u: _ا) و (یا u:
_ا) و (یو u: _ا) و (یو u:
_ا) و (ا av
_ا) و (یL03 av
_ا) و (یی av
_ا) و (ا v
_ا) و (یL03 v
_ا) و (یی v
_ای) و (L01 v _ای) و (L01 v
_ای) و (L03 va _ای) و (L03 va
_ی) و (L01 v _ی) و (L01 v
L03) و (ا v L03) و (ا v
L03) و (یL03 v L03) و (یL03 v
L03) و (یL01 u L03) و (یL01 u
_L03) و (آ av
//otherwise //otherwise
L09ا) و (ا v L09ا) و (ا v
L09ا) و (آ v L09ا) و (آ v
_و) و u
L09ا) و (و_ v L09ا) و (و_ v
او) و (_ v او) و (_ v
L09او) و (_ u L09او) و (_ u
_آ) و (L03_ va _آ) و (L03_ va


// Prefixes و // Prefixes و
_) والا (L04L09P4@ vAlA
_) والا (آL09P4@ vAlA

// Suffixes و // Suffixes و
L09L01) ور (_NSm2 vaR L09L01) ور (_NSm2 vaR
L09L09) وند (_Sm3 vand L09L09) وند (_Sm3 vand
L02) ی j L02) ی j
L09و) ی (L03 i L09و) ی (L03 i
L09و) ی (L01 j L09و) ی (L01 j
L09و) ی (و_+ ej
L09و) ی (وL09+ i
L09ا) ی (L03 j L09ا) ی (L03 j
L09ا) ی (L01 j L09ا) ی (L01 j
L03) ی (وL03 ij L03) ی (وL03 ij
// Prefixes ی // Prefixes ی
_) یک (L04L09L09P2@ jek _) یک (L04L09L09P2@ jek
_) یک (آL09L09P2@ jek _) یک (آL09L09P2@ jek
_) یاد (L09L09P3@ jAd
_) یاد (L04L09L09P3@ jAd
_) یاد (آL09L09P3@ jAd _) یاد (آL09L09P3@ jAd


// suffixes ی // suffixes ی
//this character "ٔ" is defrent of "ء" and "ۀ" for example "دانشنامهٔ " //this character "ٔ" is defrent of "ء" and "ۀ" for example "دانشنامهٔ "




.group ٔ
L04) ٔ
ا) ٔ a?
ٔ
.group ٴ
L04) ٴ
ا) ٴ a?
ٴ


// suffixes ٔ
L09L03) ٔ (_NSm1 je
// suffixes ٴ
L09L03) ٴ (_NSm1 je




.group ّ .group ّ
ّ (L02 taSdid
L02) ّ taSdid L02) ّ taSdid








.group ٰ .group ٰ
ٰ (L04 A
ٰ (ا
ٰ (آ
ٰ A


.group ٓ
ٓ




//short vowels that are not usually written: //short vowels that are not usually written:


.group أ .group أ
أ a? أ a?
أ (َ




.group إ .group إ
إ e? إ e?
إ (ِ




.group ـ .group ـ




.group ، .group ،
، _




.group ؛ .group ؛

+ 136
- 0
dictsource/gd_list View File

// Letter names (temporary English names)
_a eI
b bi: $atend
c si:
d di: $atend
_e i:
f Ef
g dZi: $atend
h eItS $atend
_i aI
j dZeI
k keI
l El
m Em $atend
n En $atend
_o o:
p pi:
q kju:
r aR
_s Es
t ti: $atend
_u ju:
v vi:
w d'O#b@lju:
x Eks
y waI
z zEd

_à $accent
_á $accent
_è $accent
_é $accent
_ì $accent
_ò $accent
_ó $accent
_ù $accent

_acu akj'u:t
_grv 'aksEnt



// Numbers

_0 n'OnI
_1 'u-:n
_2 Q'a
_3 t*;'i
_4 k;'ehI*;
_5 k'O:g;
_6 S'i@
_7 S'Exg
_8 'Oxg
_9 n['u-I
_10 d;'eC
_11 'u-:nd;,iag
_12 Q'aQ,iag
_13 t*;'id;,iag
_14 k;'ehI*;d;,iag
_15 k'O:g;d;,iag
_16 S'i@d;,iag
_17 S'Exgd;,iag
_18 'Oxgd;,iag
_19 n['u-Id;,iag

_20 f'iC@d
_30 t*;'iC@d
_40 k;'Eh*@d
_50 k'O:g;@d
_60 S'esg@d
_70 S'Exg@d
_80 'Oxg@d
_90 n['u-:xg@d

_2X f'iC@ds@h#
_3X t*;'iC@ds@h#
_4X k;'Eh*@ds@h#
_5X k'O:g;@ds@h#
_6X S'esg@ds@h#
_7X S'Exg@ds@h#
_8X 'Oxg@ds@h#
_9X n['u-:xg@ds@h#

_0C k;'iad
_0M1 m'il@
_0M2 m'il^@n

_dpt _st'adf'u-n^u-g; // ?? full-stop


// Unstressed words

// articles
a $u+
an $u+
am $u+
na $u+
nan $u+
nam $u+

gun $u+
gu $u+
gum $u+
gur $u+

// personal pronouns
mi $u+
thu $u+
tu $u+
e E: $u+
i i: $u+
sinn $u+
sibh $u+
iad $u+

// possessive adjectives

mo m@
do d@
ar $u
ur $u

// prepositions
á a2 $u+
ag $u+
gu $u+
sa $u+
san $u+

// verbs
bu b@


// Pronunciation exceptions
// $alt1 silent ending (-bh, -gh)

+ 410
- 0
dictsource/gd_rules View File


// Based on:
// http://en.wikipedia.org/wiki/Scottish_Gaelic_orthography

// front vowels
.L01 e è é i ì

// back vowels
.L02 a à á o ò ó u ù

// slender consonant followed by a back vowel
.L03 eall eann earr earn eadh eahg eo eò ioll ionn iu iù

.L04 b bh g gh m mh
.L05 ll m nn

.L06 l n r // cause epenthetic vowel
.L07 l r s ch // epenthetic after 'm'


// NOTES:
// Use phoneme [#] for possible preaspiration
// Use phoneme [&] for epenthetic vowel

.group a
a a
a (dh_ o-
a (dhA o-
a (gh_ o-
a (ghA o-
a (L05K aU
a (rrK a:
a (rd a:
a (rn a:
a (g_ a2 // don't reduce to [@]
ai (l_ a2
@) ai I

ai a
ai (L05K aI
ai (mL07 E // ? aimsir
ai (bhC aI
ai (mhC aI
ai (rrK a:
ai (rd a:
ai (rn a:

ao u-:
aoi u-I
abh (C a_|u
amh (C a_|u
adh (C o-:
agh (C o-:
aidh (C a_|i
aigh (C o-_|i
.group à
à a:
ài a: // or E: ??
.group á
á a:
ái a:


.group e
e e

@) ea (g_ a2 // unstressed
@) ea @

ea E
ea (dh_ o-
ea (gh_ o-
ea (d e
ea (g e
ea (s e
ea (llK aU
ea (nnK aU
ea (rrK a:
ea (rn a:
_) ea (llA ja
_) ea (nnA ja
_) ea (rrA ja
ea (llA a
ea (nnA a
ea (rrA a
eagh (C o-: // ?? or O:
eamh (C E_|u
ei e
@) ei I // unstressed
ei (L05K eI
eo O
_) eò jO:
_) eòi jO:
eò O:
eòi O:
eu ia
eu (m e:

.group è
è E: // or e:
èi E: // or e:
èa ia
.group é
é e:
éi e:
.group i
i i
i (L05K i:
i (mL07 i
i (mh i
ia i@ // or ia
io i
_) io (llK ju
_) io (nnK ju
io (llK u:
io (nnK u:
iodh (C i_|@
iogh (C i_|@
_) iu ju
iu u
iu (rr u:
iu (rs u:
iù u:
iùi u:
.group ì
ì i:
ìo i@

.group o
o O
o (L04 o
o (L05K OU
o (mh o
o (rrK O:
o (rd O:
o (rn O:
ogh (C o:
oibh (C o-_i
oigh (C o-_i
oimh (C O_i
oi o- // or O
oi (L04 o
oi (mh o
oi (L05K @I
.group ò
ò O: // or o:
òi O: // or o:
.group ó
ó o:
ói o:

.group u
u u
u (L05K u:
u (rn u:
u (rr u:
u (_ u:

ua u@ // [ua] if followed by m or n ?
uai u@
ui u
ui (m u-
ui (n u-
ui (s u-
ui (dh u-I
ui (L05K u-I
ui (L05 u-
uimh (C u_|i
.group ù
ù u:
ùi u:

.group b
b b
b (L03 bj // try b;
L06) b &b // insert epenthetic vowel
L06) b (L03 &bj

.group bh
bh v
bh (_ v
bh (_+$w_alt1 // null
bh (L03 vj
// bh sometimes null between vowels or word-final
L06) bh &v
L06) bh (_ &v
L06) bh (L03 &vj
.group c
c k
A) c (L02 #k
A) c (_ #g
C) c (_ g

c (L01 k;
A) c (L01 #k;
L01) c (_ #g;
L01C) c (_ g;


ch x
L01) ch C
ch (L01 C
chd #g

L06) ch &x
L01L06) ch &C
L06) ch (L01 &C
cn kR

.group d
d d
L01) d d;
d (L01 d;
dh Q
A) dh (L02 Q // or null
dh (L01 J^
L01) dh J^
A) dh (L01
ai) dh (_
éi) dh (_

.group f
f f
f (L03 fj
fh

.group g
g g
L01) g g;
g (L01 g;
L06) g &g
L01L06) g &g;
L06) g (L01 &g;

gh Q
gh (_+$w_alt1 // null
A) gh (L02 Q // or null
L01) gh J^
gh (L01 J^
A) gh (L01
L06) gh &Q
L01L06) gh &J^
L06) gh (L01 &J^

gn gR


.group h
h h


.group j
j dZ

.group k
k k

.group l
l L
L01) l l
l (L01 l
_) l (L01 l^
ll L
L01) ll l^
ll (L01 l^

.group m
m m
m (L03 mj
L06) m &m // epenthetic
L06) m (L03 &mj
m (L07 m&
mh v
mh (L03 vj
// mh between vowels sometimes null
L06) mh &v
L06) mh (L03 &vj

.group n
n n
_) n (L02 n[

L02L01) n n^ // slender after a back vowel
L02L01C) n n^
L02L01CC) n n^

ng Ng
L01) ng ng;
ng (L01 ng;
n (gh n
nn n[
L01) nn (+ n^
nn (L01 n^


.group p
p p
A) p (A #p
A) p (_ #b
C) p (_ b
p (L03 bj
A) p (L03 #bj
ph f
ph (L03 fj


.group q
q kw

.group r
r *
L01) r *;
r (L01 *;
_) r R
rr R
rt (_ *Sd
rd (_ *Sd


.group s
s s
L01) s S
s (L01 S
sh h
sh (L03 hj


.group t
t t
A) t (L02 #t
A) t (_ #d
C) t (_ d
t (L01 t;
A) t (L01 #t;
L01) t (_ #d;
L01C) t (_ d;
L01CC) t (_ d;

th h
th (L03 hj
th (_ // ?
// th between vowels may be null

.group v
v v

.group w
w w

.group x
x ks
_) x z
.group y
y i
y (A j
A) y j

.group z
z z


+ 155
- 120
dictsource/gu_list View File

// This file is written by Him Prasad Gautam (Nepal)
// This gu_rules file is prepared by Maheshinder Singh Khosla< [email protected] >.

// This file is UTF8 encoded // This file is UTF8 encoded


// Numbers // Numbers
// Gujarati numbers are changed to latin characters before translation // Gujarati numbers are changed to latin characters before translation


_0 S'u:nj@-
_1 'e:k
_2 b'e:
_3 tr'@n.V
_4 c'a:r
_5 p'a:n^c
_6 c#'@
_7 s'a:t
_8 'a:,t.#
_9 n'aw
_10 d'@s:
_11 'ag'Ija:r
_12 b'a:r
_13 t'e:r
_14 c'O:d
_15 p'Vnd@r
_16 s'o:d.
_17 s'@t@r
_18 'Vd.#a:r
_19 ,o:gn.'i:s
_20 w'i:s
_21 ,e:kw'i:s
_22 baU'i:s
_23 tre:w'i:s
_24 co:w'i:s
_25 p,@c'i:s
_26 c#@3w'i:s
_27 s,@tjaU'i:s
_28 ,Vt.#jaU'i:s
_29 ,o:[email protected]'i:s
_30 tr'i:s
_31 ,e:k@tr'i:s
_32 b@tr'i:s
_33 te:tr'i:s
_34 co:tr'i:s
_35 pa:ntr'i:s
_36 c#@3tr'i:s
_37 s,a:d.tr'i:s
_38 ,a:d.tr'i:s
_39 ,o:[email protected]:l'i:s
_40 ca:l'i:s
_41 ,e:kta:l'i:s
_42 b,e:ta:l'i:s
_43 t,e:ta:l'Is
_44 c,Uma:l'i:s
_45 p,Ista:l'i:s
_46 c#,e:ta:l'i:s
_47 s,@d.ta:l'i:s
_48 ,Vd.ta:l'i:s
_49 o:g'Vn.,p@c'a:s
_50 p@c'a:s
_51 e:k'aUn
_52 b'aUn
_53 tre:p'Vn
_54 co:p'Vn
_55 p@n^c'aUn
_56 c#@3p:'Vn
_57 s@t'aUn
_58 Vt.#'aUn
_59 ,o:[email protected]:'It.#
_60 sa:'It.#
_61 ,e:k@s'Vt.#
_62 ba:s'Vt.#
_63 tre:s'Vt.#
_64 co:s'Vt.#
_65 pa:s'Vt.#
_66 c#a:s'Vt.#
_67 s,@d.@s'Vt.#
_68 ,Vd.@s'Vt.#
_69 ,o:[email protected]'i:te:r
_70 s'i:te:r
_71 e:k'o:te:r
_72 b'o:te:r
_73 t'o:te:r
_74 cUm'o:te:r
_75 p@n^c'o:te:r
_76 c#'o:te:r
_77 s@t'o:te:r
_78 Vt.#'o:te:r
_79 ,o:g@n.'e:si;
_80 'e:nsi;
_81 ,e:kj'a:si
_82 b'j'a:si
_83 tr@2j'a:si
_84 c,o:*j'a:si
_85 p,@cj'a:si
_86 c#@3j'a:si
_87 s,@tj'a:si;
_88 ,Vt.#j'a:si
_89 n,e:wj'a:si
_90 n'e:wU
_91 e:k'a:n.U
_92 b'a:n.U
_93 tr'a:n.U
_94 co:r'a:n.U
_95 p@n^c'a:n.U
_96 c#'VnnU
_97 s@t'a:n.U
_98 Vt.#'a:n.U
_99 n@w'a:n.U
_0 S'u:nj@-
_1 'e:k
_2 b'e:
_3 tr'@2n.
_4 c'a:r
_5 p'a:n^c
_6 c#'@3
_7 s'a:t
_8 'a:t.#
_9 n'Vu
?3 _9 n'aU

_10 d'Vs
_11 ,VgIj'a:r
_12 b'a:r
_13 t'e:r
_14 c'O:d
_15 p@nd'Vr
_16 s'o:r.
_17 s@tt'Vr
_18 Vd.#'@r
_19 ,o:gn.'i:s

_20 w'i:s
_21 ,e:kv'i:s
_22 b'a:w'i:s
_23 te:v'i:s
_24 co:v'i:s
_25 p@cc'i:s
_26 c#@3v'i:s
_27 s,@t:e:a:v'i:s
_28 ,Vt.#:e:a:v'i:s
_29 ,o:[email protected]'i:s
_30 tr'i:s

_31 ,e:k@t:r'i:s
_32 b,@t:r'i:s
_33 t'e:tr'i:s
_34 c'o~tr'i:s
_35 p'V~tr'i:s
_36 c#@3tr'i:s
_37 s,a:r.atr'i:s
_38 ,a:r.atr'i:s
_39 ,o:[email protected]:l'i:s

_40 ca:l'i:s
_41 ,e:kta:l'i:s
_42 b,e:ta:l'i:s
_43 t,e:ta:l'i:s
_44 c,u~ma:l'i:s
_45 p,Ista:l'i:s
_46 c#,e:ta:l'i:s
_47 s,ur.ta:l'i:s
_48 ,Vr.ta:l'i:s
_49 ,o:g@n.,@pc'a:s

_50 p@c'a:s
_51 e:k'aUn
_52 b'aUn
_53 tre:p'Vn
_54 co:p'Vn
_55 p@n^c'aUn
_56 c#@3p:'Vn
_57 s@t:'aUn
_58 Vt.#:'aUn
_59 ,o:[email protected]:'i~t.#

_60 sa:H'i~t.#
_61 ,e:ks'Vt.#
_62 ba:s'Vt.#
_63 tre:s'Vt.#
_64 co:s'Vt.#
_65 pV~s'Vt.#
_66 c#V~s'Vt.#
_67 s,@r.@s'Vt.#
_68 ,Vr.@s'Vt.#
_69 ,o:[email protected]:'e:*

_70 sIt:'e:*
_71 ,e:ko:t'e:r
_72 bo~t'e:r
_73 to~t'e:r
_74 c,Imo:t'e:r
_75 p,Inco:t'e:r
_76 c#o~t'e:r
_77 s,It:o:t'e:r
_78 ,It.#:o:t'e:r
_79 ,o:gn.ja:'e~:sI

_80 'e~:sI
_81 ,e:kj'a:si
_82 bj'V~si
_83 t:j'V~si
_84 c,urI;'a:si
_85 pInc'a:si
_86 c#e:'V~si
_87 s@t:j'a:si
_88 ,Vt.#j'a:si
_89 nIvj'a:si

_90 n'e:vu~
_91 e:k'a:n.u~
_92 b'a:n.u~
_93 tr'a:n.u~
_94 co:r'a:n.u~
_95 p@nc'a:n.u~
_96 c#'Vnnu~
_97 s@t:'a:n.u~
_98 Vt.#:'a:n.u~
_99 n@vv'a:n.u~


_0C s'o: _0C s'o:
_0M1 h'VJa:r
_0M2 l'a:k#
_0M3 k@r'o:r.V
_0M4 'VrVb
_0M5 k#'VrVb
_dpt p'u:r'n.'a:,Nk
_2C b'Vs'o:
_0M1 h@J,a:r
_0M2 l'a:kh
_0M3 k@ro:r.V
_0M4 Vb'VJ
_0M5 kh'Vr@b
_dpt _d@s@ml'o:_



// Single consonants // Single consonants
ક k@ ક k@
ક઼ q@ ક઼ q@
ખ k#@
ખ kh@
ખ઼ x@ ખ઼ x@
ગ g@ ગ g@
ગ઼ Q@ ગ઼ Q@
ઘ g#@
ઘ gh@
ઙ N@ ઙ N@
ચ c@ ચ c@
છ c#@
છ ch@
જ J@ જ J@
જ઼ z@ જ઼ z@
ઝ J#@
ઝ Jh@
ઞ n^@ ઞ n^@
ટ t.@ ટ t.@
ઠ t.#@ ઠ t.#@
ડ d.@ ડ d.@
ડ઼ r.@
ડ઼ @r.@
ઢ d.#@ ઢ d.#@
ણ n.@ // retroflex n.@
h@n.@ // retroflex n.@
ત t@ ત t@
થ t#@
થ th@
દ d@ દ d@
ધ d#@
ધ dh@
ન n@ ન n@
પ p@ પ p@
ફ p#@
ફ ph@
ફ઼ f@ ફ઼ f@
બ b@ બ b@
ભ b#@
ભ bh@
મ m@ મ m@
ય j@ ય j@
ર r@ ર r@

લ l@ લ l@
ળ l.@ ળ l.@
વ v@ વ v@
સ s@ સ s@
હ H@ હ H@


// combining vowel signs
ા #X2a:
િ #X1I
ી #X2i:
ુ #X1U
ૂ #X2u:
ૃ #X1ru
ૄ #X1ru
ૅ #X1E
ે #X2e:
ૈ #X2aI
?2 ૈ #X2aI
ૉ #X1O
ો #X2o:
ૌ #X2aU
?3 ૌ #X2aU
ૢ #X1l-
ૣ #X2l-:
ૐ #X1o~m




// Punctuation // Punctuation
। p'urn'a,b'ira:m
૱ r'u:p'i:ja:
$ d@l@r
। dVn.d.V
્ H@l'Vnt
$ dOl@r
% pVt'IS@t
+ plVs + plVs
= bVr'a:b@r = bVr'a:b@r
* ta:r'a:Nk@n * ta:r'a:Nk@n




+ 333
- 303
dictsource/gu_rules View File

// This file is developed by Him Prasad Gautam (Nepal)

// Gujarati Language.
// This gu_rules file is prepared by Maheshinder Singh Khosla< [email protected] >.

// This file is UTF8 encoded // This file is UTF8 encoded


// letter groups: // letter groups:
// A vowel letters and vowel signs // A vowel letters and vowel signs
// B vowel signs and virama
// B vowel signs and virama
// C consonants // C consonants
// Y vowel letters and vowel signs // Y vowel letters and vowel signs


// conditional rules
// ?2 use diphthong for "ai"
// ?3 use diphthong for "au"


.replace .replace
૦ 0 ૦ 0
૧ 1 ૧ 1
૯ 9 ૯ 9





// Vowels // Vowels



.group અ .group અ
V
અ (હ E // (h
અહ) અ E
V
અ (હ E // (h
અહ) અ E


.group આ .group આ
આ a:
આ a:
આં V~


.group ઇ .group ઇ
I
ઇઁ i~
ઇં i~
I
// ઇઁ i~
ઇં i~


.group ઈ .group ઈ
i:
ઈ (_ i
i:
ઈ (_ i


.group ઉ .group ઉ
U
U


.group ઊ .group ઊ
u
ઊં (_ u~ // + anusvara
ઊઁ (_ u~ // + candrabinbu
u
ઊં u~ // + anusvara
ઊઁ (_ u~ // + candrabinbu


.group ઋ .group ઋ
ઋ rI
ઋ ru


.group ઌ .group ઌ
ઌ l-ri: // vocalic l
ઌ l- // vocalic l


.group ઍ .group ઍ
ઍ E // candra e
ઍ E // candra e


.group એ .group એ
e:
એઁ e~:
એં (_ e~:
ા) એઁ (_ j
e:
એઁ e~:
એં e~:
ા) એઁ (_ j


.group ઐ .group ઐ
ઐ E: // ?? [aI] [E:] [&:]
ઐં (_ E~
ઐઁ (_ E~
?2 ઐ aI // ?? [aI] [E:] [&:]
ઐ aI // ?? [aI] [E:] [&:]
ઐં aI~
ઐઁ (_ aI~




.group ઑ .group ઑ
ઑ O // candra O
ઑ O // candra O


.group ઓ .group ઓ
ઓ o:
ઓં (_ o~ // +anusvara
ઓઁ (_ o~ // +candrabindu
ા) ઓં (_ w // +anusvara
ા) ઓઁ (_ w

ઓ o:
ઓં o~ // +anusvara
ઓઁ (_ o~ // +candrabindu
ા) ઓં (_ w // +anusvara
ા) ઓઁ (_ w
.group ઔ .group ઔ
ઔ O: // ?? [aU] [O:]
ઔં (_ O~ // +anusvara
ઔઁ (_ O~ // +candrabindu
?3 ઔ aU // ?? [aU] [O:]
ઔ aU // ?? [aU] [O:]
ઔં aU~ // +anusvara
ઔઁ (_ aU~ // +candrabindu




// Vowel Signs // Vowel Signs


.group ા .group ા
ા k'a:n'o
C) ા a:
C) ા (ઁ a~
C) ાઁ (_ a~
C) ાં (_ a~
ા a:
ા (ઁ V~
ાઁ (_ V~
ાં V~
ાવ aU


.group િ .group િ
િ i,c'i:nh'a
C) િ i
C) િઁ i~
C) િં i~
િ I
// િઁ i~
િં i~


.group ી .group ી
ી d'i:rg#@i:,c'i:n'h'a
C) ી i:
C) ી (_ i
C)ી (ઁ i~
C) ીઁ (_ i~
C) ીં (_ i~
ી i:
ી (_ i
ી (ઁ i~
ીઁ (_ i~
ીં i~


.group ુ .group ુ
ુ u,c'i:n'h'a
C) ુ U
C) ુ (ઁ u~
C) ું (_ u~
C) ુઁ (_ u~
ુ u
ુ (ઁ u~
ું u~
ુઁ (_ u~


.group ૂ .group ૂ
ૂ d'i:rg#@u:,c'i:n'h'a
C) ૂ u:
C) ૂ (ઁ u~
C) ૂં (_ u~ // or O~ ??
C) ૂઁ (_ u~
ૂ u:
ૂ (ઁ u~
ૂં u~ // or O~ ??
ૂઁ (_ u~


.group ૃ .group ૃ
ૃ r'I,c'i:n'h'a
C) ૃ rI
ૃ ru


.group ૄ .group ૄ
ૄ d'i:rg#@r'I,c'i:n'h'a
C) ૄ rI
ૄ ru


.group ૅ .group ૅ
ૅ 'e,c'i:n'h'a
C) ૅ E
ૅ E


.group ે .group ે
ે 'e:,c'i:n'h'a
C) ે e:
C) ે (ઁ e~
C) ેં (_ e~:
C) ેઁ (_ e~:
ે e:
ે (ઁ e~
ેં e~:
ેઁ (_ e~:


.group ૈ .group ૈ
ૈ E:,c'i:n'h'a
C) ૈ E: // ?? [aI] [E:] [&:]
C) ૈં E~
C) ૈ (ઁ E~
C) ૈં (_ E~
C) ૈઁ (_ E~
?2 C) ૈ aI // ?? [aI] [E:] [&:]
ૈ aI // ?? [aI] [E:] [&:]
ૈં aI~
ૈ (ઁ aI~
ૈઁ (_ aI~



.group ૉ .group ૉ
ૉ O,c'i:n'h'a
C) ૉ O
ૉ O


.group ો .group ો
ો o:,c'i:n'h'a
C) ો o:
C) ો (ઁ o~
C) ોં (_ o~
C) ોઁ (_ o~
ો o:
ોં o~
ો (ઁ o~
ોઁ (_ o~


.group ૌ .group ૌ
ૌ aU,c'i:n'h'a // [O:] or [aU] ??
C) ૌ O:
C) ૌ (ઁ O~ // [O:] or [aU] ??
C) ૌં (_ O~
C) ૌઁ (_ O~
?3 C) ૌ aU // [O:] or [aU] ??
ૌ aU // [O:] or [aU] ??
ૌ (ઁ aU~ // [O:] or [aU] ??
ૌં aU~
ૌઁ (_ aU~


.group ૢ // vowel sign l
_) ૢ (_ l'ri:,c'i:n'h'a
ૢ l-


.group ૣ // vowel sign ll
_) ૣ (_ d'i:rg#,l'ri:,c'i:n'h'a
ૣ l-:
.group ૢ // vowel sign l
ૢ l-

.group ૣ // vowel sign ll
ૣ l-:


.group ૐ .group ૐ
o~m
o~m


// Consonants // Consonants


.group ક .group ક
kV
ક (B k
ક (્ય k:
ક઼ qV
ક઼ (B q
ક્ક k:V // kk -> k:
ક્ક (B k:
ક્ષ kSV
ક્ષ (B kS
kV
ક (B k
ક (્ય k:
ક઼ qV
ક઼ (B q
ક્ક k:V // kk -> k:
ક્ક (B k:
ક્ષ kSV
ક્ષ (B kS
.group ખ .group ખ
k#V
ખ (B k#
ખ઼ xV
ખ઼ (B x
k#V
ખ (B k#
ખ઼ xV
ખ઼ (B x


.group ગ .group ગ
ગ gV
ગ (B g
ગ઼ QV
ગ઼ (B Q
ગ gV
ગ (B g
ગ઼ QV
ગ઼ (B Q

ગ્ગ g:V // GG -> g:
ગ્ગ (B g:


.group ઘ .group ઘ
ઘ g#V
ઘ (B g#
g#V
ઘ (B g#


.group ઙ .group ઙ
NV
ઙ (B N
્) ઙ (_ N@
NV
ઙ (B N
્) ઙ (_ N@


.group ચ .group ચ
ચ cV
ચ (B c
ચ (્ય c:
ચ cV
ચ (B c
ચ (્ય c:

ચ્ચ c:V // cc -> c:
ચ્ચ (B c:


ચ્છ c#:V // c#c# -> c#:
ચ્છ (B c#:


.group છ .group છ
છ c#V
છ (B c#
છ c#V
છ (B c#

છ્છ c#:V // c#c# -> c#:
છ્છ (B c#:


.group જ .group જ
જ JV
જ (B J
જ઼ zV
જ઼ (B z
જ્ઞ gjV
જ્ઞ (B gj
જ JV
જ (B J
જ઼ zV
જ઼ (B z


.group ઝ
ઝ J#V
ઝ (B J#
જ્જ J:V // JJ -> J:
જ્જ (B J:


જ્ઞ gr.V // ??
જ્ઞ (B gr.


.group ઞ
ઞ n^V
ઞ (B n^
્) ઞ (_ n^@
.group ઝ
ઝ J#V
ઝ (B J#


.group ઞ
ઞ n^V
ઞ (B n^
્) ઞ (_ n^


.group ટ .group ટ
ટ t.V
ટ (B t.
ટ (્ય t.:
ટ્ટ t.:V // t.t. -> t.:
ટ્ટ (B t.:
ટ્ઠ t.#:V // t.t.# -> t.#:
ટ્ઠ (B t.#:
ટ t.V
ટ (B t.
ટ (્ય t.:

ટ્ટ t.:V // t.t. -> t.:
ટ્ટ (B t.:

ટ્ઠ t.#:V // t.t.# -> t.#:
ટ્ઠ (B t.#:


.group ઠ .group ઠ
t.#V
ઠ (B t.#
ઠ્ઠ t.#:V // t.#t.# -> t.#:
ઠ્ઠ (B t.#:
t.#V
ઠ (B t.#
ઠ્ઠ t.#:V // t.#t.# -> t.#:
ઠ્ઠ (B t.#:
.group ડ .group ડ
d.V
ડ (B d.
d.V
ડ (B d.


ડ઼ r.V
ડ઼ (B r.
ડ્ડ d.:V // d. d. -> d.:
ડ્ડ (B d.:

ડ્ઢ d.#:V // d#d# -> d#:
ડ્ઢ (B d.#:

ડ઼ r.V
ડ઼ (B r.


.group ઢ .group ઢ
ઢ d.#V
ઢ (B d.#
ઢ઼ r.hV // nukta (should retroflex flap)
ઢ઼ (B r.h // nukta
ઢ d.#V
ઢ (B d.#

ઢ્ઢ d.#:V // d.#d.# -> d.#:
ઢ્ઢ (B d.#:

ઢ઼ r.hV // nukta (should retroflex flap)
ઢ઼ (B r.h // nukta


.group ણ .group ણ
ણ n.V
ણ (B n.
્) ણ (_ n.@
ણ n.V
ણ (B n.
્) ણ (_ n.@


.group ત .group ત
ત tV
ત (B t
ત (્ય t:
ત tV
ત (B t
ત (્ય t:

ત્ત t:V // tt -> t:
ત્ત (B t:

ત્થ t#:V // t#:t#: -> t#:
ત્થ (B t#:



ત્ત t:V // tt -> t:
ત્ત (B t:
.group થ .group થ
થ t#V
થ (B t#
થ t#V
થ (B t#

થ્થ t#:V // t#t# -> t#:
થ્થ (B t#:


.group દ .group દ
દ dV
દ (B d
દ dV
દ (B d

દ્દ d:V // dd -> d:
દ્દ (B d:

દ્ધ d#:V // d#d# -> d#:
દ્ધ (B d#:


.group ધ .group ધ
ધ d#V
ધ (B d#
d#V
ધ (B d#


.group ન
ન nV
ન (B n
્) ન (_ n@
ર્) ન (_ n // r +virama
ધ્ધ d#:V // d#d# -> d#:
ધ્ધ (B d#:


.group ન
ન nV
ન (B n
્) ન (_ n@
ર્) ન (_ n // r +virama


.group પ .group પ
પ pV
પ (B p
પ (્ય p:
પ્પ p:V // pp -> p:
પ્પ (B p:
પ pV
પ (B p
પ (્ય p:

પ્પ p:V // pp -> p:
પ્પ (B p:


.group ફ .group ફ
p#V
ફ (B p#
ફ઼ fV
ફ઼ (B f
p#V
ફ (B p#
ફ઼ fV
ફ઼ (B f


.group બ .group બ
bV
બ (B b
bV
બ (B b


.group ભ .group ભ
b#V
ભ (B b#
b#V
ભ (B b#


.group મ .group મ
mV
મ (B m
્) મ (_ m@
ર્) મ (_ m // r +virama
ન્) મ (_ m // n +virama
mV
મ (B m
્) મ (_ m@
ર્) મ (_ m // r +virama
ન્) મ (_ m // n +virama


.group ય .group ય
ય jV
ય (B j
C) ય (_ Ej // [Ej] not [@j]
્) ય (_ j@
ય j@
ય (B j
્) ય (_ j@
C) ય (_ Ej // [Ej] not [@j]


.group ર .group ર
rV
ર (B r
ર (_ r
્) ર (_ r@
rV
ર (B r
્) ર (_ r@


.group લ .group લ
lV
લ (B l
્) લ (_ l@
lV
લ (B l
્) લ (_ l@


.group ળ .group ળ
ળ l.V
ળ (B l.
્) ળ (_ l.@

ળ l.V
ળ (B l.
્) ળ (_ l.@


.group વ .group વ
વ wV
વ (B w
_) વ wV
_) વ (B w
_) વ (્ w // +virma
વ (_ w
વ vV
વ (B v
_) વ wV
_) વ (B w
_) વ (્ v // +virma


.group શ .group શ
SV
શ (B S
SV
શ (B S


.group ષ .group ષ
ષ s.V
ષ (B s.
ષ s.V
ષ (B s.


.group સ .group સ
sV
સ (B s
sV
સ (B s


.group હ .group હ
હ HV
હ (B H
હ HV
હ (B H



.group ઼ .group ઼
઼ t.'Vp,k'u:
A) ઼
C) ઼
઼ // nukta, modifies a consonant


.group ઽ // avagraha, lengthens a vowel ??
ઽ 'Vn'un'a:s'i:k
A) ઽ :
C) ઽ :
.group ઽ // avagraha, lengthens a vowel ??
ઽ :


.group ઁ .group ઁ
ઁ 'ard.'a,c'Vndr'a // candrabindu
C) ઁ n
A) ઁ n
ઁ n // candrabindu


.group ં .group ં
ં 'Vn'Uswa:r
A) ં n
C) ં n
ં (પ m
ં (ફ m
ં (બ m
ં (ભ m
ં (મ m

ં (ટ n.
ં (ઠ n.
ં (ડ n.
ં (ઢ n.
ં (ણ n.

ં (ચ n^
ં (છ n^
ં (જ n^
ં (ઝ n^
ં (ઞ n^
ં (ય n^

ં (ક N
ં (ખ N
ં (ગ N
ં (ઘ N
ં (ઙ N

ં n // anusvara
ં (પ m
ં (ફ m
ં (બ m
ં (ભ m
ં (મ m

ં (ટ n.
ં (ઠ n.
ં (ડ n.
ં (ઢ n.
ં (ણ n.

ં (ચ n^
ં (છ n^
ં (જ n^
ં (ઝ n^
ં (ઞ n^
ં (ય n^

ં (ક N
ં (ખ N
ં (ગ N
ં (ઘ N
ં (ઙ N


.group ઃ .group ઃ
ઃ g'ur'u,v'ir'a:m
A) ઃ H // visarga
C) ઃ H // visarga
ઁ) ઃ H
ં) ઃ H
ઃ H // visarga


.group ્ // virama
્ k#'od.o
C) ્
.group ્ // virama


// Extra consonants // Extra consonants


.group ક઼ // qa
ક઼ qV

.group ખ઼ // khha
ખ઼ xV

.group ગ઼ // ghha
ગ઼ QV

.group જ઼ // za
જ઼ zV

.group ફ઼ // fa
ફ઼ fV

.group ૠ // rr
ૠ V-rr

.group ૡ // ll
ૡ l-: // long syllabic l


// If we find a Latin letter a-z, then translate as English
// (This is now done automatically by the eSpeak program)

.group o
o _^_EN
D__) of (__D me




.group
$ dOlV
% pVsEnt


.group ૠ // rr
ૠ V-rr

.group ૡ // ll
ૡ l-: // long syllabic l

.group %
% p'Vrs'ent.
0) % t.'Vkk'a:
1) % t.'Vkk'a:
2) % t.'Vkk'a:
3) % t.'Vkk'a:
4) % t.'Vkk'a:
5) % t.'Vkk'a:
6) % t.'Vkk'a:
7) % t.'Vkk'a:
8) % t.'Vkk'a:
9) % t.'Vkk'a:

+ 1
- 0
dictsource/hi_rules View File

_) व (B w _) व (B w
_) व (् v // +virma _) व (् v // +virma
व (_ w व (_ w
्) व (_ w@


.group श .group श
श SV श SV

+ 608
- 607
dictsource/hu_rules
File diff suppressed because it is too large
View File


+ 1637
- 330
dictsource/it_list
File diff suppressed because it is too large
View File


+ 284
- 400
dictsource/it_listx
File diff suppressed because it is too large
View File


+ 492
- 358
dictsource/it_rules View File

// translation rules
// Italian translation rules
// This file is UTF-8 encoded // This file is UTF-8 encoded
// Last update: 2014 January 07 Chris, Christian Leo M, <[email protected]>
// letter groups // letter groups
// A any vowel // A any vowel
// C any consonant // C any consonant
.L01 a à o ò ó u ù .L01 a à o ò ó u ù
.L02 e é è .L02 e é è
.L03 b d g l m n r v // 's' is [z] before these .L03 b d g l m n r v // 's' is [z] before these
.L04 mi ti gli lo la le si ci vi li ne melo telo selo celo velo mela tela sela cela vela meli teli seli celi veli mele tele sele cele vele mene tene sene cene vene glielo gliela glieli gliele gli
ene

// Hours and minutes
.L16 0 1 2 3 4 5 6 7 8 9 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23
.L17 0 1 2 3 4 5



.group a .group a
a a
ai (K aI
ao (_N aU
au a%u

@C) a (_S1q a // lookup it_list without suffix
@i) a (_S1q a // lookup it_list without suffix

@) a (cA_ =a
@) a (che_ =a
a (istA_ a
a (ismo_ a
@) a (bile_ 'a
@) a (ggine_ 'a

_) ae (r aI
// @) a (no_ =a //ByFilo, this seems to make it_listx longer
@) avano (_S5 'avano
a (tterA_ 'a
a a
ai (K aI
ao (_N aU
au a%u
@C) a (_S1q a // lookup it_list without suffix
@i) a (_S1q a // lookup it_list without suffix
@) a (cA_ =a
@) a (che_ =a
a (istA_ a
a (ismo_ 'a
@) a (bile_ 'a
@) a (ggine_ 'a

_) ae (r aE
@) avano (_S5q 'avano
a (tterA_ 'a
_) all' (P4t all
_) anch' (P5t ank
@) amo (L04_ 'amo
@) ander (L04_ 'andE@-*
ate (L04_ 'ate


.group à .group à
à ''a
ài (K ''aI
ào (_N ''aU
àu ''a%u
à ''a
ài (K ''aI
ào (_N ''aU
àu ''a%u


.group b .group b
b b
bb b:
b b
bb b:


.group c .group c
c k
cc k:
c (' tS
c (Y tS
cc (Y tS:
ch k
cch k:
ci (A tS // or L01 ?
cci (A tS: // or L01 ?
@) co (lA_ =ko
c k
cc k:
ck k:
cqu k:w2
c (Y tS
cc (Y tS:
ch (Y k
cch (Y k:
s) ch (A k
ch (a tS
ch (o tS
ch (u tS
ci (A tS // or L01 ?
cci (A tS: // or L01 ?
@) co (lA_ =ko
_) c' (P2t tS
@@A) ce (A_ =tSE

.group d .group d
d d
dd d:
n) dere =deRe
d d
dd d:
n) dere =deRe

_) dall' (P5t dall
_) dell' (P5t dell
_) d' (P2t d
donat (Y_ don'at
dona (L04_ d'ona
ci) der (L04_ =dE@-*
chAA) der (L04_ =de@-*
re) der (L04_ =de@-*


.group e .group e
e e
ei Ej (K
@C) e (_S1q e // lookup it_list without suffix
@Ar) e (_ e

e (C_ E
e (A E
e (C%A_ E // doubled consonant
e (CiCA_ E
e (CulA_ E
e (llu E
e (st E
e (ttA_ e
c) e (ttA_ E
e (tti@ E
e (zzA_ e

e (r E
e (rsi_N e
A) e (r_ 'E

_r) e E
e e
ei (K Ej
r) ei (_ 'ei
@C) e (_S1q e // lookup it_list without suffix
e (C_ E
e (A E
e (C%A_ E // doubled consonant
e (CiCA_ E
e (CulA_ E
e (llu E
e (st E
e (ttA_ e
c) e (ttA_ E
e (tti@ E
e (zzA_ e

e (r E
e (rsi_N e
A) e (r_ 'E

_r) e E


// @) e (ce_ =e // @) e (ce_ =e
@) e (ci_ =e

e (l E
r) e (m E
e (monA_ 'e
e (nA_ E
g) e (ne E
e (ngA_ e
e (nCA_ E
@m) e (ntA_ e
%C) e (rA_ =E
C) e (re_ =E
gg) e (ro_ E
f) e (rm e
@) e (rrimo_ 'E
@) e (simo_ 'e
h) e (ss e
m) e (ss e
_sC) e (ss e
e (ssa_ e
e (tr E
e (ti E

e (vi_ E
e (vo_ E
@) e (volA_ 'e
e (zA E
@) e (ci_ =e

e (l E
r) e (m E
e (monA_ 'e
e (nA_ E
g) e (ne E
e (ngA_ e
e (nCA_ E
@m) e (ntA_ e
%C) e (rA_ =E
C) e (re_ =E
gg) e (ro_ E
f) e (rm e
@) e (rrimo_ 'E
@) e (simA_ 'e
h) e (ss e
m) e (ss e
_sC) e (ss e
e (ssa_ e
e (tr E
e (ti E
e (vi_ E
e (vo_ E
@) e (volA_ 'e
e (zA E
CC) eggia (no_ 'EdZ:a
C) ender (L04_ 'ende@-*
C) erder (L04_ 'E@-*de@-*
esser (L04_ 'es:eR
_) ecco (L04 'Ek:o
ete (L04_ 'ete


.group f .group f
f f
f f
ff f:
@A) f (ilo_ =f
A) f (ero_ =f


@A) f (ilo_ =f
A) f (ero_ =f
.group g .group g
g g
gg g:
gh g
g (Y dZ
gi (A dZ // any vowel, or L01 ?
gi (a_ dZ'i# // [i] only if stressed
gì (a_ dZ'i# // [i] only if stressed
n) gi (a_ dZ
gg (Y dZ:
ggi (A dZ: // or L01 ?
@) gger (lo_ =dZ:eR
gl (i l^
gl (ì l^
gli (A l^
_) gl gl
gn n^
gu (A gw

g g
gg g:
gh g
g (Y dZ
gi (A dZ // any vowel, or L01 ?
gi (a_ dZ'i# // [i] only if stressed
gì (a_ dZ'i# // [i] only if stressed
lo) gi (e_ dZ'i#
n) gi (a_ dZ
gg (Y dZ:
ggi (A dZ: // or L01 ?
@) gger (L04_ =dZ:e@-*
AC) ger (L04_ =dZe@-*
_) giura (L04_ dZ'URa
gl (i l^
gl (ì l^
gli (A l^
_) gl gl
@) glier (L04_ =l^E@-*
@) guer (L04_ =gUe@-*
gn n^
@) gn (A_ n^;
a) gn (A_ n^:
gu (A gw

.group h .group h
h
_) ha h'a
_) hà h'a
h
_) ha h'a
_) hà h'a


.group i .group i
i i
i (A j
l) i (A %i
r) i (A %i
_C) i (a i
_C) i (à i
i (o i
i (ò i
i (ó i
@) ia (_ =i%a
@) ià (_ i'a
X) ia (_ 'ia
af) ia (_ 'ia
fon) ia (_ 'ia
scop) ia (_ 'ia
er) ia (_ 'ia
gor) ia (_ 'ia
metr) ia (_ 'ia
t) ia (_ 'ia
@) io (_S1q =i%o
a) i (+ j
à) i (+ j
L02) i (+ j
o) i (+ j

@C) i (_S1q i // lookup it_list without suffix

@) i (Ante_ i
i (acA_ 'i
i (asi_ 'i
@) i (bile_ 'i
@) i (cA_ =i
tr) i (ce_ i
@) i (chA_ =i
@) i (dA_ =i
@) i (dere_ 'i
@) ie (rA_ i'E
@) ié (rA_ i'E
@) iè (rA_ i'E
@) i (gA_ =i
i (genA_ 'i
c) i (lA_ =i
g) i (lA_ =i
ss) i (lA_ =i
b) i (le_ =i
m) i (le_ =i
i (lA_ =i
@) i (ma_ =i
r) i (ma_ i
laCr) i (ma_ =i
st) i (ma_ i
enz) i (ma_ i
@) i (mo_ =i
inas (_ 'inas
i (ne_ =i
@) issima(_S6 'issima
@) issime(_S6 'issime
@) issimi(_S6 'issimi
@) issimo(_S6 'issimo
@) issero(_S6 'issero
p) i (te_ =i

i i
i (A j
l) i (A %i
r) i (A %i
_C) ie (_ 'ie
i (o i
i (ò i
i (ó i
@) ia (_ =i%a
@) ià (_ i'a
X) ia (_ 'ia
af) ia (_ 'ia
af) ie (_ 'ie
fon) ia (_ 'ia
scop) ia (_ 'ia
er) ia (_ 'ia
er) ie (_ 'ie
gor) ia (_ 'ia
metr) ia (_ 'ia
metr) ie (_ 'ie
t) ia (_ 'ia
t) ie (_ 'ie
@) io (_S1q =i%o
a) i (+ j
à) i (+ j
L02) i (+ j
o) i (+ j
@C) i (_S1q i // lookup it_list without suffix
@) i (Ante_ i
i (acA_ 'i
i (asi_ 'i
@) i (bile_ 'i
@) i (cA_ =i
tr) i (cY_ i
@) i (chA_ =i
@) i (dA_ =i
@) i (dere_ 'i
@) ie (rA_ i'E
@) ié (rA_ i'E
@) i (gA_ =i
i (genA_ 'i
c) i (lA_ =i
g) i (lA_ =i
ss) i (lA_ =i
b) i (le_ =i
m) i (le_ =i
i (lA_ =i
@) i (mA_ =i
laCr) i (mA_ =i
r) i (ma_ i
inas (_ 'inas
@g) in (Y_ =in
c) ine (_ =ine
d) ine (_ =ine
@@Cand) i (ne_ 'i
Cm) in (Y_ =in
im) in (Y_ =in

@) issim (A_ 'issim
@) issero (_S6q 'issero
p) i (te_ =i
C) iad (Y_ 'iad
@) iono (_ =iono
issano (_ 'is:ano
ite (L04_ 'ite
iver (L04_ 'ivE@-*
d) iver (L04_ iv'E@-*

.group j .group j
j j

j dZ
@) j (_ j
_) juan _^_ES


.group k .group k
k k
kk k:
k k
kk k:
.group l .group l
l l
ll (C l_
ll (_ l
l l
ll (C l_
ll (_ l
_) l' (P2t l
lascia (L04_ l'aSa

.group m .group m
m m
A) mi (a_ m'i
m m
A) mi (a_ m'i
_) m' (P2t m
_) mezz' (P5t mEdz:
metter (L04_ m'ette@-*


.group n .group n
n n
n (g N
n (gY n
n (k N
n n
n (g N
n (gY n
n (k N
_) nell' (P5t nell
_) neanch' (P7t neank
ndo (L04_ =ndo // for pronominal verbs
netter (L04_ n'Et:e@-*
_zA) nz (A n|dz
A) ne (A_ =nE

.group o .group o
o o
oi O%I
oi (o_ o%I
oi (sCA_ o'i

o (C%A_ O // doubled consonant
o (CACA_ O
o (Cr O
o (CC_ O
@C) o (_S1q o // lookup it_list without suffix
@i) o (_S1q o // lookup it_list without suffix
i) o O
i) o (ne o
i) o (so_ o
m) o (bile O
o (ca_ O
o (co_ O
@) o (di_ =o
@) o (do_ =o
@) o (fono_ 'O
o (genA_ 'O
l) o (gico_ 'O
@) o (gnolo_ 'o
@) o (grafo_ 'O
o (lX O
nd) o (lA_ =O
ns) o (lA_ =O
CC) o (lA_ =O
u) o (lA_ O
v) o (lA_ =o
@) o (la_ O
gn) o (la_ O
o (li O
@) o (liA_ O
@) o (lo_ =O
i) o (lA_ O
ci) o (lA_ =O
@) o (logo_ 'O
c) o (ltA_ O
sc) o (ltA_ o
v) o (lt O
@) o (metro_ 'O
@) o (ma_ O
@) o (mo_ O
dr) o (mo_ =o
o (ni O
o (ni_ o
o (no_ O
@) o (nomo_ 'O
@) o (nzolo_ 'o
o (o O
o (polA_ 'O
sc) o (p O
o (r O
o (re_ o
f) o (rmA_ o
o (si_ O
o (ss O
Ar) o (ssA_ o
o (st O
o (stracA_ 'O
o (ttol O
o (zA O
o o
oi O%I
oi (o_ o%I
oi (sCA_ o'i
o (C%A_ O // doubled consonant
o (CACA_ O
o (Cr O
o (CC_ O
@C) o (_S1q o // lookup it_list without suffix
@i) o (_S1q o // lookup it_list without suffix
i) o O
i) o (ne o
i) o (so_ o
m) o (bile O
o (ca_ O
o (co_ O
@) o (di_ =o
@) o (do_ =o
@) o (fono_ 'O
o (genA_ 'O
l) o (gico_ 'O
@) o (gnolo_ 'o
@) o (grafo_ 'O
o (lX O
nd) o (lA_ =O
ns) o (lA_ =O
CC) o (lA_ =O
u) o (lA_ O
v) o (lA_ =o
@) o (la_ O
gn) o (la_ O
o (li O
@) o (liA_ O
@) o (lo_ =O
i) o (lA_ O
ci) o (lA_ =O
@) o (logo_ 'O
c) o (ltA_ O
sc) o (ltA_ o
v) o (lt O
@) o (metro_ 'O
@) o (ma_ O
@) o (mo_ O
dr) o (mo_ =o
o (ni O
o (ni_ o
@) o (no_ =O
u) o (no_ 'o
@) o (nomo_ 'O
@) o (nzolo_ 'o
o (o O
o (polA_ 'O
sc) o (p O
o (r O
o (rY_ o
f) o (rmA_ o
o (si_ O
o (ss O
Ar) o (ssA_ o
o (st O
o (stracA_ 'O
o (ttol O
o (zA O
osano (_ 'ozano
C) onder (L04_ 'ondE@-*
over (L04_ 'ovE@-*
d) over (L04_ Ov'E@-*
.group p .group p
p p
pp p:
_) pn (@@ n
_) ps (A@ s
@m) p (ere_ =p
p p
pp p:
_) pn (@@ n
_) ps (A@ s
@m) p (erY_ =p


.group q .group q
q kw2
qu kw2
q k
qu kw2
_) quell' (P6t kw2Ell
_) quest' (P6t kw2est


.group r .group r
C) r @-*
r @-*
_) r @-*
rr R*
A) r (A R
C) r @-*
r @-*
r (_ @-*
_) r @-*
rr R*
A) r (A R
@) r (L04_ =@-* // for Italian pronominal verbs and reflexive verbs
C) rai (_ @-*'aI
A) rai (_ R'aI
rrai (_ R*'aI

.group s .group s
s s
_) s s
A) s (A z
s (L03 z

l) s s
p) s s
k) s s
s (c s
s (f s
s (k s
s (p s
s (q s
ss ss
s (t s
s (x s
sc (Y S
sci (A S
sci (i S%i
sci (ì S%i
sch (Y sk
sh (K S // foreign words
K) sh S // foreign words
@) sia z'ia
@C) sia s'ia
@) sià zi'a
@) s (_S1 s
s s
_) s s
A) s (A z
s (L03 z

l) s s
p) s s
k) s s
s (c s
s (f s
s (k s
s (p s
s (q s
ss ss
A) ss (A s:

s (t s
s (x s
sc (Y S
sci (A S
scii Sij
sci (ì S%i
sch (Y sk
sh (K S // foreign words
K) sh S // foreign words
A) sh (A S
@) sia (_ z'ia
@) sie (_ z'ie
@C) sia s'ia
@) sià zi'a
@) s (_S1 s
_) sull' (P5t sull
_) sotto (P5t sot:o
@) scer (L04_ =SE@-*

.group t .group t
t t
tt t:
.group u
u u
u (A w2
Kr) u (A u
Kl) u (A u
t t
tt t:
@a) tria (_ t@-*'ia
@a) trie (_ t@-*'ie
@) tt (ano_ =t:
a) ttoria (_ t:oR'ia
a) ttorie (_ t:oR'Ie


@) u (dine_ 'u
@) u (colo_ 'u
u (ito_ 'u
@) u (lA_ =u
.group u
u u
_) u (A w2
Kr) u (A u
Kl) u (A u

@) u (dinY_ 'u
@) u (colo_ 'u
u (ito_ 'u
@) u (lA_ =u
_) un' (P3t un
@@) u (A_ =u
A%C) u (A_ =u

ural (Y_ uR'al
C) ura (L04_ 'uRa
uder (L04_ 'udE@-*


.group v .group v
v v
v v
vv v:
vvi (A v:i
C) vi (A vI
C) vi (A_ =vI

.group w .group w
w w2
w w2


.group x .group x
x ks
x ks
.group y .group y
y j
y (K i // foreign words
.group z
z ts
A) zz ts:
A) z (A ts:
y j
y (K i // foreign words


_) z (i dz
_) z (ì dz
z (L01A dz
.group z
z ts
A) zz (A ts:
_A) z (AC dz
_) z (AC dz
_) z (Y dz
z (L01A dz
_A) zz (A |dz:
CA) zz (arC dz:
@li) zz (A dz:
@) zz (ano_ =ts:
i) zza (no_ =dz:a
@@) zza (L04_ =dz:a
@i) zza (ti_ dz:'a
zion (A_ tsi'On
ziona (ti_ tsiOn'a
zional (Y tsiOn'al
ziona (L04_ tsi'Ona

.group 0xce // Greek letters
// 0xce is the first byte of the utf-8 code for these characters

α 'alfa_
ά 'alfa_
β b'eta_
γ g'am:a_
δ d'Elta_
ε 'EpsIlon
έ 'EpsIlon_
ζ dz'eta||g@-*'eka
η 'e:ta||g@-*'eka
ή 'e:ta||g@-*'eka_
θ t'e:ta||g@-*'eka_
ι I'ota_
ί I'ota_
κ k'ap:a||g@-*'eka_
λ l'ambda_
μ m'ju:_
ν n'ju:_
ξ ks'I||g@-*'eka_
ο 'omIk@-*on_

.group 0xcf // Greek letters

π p'I||g@-*'eka_
ρ @-*'O||g@-*'eka_
σ s'Igma_
ς s'Igma_
τ t'au_
υ 'IpsIlon_
ύ 'IpsIlon_
φ f'I||g@-*'eka_
χ k'I||g@-*'eka_
ψ ps'I||g@-*'eka_
ω om'ega_
ώ om'ega_
ό 'omIk@-*on_


.group .group
è ''E
èi (K ''Ej

é ''e
éi (K ''eI

ì ''i
ó ''o
ói ''o|I

ò ''O
òi ''OI

ù ''u

$ dollaro
, (D v'irgola
! _p'untoesklamat'ivo_
!) !
? _p'untointeRogat'ivo_
?) ?


__) - (_D meno
A_) - (_D _
C_) - (_D _
gn n^
ñ n^
_L16_) : (_L17D_ _%%E_ // Say time

á ''a
é ''e
è ''E
èi (K ''Ej
éi (K ''eI
ì ''i
í ''i
ó ''o
ói ''o|I
ò ''O
òi ''OI
ú ''u
ù ''u

$ d'ollaRo
D) , (D v'i@-*gola
! _p'untoesklamat'ivo_
!) !
? _p'untointeRogat'ivo_
?) ?
__) - (_D meno
A_) - (_D _
C_) - (_D _
§ setsi'one


§ setsi'one

+ 15
- 1
dictsource/kn_rules View File

೮ 8 ೮ 8
೯ 9 ೯ 9


.L01 ಕ ಖ ಗ ಘ ಙ // velar

.L02 ಚ ಛ ಜ ಝ ಞ // palatal

.L03 ಟ ಠ ಡ ಢ ಣ // retroflex

.L04 ತ ಥ ದ ಧ ನ // dental

.L05 ಪ ಫ ಬ ಭ ಮ // labial



.group ಕ .group ಕ
ಕ ka ಕ ka


.group 0xe0b2 // characters which start with UTF-8 bytes: [e0 b2] .group 0xe0b2 // characters which start with UTF-8 bytes: [e0 b2]


ಂ m // anusvara (this should nasalize the vowel)
ಂ(L01 N // anusvara (this should nasalize the vowel)
ಂ(L02 n^
ಂ(L03 n.
ಂ(L04 n
ಂ m


ಃ h // visarga ಃ h // visarga



+ 166
- 0
dictsource/lfn_list View File

// This file is UTF-8 encoded
// Special attributes
// $alt1 stress on final vowel, before 's', which is not a suffix.
// numbers
_0 z'ero
_1 'un
_2 d'u
_3 t**'e
_4 kw'at**o
_5 s'inko
_6 s'es
_7 s'ete
_8 'oto
_9 n'ove
_1X d'es
_2X dud'es
_3X t**ed'es
_4X kwat**od'es
_5X sinkod'es
_6X sesd'es
_7X seted'es
_8X otod'es
_9X noved'es
_1C s'ento
_2C dus'ento
_3C t**es'ento
_4C kwat**os'ento
_5C sinkos'ento
_6C ses'ento
_7C setes'ento
_8C otos'ento
_9C noves'ento
_0M1 m'il
_1M1 m'il
_0M2 milj'on
_dpt _viR2g'ula
// Letters
b be
c ke
d de
f ef
g ge
h haS
j Ze
k ka
l el
m em
n en
p pe
q kwa
r eR2
s es
t te
v ve
w wa
x eS
y ja
z ze
// If a letter has a "word" pronunciation which is different from its
// "letter" name, then include the letter name here, with the letter
// prefixed by a _ character.
_a 'a
_e 'e
_o 'o
á $accent
é $accent
í $accent
ó $accent
ú $accent
_acu sinj'eta'agu
// Symbols
* s'injadest'ela
= s'injadeeg'alja
# g**ilja
$ dolaR2s
€ eU**os
% peR2sento
° grado
_: dupunto
_; punto||viR2gula
_, viR2gula
_. punto
// Abbreviations
acc $abbrev
aec $abbrev
dr dotoR2
ec $abbrev
etc $abbrev
// article
la $u+
// Conjunctions
e $u+
o $u+ $brk
ma $u+
no $u+
ci $u+
cual $u+
do $u+
cuando $u+
cuanto $u+
como $u+
perce $u+
ce $u+
esce $u+
afin $u+ $brk
ca $u+ $brk
car $u+ $brk
si $u+ $brk
// Prepositions
a $u+
ante $u+
asta $u+
con $u+
contra $u+
de $u+
en $u+
entre $u+
estra $u+
longo $u+
par $u+
per $u+
pos $u+
sin $u+
sirca $u+
su $u+
supra $u+
sur $u+
// pronouns
me $u+
tu $u+
el $u+
lo $u+
se $u+
on $u+
nos $u+
vos $u+
los $u+
// non plural words finished by s
felis $alt1
engles $alt1
franses $alt1
portuges $alt1

+ 175
- 0
dictsource/lfn_rules View File

// translation rules for lingua franca nova
// This file is UTF-8 encoded
.replace а a
.replace б b
.replace к c
.replace д d
.replace е e
.replace ф f
.replace г g
.replace х h
.replace и i
.replace ж j
.replace л l
.replace м m
.replace н n
.replace о o
.replace п p
.replace р r
.replace с s
.replace т t
.replace у u
.replace в v
.replace ш x
.replace з z
.replace ё io
.replace й i
.replace ц ts
.replace ч tx
.replace щ xtx
.replace ы i
.replace э e
.replace ю iu
.replace я ia
.group a
a (CX 'a // + consonant and no more vowels
a a
ai (X 'aI
ai aI
au (X 'aU
au aU
.group b
b b
.group c
c k
.group d
d d
dj dZ
.group e
e (CX 'e
e e
_) ei e
eu eU
eu (X 'eU
.group f
f f
.group g
g g
.group h
h h
.group i
i i
i (CX 'i
_) i (A j
A) i (A j
Al) i (A j
An) i (A j
@) i (A_ =i
.group j
A) j Z
j Z
.group k
k k
.group l
l l
.group m
m m
_) mn (em n
.group n
n n
n (c N
n (g N
ng (X N
.group o
o o
o (CX 'o
oi oI
oi (X 'oI
ou o
.group p
p p
_) p (sA
_) ph f
_) pre (i p**e
_) pro (i p**o
.group q
q k
.group r
r (C R2
r **
_) re (i **e
.group s
s s
s (_S1 s // plural suffix
X) s (_S1 'es
s (_$w_alt1+ s // not plural, stress is on the last vowel
_) supra sup**a
.group t
t t
tx tS
.group u
u u
u (CX 'u
_) u (A w
A) u (A w
c) u (A+ w
g) u (A+ w
@) u (a_ =u
@) u (e_ =u
@) u (o_ =u
.group v
v v
.group w
w w
.group x
x S
.group y
C) y (K i
y j
.group z
z z
.group
á ''a
é ''e
í ''i
ó ''o
ú ''u

+ 3
- 3
dictsource/nl_list View File

boezemen $alt boezemen $alt
ademen $alt ademen $alt
bliksemen $alt bliksemen $alt
wasemen $alt
wasemen v#a:s@m@n $alt


// words where -er is not a stressed verb ending // words where -er is not a stressed verb ending


wakker $alt wakker $alt
wapper $alt wapper $alt
water $alt water $alt
wedijver v#Ed'EIv@r $alt
wedijver v#'EtEIv@r $alt
weelder $alt weelder $alt
wegwijzer $alt wegwijzer $alt
weiger $alt weiger $alt
vergezicht vErQ@zIxt vergezicht vErQ@zIxt
verre vEr@ verre vEr@
verrekijker vEr@kEIk@r verrekijker vEr@kEIk@r
versa vErs'a:
versa v'Erza:
verste vErst@ verste vErst@
verte vErt@ verte vErt@
volledig $2 volledig $2

+ 4
- 2
dictsource/nl_rules View File

_) ge (tenL02 Qe: _) ge (tenL02 Qe:
_) geu QY: _) geu QY:
_) ge (ven Qe: _) ge (ven Qe:
_) ge (ver Qe:
ge (vend_ Qe:
ge (ver Qe:
ge (val Q@ ge (val Q@
_) ge (ving Qe:
ge (ving Qe:


ge (sprek Q@ // in compounds ge (sprek Q@ // in compounds


&) iko (_ =iko: &) iko (_ =iko:
fam) i (lie 'i fam) i (lie 'i
_) in (C@P2 'In _) in (C@P2 'In
_) in (a@P2 'In
_) ing (eC_ IN // bewerkingen _) ing (eC_ IN // bewerkingen
_) in (do In _) in (do In
_) in (forma In _) in (forma In

+ 90
- 39
dictsource/om_list View File

// numeric // numeric
_0 duwa:
_1 tokko
_2 l@m@:
_3 s@di:
_4 afur
_5 S'an
_6 dZ'a:ha
_7 To:rba:
_8 sed:eit:
_9 sagal
_10 kud@'n
_1X
kud'@
_20 dig'dam@
_2X dig'dami:
_3X sod:omi:
_4X afu:rt@mi:
_5X S@nt@mi:
_6X dZat@mi:
_7X torbat@mi:
_8X s@de:t@mi:
_9X s@gal'tami:
_0C ib:'a
_1C ib:'atokko
_2C ib:'alama
_3C ib:'as@di
_4C ib:'a:furi
_5C ib:'a:S@ni
_6C ib:'a'dZa
_7C ib:'a'torb@
_8C ib:'a's@de:ti:
_9C ib:'a'sag@li
_0of na
_0M1 kum@:
_0M2 milijoni:
_0M3 bilijoni:
_dpt tuqa:
_. tuqa:
_roman roma:ni:
_0 duw:a:
_1 tok:o
_2 lama
_3 sadi:
_4 afur
_5 S'an
_6 dZ'a:ha
_7 To:rba
_8 sad:e:t
_9 sagal
_10 kud'an
_1X kud'a
_20 dig'dama
_2X dig'dami:
_3X sod:omi:
_4X afurtami:
_5X Santami:
_6X dZatami:x
_7X torbat:ami:
_8X sade:t:ami:
_9X sagal't:ami:
_0C ib:'a
_1C ib:'atokko
_2C ib:'alama
_3C ib:'asadi
_4C ib:'a:furi
_5C ib:'a:Sani
_6C ib:'adZa
_7C ib:'atorba
_8C ib:'asade:ti:
_9C ib:'asagali
_0M1 kuma
_0M2 milijoni:
_0M3 bilijoni:
_dpt tuqa:
_. tuqa:
_roman roma:ni:
?!3 _0and fi


a a:
b ba:
c tS`a:
d da:
e e:
f fa:
g ga:
h ha:
i i:
j ja:
k ka:
l la:
m ma:
n na
o o:
p pa:
q k`a:
r ra:
s sa:
t ta:
u u:
v va:
w wa:
x t`a:
y ya:
z za:
ch tSa:
dh Da:
ny n^a:
ph Pa:
sh Sa:
zy Za:
ts tsa:

_. xuqaa
_!
_? mal:ato:ga:f:i:
_$ dollari:
_% parsanti
_& fi
€ yuuroo
% parsanti
_< nixiqata
_> nica:la
_- hir'isu
+ ida'u:
* astariiksii
= qixedha
£ pawundi
µ ma:ykro

+ 61
- 84
dictsource/om_rules View File

// Oromo translation rules // Oromo translation rules


.group a .group a
a a
aa a:

a a
aa a:


.group b .group b
b b
bb b:

b b
bb b:


.group c .group c
c tS'

c tS`


.group d .group d
d d
dd d:

d d
dd d:


.group e .group e
e e
ee e:
e e
ee e:


.group f .group f
f f

f f


.group g .group g
g g
gg g:

g g
gg g:


.group h .group h
h h

h h


.group i .group i
i i
ii i:

i i
ii i:


.group j .group j
j dZ

j dZ


.group k .group k
k k
kk k:

k k
kk k:


.group l .group l
l l
ll l:

l l
ll l:


.group m .group m
m m
mm m:

m m
mm m:


.group n .group n
n n
nn n:
n n
nn n:


.group o .group o
o o
oo o:


o o
oo o:


.group p .group p
p p
pp p:

p p
pp p:


.group q .group q
q k
qq k:

q k`
qq k`:


.group r .group r
r r
rr r:
r r
rr r:


.group s .group s
s s
ss s:

s s
ss s:


.group t .group t
t t
tt t:

t t
tt t:


.group u .group u
u u
uu u:
u u
uu u:


.group v .group v
v v

v v


.group w .group w
w v

w w


.group x .group x
x t'
xx t':

x t`
xx t`:


.group y .group y
y y
yy y:

y y
yy y:


.group z .group z
z ts
zz ts

z ts
zz ts


.group ch .group ch
ch tS
.group sh
sh S

.group ph
ph p'
ch tS


.group dh .group dh
dh d' // http://en.wikipedia.org/wiki/Voiced_alveolar_implosive
dh D


.group ny .group ny
ny n^
ny n^

.group ph
ph P

.group sh
sh S

.group ts
ts ts

.group zy
zy Z

+ 210
- 0
dictsource/or_list View File


// Translation rules for Oriya
// Prepared by Him Prasad gautam (Kathmandu, Nepal).
// This file is UTF8 encoded

// Numbers
// Oriya numbers are changed to latin characters before translation

_0 S'u:nj@-
_1 'e'k'o
_2 d'ui
_3 t'ini
_4 tS'ari
_5 p'antSO
_6 tS#'o
_7 S'ato
_8 'at.#O
_9 n'VO

_10 d'oSO
_11 'ega*:O
_12 b'a*O
_13 t'ewrO
_14 tS'Oud'O
_15 p'VndV*'O
_16 S'ohVl-'O
_17 S'VtV*,O
_18 'V:t.#V*,O
_19 'unew,iS

_20 k'or.i,e
_21 'eko,iS
_22 b'aiS
_23 t'ewiS
_24 tS'obiS
_25 p'VtSiS
_26 tS#'VbiS
_27 S'Vtew,iS
_28 'Vt.#ew,iS
_29 'V:nVt,iriS

_30 t'iriS
_31 'ekVt,iriS
_32 b'V:tiS
_33 t'ewtiS
_34 tS'Vut,iriS
_35 p'V,i~tir,iS
_36 tS#'V:tiS
_37 SV'i~tir,iS
_38 'V:t.#Vt,iriS
_39 'V:nVtS,aliS

_40 tS'al-,iS
_41 'ekVtS,al-,iS
_42 b'VjV,al-,iS
_43 t'ewjV,al-,iS
_44 tS'Vur,al-,iS
_45 pV'i~tSal-,iS
_46 tS#'VjV,al-,iSO
_47 S'VtVtS,al-,iS
_48 'V:t.#'VtS,al-,iS
_49 V:n'VntSaS

_50 p'V:tSaS
_51 'ekab,Vn
_52 b'aun
_53 t'ewpVn
_54 tS'V:ub,Vn
_55 p'V:ntSab,Vn
_56 tS#'V:pVn
_57 S'Vtab,Vn
_58 'V:t.#ab,Vn
_59 'V:nVS'Vt.#i

_60 S'at.#i,e
_61 'ekVS,Vt.#i
_62 b'aSVt.#,i
_63 t'ewSVt.#,i
_64 tS'VuS,Vt.#i
_65 pV'O~SVt.#,i
_66 tS#'V:SVt.#,i
_67 S'V:tVS,Vt.#i
_68 'Vr.VS,Vt.#i
_69 'V:n'VstVr'i

_70 S'V:tur,i
_71 ek'V:stVr,i
_72 b'astVr,i
_73 t'ewstVr,i
_74 tSV'ustVr,i
_75 pVntS'VstVr,i
_76 tS#V'VstVr,i
_77 S'V:t'VstVr,i
_78 'V:t.#'VstVr,i
_79 'V:na,VSi

_80 'V:,Si
_81 'eka,V:Si
_82 b'VjV,aVS,i
_83 t'ewjV,aVS,i
_84 tS'V:ur,aVS,i
_85 p'V:ntSa,VSi
_86 tS#'VjV,aVS,i
_87 S'Vta,VSi
_88 'V:t.#a,VSi
_89 'V:nan,Vbew

_90 n'Vbew
_91 'ekan,Vbew
_92 b'V:jV,anVb,ew
_93 t'ewjV,anVb,ew
_94 tS'Vur,anVb,ew
_95 p'VntSan,Vbew
_96 tS#'V:jV,anVb,ew
_97 S'Vtan,Vbew
_98 'V:t.#an,VbewVn'ewSVt,o
_99 'V:n'ewSVt,o

_0C S'Vho
_0M1 h'VJa*,O
_0M2 l'Vk#k#O
_0M3 k'ot.i
_0M4 'VrVb
_0M5 k#'VrVb
_dpt _d@s@ml'o:_



// Single consonants
କ kO
ଖ k#O
ଗ gO
ଘ g#O
ଙ 'uNgO~
ଚ tSO
ଛ tShO // [h] to distinguish from [tS]
ଜ JO
ଝ J#O
ଞ 'iNO~
ଟ t.O
ଠ t.#O
ଡ d.O
ଢ d.#O
ଣ n.'O
ତ tO
ଥ t#O
ଦ dO
ଧ d#O
ନ n'O
ପ pO
ଫ fO // or [p#O] ?
ବ bO
ଭ b#O
ମ mO
ୟ Oj
ଯ dZ'O
ର rO
ଡ଼ r.O
ଡ଼ r.O // (d. + nukta)
ଢ଼ hr.O
ଢ଼ hr.O // (d#. + nukta)
ଲ lO
ଵ vO
ଶ t,aleboS:'O
ଷ m,ud#en:oS:'O
ସ d,onteS:'O
ହ hO

// full vowels
ଅ O
ଆ a
ଇ hrOS:o'i
ଈ d'i:rg#o'i
ଉ hrOS:o'u
ଊ d'i:rg#o'u
ଋ ri
// lri
ଏ e $u+ // word 'it'
ଐ oj $u+ // word 'that'
ଓ o $u+ $brk // 'and'
_ଏ e
_ଐ oj
_ଓ o
ଔ ow

// combining vowel signs
ା 'akar
ି hrOS:o'ikar
ୀ d'i:rg#ikar
ୁ hrOS:oukar
ୂ d'i:rg#'ukar
ୃ r'ikar
େ 'ekar
ୈ 'ojkar
ୋ 'okar
ୌ 'owkar

// signs
୍ 'hVl'VntO
ଂ 'OnuSSOr
ଃ b'iSOrgo
ଁ tS'Ondrobindu
଼ b'indu

$ d.Olar

// Punctuation
। dVn.d.V
_, koma

+ 335
- 0
dictsource/or_rules View File

// Pronounciation rule for Oriya.
// Prepared by Him Prasad gautam (Kathmandu, Nepal).
// This file is UTF8 encoded

// letter groups:
// A vowel letters and vowel signs
// B vowel signs and Halant a ୍
// C consonants
// Y vowel letters and vowel signs



.replace
୦ 0
୧ 1
୨ 2
୩ 3
୪ 4
୫ 5
୬ 6
୭ 7
୮ 8
୯ 9

ଡ଼ ଡ଼ // can be ଡ plus nukta
ଢ଼ ଢ଼ // can be ଢ plus nukta


// Vowels

.group ଅ
ଅ V
ଅଁ O~

.group ଆ
ଆ a
ଆଁ a~

.group ଇ
ଇ i
ଇଁ i~

.group ଈ
ଈ i
ଈଁ i~

.group ଉ
ଉ u
ଉଁ u~

.group ଊ
ଊ u:
ଊଁ u~

.group ଋ
ଋ ru
ଋଁ ru~

.group ଌ
ଌ l-r'i

.group ଏ
ଏ e
ଏଁ e~

.group ଐ
ଐ oj
ଐଁ o~j

.group ଓ
ଓ o
ଓଁ o~

.group ଔ
ଔ ow
ଔଁ o~w

// Vowel Signs

.group ା
C) ା a
C) ାଁ a~

.group ି
C) ି i
C) ିଁ i~

.group ୀ
C) ୀ i
C) ୀଁ i~


.group ୁ
C) ୁ u
C) ୁଁ u~

.group ୂ
C) ୂ u:
C) ୂଁ u~:

.group ୃ
C) ୃ r'u
C) ୃଁ r'u~

.group େ
C) େ e
C) େଁ e~
C) େ ew

.group ୈ
C) ୈ oj
C) ୈଁ o~j

.group ୋ
C) ୋ o
C) ୋଁ o~

.group ୌ
C) ୌ ow
C) ୌଁ o~w

// Consonants

.group କ
କ kV
କ (B k
କ୍ଷ k#k#V // or [k#:] ?
କ୍ଷ (B k#k#

.group ଖ
ଖ k#V
ଖ (B k#

.group ଗ
ଗ gV
ଗ (B g

.group ଘ
ଘ g#V
ଘ (B g#

.group ଙ
ଙ NV
ଙ (B N

.group ଚ
ଚ tSV
ଚ (B tS

.group ଛ
ଛ tS#V
ଛ (B tS#

.group ଜ
ଜ JV
ଜ (B J

ଜ୍ବ JV
ଜ୍ବ (B J
ଜ୍ଞ ggo~
ଜ୍ଞ (B gg

.group ଝ
ଝ J#V
ଝ (B J#

.group ଞ
ଞ nV
ଞ (B n
.group ଟ
ଟ t.V
ଟ (B t.

.group ଠ
ଠ t.#V
ଠ (B t.#

.group ଡ
ଡ d.V
ଡ (B d.
ଡ଼ r.V // nukta
ଡ଼ (B r.

.group ଢ
ଢ d.#V
ଢ (B d.#
ଢ଼ hr.V
ଢ଼ (B hr.

.group ଣ
ଣ nV // should be [n.] if adjacent to t. or d. ?
ଣ (B n

.group ତ
ତ tV
ତ (B t
ତ (_ to

.group ଥ
ଥ t#V
ଥ (B t#

.group ଦ
ଦ dV
ଦ (B d

.group ଧ
ଧ d#V
ଧ (B d#

.group ନ
ନ nV
ନ (B n

.group ପ
ପ pV
ପ (B p
.group ଫ
ଫ p#V
ଫ (B p#
.group ବ
ବ bV
ବ (B b

.group ଭ
ଭ b#V
ଭ (B b#

.group ମ
ମ mV
ମ (B m

.group ୟ
ୟ jV
_) ୟ (B j
ୟ (_ jo

.group ଯ
ଯ dZV
ଯ (B dZ
ଯ଼ jV // nukta
_) ଯ଼ (B j
ଯ଼ (B
୍) ଯ (_ :O // double the previous consonant
୍) ଯ (B_ :
୍) ଯ (C &
୍) ଯା & //

.group ର
ର rV
ର (B r

.group ଲ
ଲ lV
ଲ (B l

.group ଳ// long la
ଳ l-V
ଳ (B l-

.group ଵ
ଵ wV
ଵ (B w

.group ଶ
ଶ SV // or [s] ?
ଶ (B S
ଶ (୍ଲ s

.group ଷ
ଷ SV
ଷ (B S

.group ସ
ସ SV // or [s] ??
ସ (B S
ସ (୍ଥ s
ସ (୍ତ s
ସ (୍ଯ s // ସମସ୍ଯା
_) ସ୍ବ SV // shb
_) ସ୍ବ (B S

.group ହ
ହ hV
ହ (B h
ହ (_ ho

.group ହ୍ବ
ହ୍ବ vV
ହ୍ବ (B v

.group ୎
୎ t

.group ଡ଼ // can be ଡ plus nukta
ଡ଼ r.V
ଡ଼ (B r.

.group ଢ଼ // can be ଢ plus nukta
ଢ଼ hr.V
ଢ଼ (B hr.
ଢ଼ (_ hr.o

.group ଁ
C) ଁ O~ // candrabindu, nasalize the previous vowel/Consonants

.group ଂ
A) ଂ N // anusvara/onushshor
C) ଂ N // anusvara/onushshor
.group ଃ // visarga/bishorgo
ଃ // doubles the following consonant
ଃ (_ H

.group ୍ // virama/hoshonto
C) ୍

.group ଼
଼ // nukta, modifies a consonant

.group
// obsolete letters
ଋ r-
ୠ r-
ଌ l-
ୡ l-
ୃ r-
ୄ r-
ୢ l-
। p'urn.'oV'iram
ୣ l-


+ 37
- 12
dictsource/pt_list View File

acocho $alt2 $noun acocho $alt2 $noun
acordo $alt $verb acordo $alt $verb
acervo $alt2 acervo $alt2
adepto $alt
adorno $alt $verb adorno $alt $verb
aeroporto $alt2 aeroporto $alt2
aflore $alt aflore $alt
amores $alt2 amores $alt2
amorno $alt amorno $alt
amuleto $alt2 amuleto $alt2
ampere $alt
ampola $alt2 ampola $alt2
ampulheta $alt2 ampulheta $alt2
anchova $alt2 anchova $alt2
azeda $alt $verb azeda $alt $verb
azedo $alt $verb azedo $alt $verb
bairro b'aIxU bairro b'aIxU
baitola $alt2
banquete $alt2 banquete $alt2
barreto $alt2 barreto $alt2
bastonete $alt2 bastonete $alt2
carrapeta $alt2 carrapeta $alt2
carroça $alt carroça $alt
casebre $alt casebre $alt
catacreses $alt
cateto $alt2 cateto $alt2
catequeses $alt
catorze $alt2 catorze $alt2
cebola $alt2 cebola $alt2
cedro $alt cedro $alt
choco $alt2 $noun choco $alt2 $noun
choça $alt choça $alt
chofer $alt chofer $alt

choro $alt2 $noun choro $alt2 $noun
chovesse $alt2 chovesse $alt2
chupeta $alt2 chupeta $alt2
costeleta $alt2 costeleta $alt2
coto $alt2 coto $alt2
cotovelo $alt2 cotovelo $alt2
cozem $alt
cratera $alt cratera $alt
crede $alt2 crede $alt2
credo $alt credo $alt
desconsolo $alt2 $noun desconsolo $alt2 $noun
descontrole $alt2 $noun descontrole $alt2 $noun
descordo $alt descordo $alt
desemprego $alt2
descorno $alt
desemprego $alt2
desemprego $alt $verb desemprego $alt $verb
desespero $alt2 desespero $alt2
desespero $alt $verb desespero $alt $verb
dobro $alt2 dobro $alt2
dobro $alt $verb dobro $alt $verb
doce $alt2 doce $alt2
dogma $alt
dores $alt2 dores $alt2
dorminhoco $alt2 dorminhoco $alt2
dorminhocos $alt dorminhocos $alt
doso $alt
doze $alt2 doze $alt2
dueto $alt2 dueto $alt2
edson $alt edson $alt
elixir eliSir elixir eliSir
emborco $alt
emprego $alt2 emprego $alt2
emprego $alt2 $noun emprego $alt2 $noun
encasqueta $alt encasqueta $alt
enforco $alt enforco $alt
engordo $alt engordo $alt
enredo $alt $verb enredo $alt $verb
enrosco $alt $verb
enrosco $alt2 $noun
ensosso $alt2 ensosso $alt2
enterro $alt2 $noun enterro $alt2 $noun
entorto $alt entorto $alt
erro $alt $verb erro $alt $verb
esboço $alt $verb esboço $alt $verb
escopeta $alt2 escopeta $alt2

escova $alt2 escova $alt2
escova $alt $verb escova $alt $verb
escovo $alt escovo $alt
esforços $alt esforços $alt
esgoto $alt2 esgoto $alt2
esgoto $alt $verb esgoto $alt $verb
esperma $alt
espectro $alt
espeto $alt2 $noun espeto $alt2 $noun
espoleta $alt2 espoleta $alt2
esposa $alt2 esposa $alt2
esqueleto $alt2 esqueleto $alt2
ester $alt ester $alt
estilete $alt2 estilete $alt2
estocolmo $alt
estojo $alt2 estojo $alt2
estorno $alt $verb estorno $alt $verb
estorvo $alt $verb estorvo $alt $verb
eta $alt2 eta $alt2
europa $alt europa $alt
europeia $alt europeia $alt
?2 ex es
exagero $alt $verb exagero $alt $verb
exegeses $alt
exorto $alt exorto $alt
explore $alt explore $alt
falangeta $alt2 falangeta $alt2
farofa $alt farofa $alt
farolete $alt2 farolete $alt2
fatora $alt
felisteia $alt felisteia $alt
fezes $alt fezes $alt
filete $alt2 filete $alt2
?1 fixe fiSy ?1 fixe fiSy
flerte $alt2 $noun flerte $alt2 $noun
flexora $alt2
foda $alt2 $verb foda $alt2 $verb
fodo $alt2 fodo $alt2
fogo $alt2 fogo $alt2
groso $alt groso $alt
gueto $alt2 gueto $alt2
hemorroida $alt hemorroida $alt
hidreto $alt2
hoje $alt2 hoje $alt2
homero $alt homero $alt
horrores $alt2 horrores $alt2
lasers l'eIzers lasers l'eIzers
lembrete $alt2 lembrete $alt2
lepra $alt lepra $alt
leses $alt
leste $alt2 $verb leste $alt2 $verb
?2 lhe l^y ?2 lhe l^y
licores $alt2 licores $alt2
lisboeta $alt2 lisboeta $alt2
livreto $alt2 livreto $alt2
lodo $alt2 lodo $alt2
logro $alt
lopes $alt lopes $alt
macete $alt2 macete $alt2
maioneses $alt
manopla $alt
maniçoba $alt maniçoba $alt
marieta $alt2 marieta $alt2
mariposa $alt2 mariposa $alt2
minueto $alt2 minueto $alt2
miolo $alt2 miolo $alt2
miolos $alt miolos $alt
mister $alt
modelo $alt2 modelo $alt2
modelo $alt $verb modelo $alt $verb
moeda $alt moeda $alt
naquela $nounf naquela $nounf
naquele $alt2 $nounf naquele $alt2 $nounf
nervo $alt2 nervo $alt2
nitreto $alt2
nojo $alt2 nojo $alt2
novelo $alt2 novelo $alt2
odisseia $alt odisseia $alt
olhos $alt olhos $alt
onomatopeia $alt onomatopeia $alt
opereta $alt2 opereta $alt2
ordens $alt
orno $alt
osso $alt2 osso $alt2
ostra $alt2 ostra $alt2
outorgo $alt outorgo $alt
pangeia $alt pangeia $alt
pantera $alt pantera $alt
papoco $alt2 $noun papoco $alt2 $noun
paradoxo $alt
parede $alt2 parede $alt2
pateta $alt pateta $alt
peba $alt peba $alt
pedra $alt pedra $alt
peixoto $alt2
pela $alt2 pela $alt2
pelo $alt2 pelo $alt2
penhores $alt2 $noun penhores $alt2 $noun
poxa p'oS& poxa p'oS&
primavera $alt primavera $alt
primores $alt2 primores $alt2
program $alt
proso $alt proso $alt
prosopopeia $alt prosopopeia $alt
proveta $alt2 proveta $alt2
roleta $alt2 roleta $alt2
rolete $alt2 rolete $alt2
rolo $alt2 $noun rolo $alt2 $noun
rose $alt2
roseta $alt2 roseta $alt2
rota $alt2 rota $alt2
rota $alt $noun rota $alt $noun
sexteto $alt2 sexteto $alt2
?1 senhora $alt2 ?1 senhora $alt2
senhores $alt2 senhores $alt2
sinagoga $alt
sinopse $alt sinopse $alt
soco $alt2 soco $alt2
soco $alt $verb soco $alt $verb
sorvete $alt2 sorvete $alt2
sossego $alt2 $noun sossego $alt2 $noun
suborno $alt $verb suborno $alt $verb
sudoreses $alt
sufoco $alt2 $noun sufoco $alt2 $noun
sufocos $alt2 sufocos $alt2
sulfeto $alt2 sulfeto $alt2
temores $alt2 temores $alt2
tempero $alt2 $noun tempero $alt2 $noun
tenores $alt2 tenores $alt2
terma $alt
test $alt test $alt
terrores $alt2 terrores $alt2
teses $alt teses $alt
torres $alt2 torres $alt2
torro $alt torro $alt
toso $alt toso $alt
totens $alt
transtorno $alt $verb transtorno $alt $verb
traqueia $alt traqueia $alt
travesso $alt2 travesso $alt2
tremores $alt2 tremores $alt2
treta $alt2 treta $alt2
trevo $alt2 trevo $alt2
trocha $alt2
troco $alt2 $noun troco $alt2 $noun
tropa $alt tropa $alt
tropeço $alt2 $noun tropeço $alt2 $noun
trombeta $alt2 trombeta $alt2
ureia $alt
vanessa $alt2 vanessa $alt2
vareta $alt2 vareta $alt2
vera $alt vera $alt
verbete $alt2 verbete $alt2
verborreia $alt
verde $alt2 verde $alt2
vileta $alt2 vileta $alt2
voga $alt voga $alt
xarope $alt xarope $alt
xereta $alt2 xereta $alt2
xerox S'E*Oks
xeroxes $alt
zelo $alt2 $noun zelo $alt2 $noun
zorra $alt2 zorra $alt2


right r'aIt right r'aIt
?1 sapi s,ap'i ?1 sapi s,ap'i
?1 scanner sk'En&r ?1 scanner sk'En&r
sky sk'ay
sky sk'aI
shake S'eIk shake S'eIk
?1 shift S'ift ?1 shift S'ift
?1 scroll sk:r'ol ?1 scroll sk:r'ol
?1 site s'aIt ?1 site s'aIt
?2 site s'aItSi
?2 site s'aItSy
?2 shampoo S&mpu ?2 shampoo S&mpu
?2 shoping S'OpiN ?2 shoping S'OpiN
?2 slide zl'aIdZy ?2 slide zl'aIdZy

+ 45
- 14
dictsource/pt_rules View File

// translation rules Brazilian
// translation rules Brazilian
// This file is UTF-8 encoded // This file is UTF-8 encoded


// Options // Options
áC) a (C@ & áC) a (C@ &
áCC) a (C@ & áCC) a (C@ &
éC) a (C@ & éC) a (C@ &
éCC) a (C@ &
í) a (CA_ & í) a (CA_ &
íC) a (C@ & íC) a (C@ &
íCC) a (C@ & íCC) a (C@ &
e (rgL04_ E e (rgL04_ E
e (rquL02_ E e (rquL02_ E
e (rsL04_ E e (rsL04_ E
e (scL02_ E
e (sL02_ E e (sL02_ E
e (ssL04_ E e (ssL04_ E
e (ss_ E // stress and english words e (ss_ E // stress and english words
eg) e (L07_ e // elegeste, etc. eg) e (L07_ e // elegeste, etc.
_@o) e (L07_ e // doeste, etc. _@o) e (L07_ e // doeste, etc.
_cr) e (L07_ e _cr) e (L07_ e
_dev) e (L07_ e
bat) e (L07_ e // re- com- bat) e (L07_ e // re- com-
ced) e (L07_ e // pro- con- su- ced) e (L07_ e // pro- con- su-
met) e (L07_ e // meteste, cometeste, etc. met) e (L07_ e // meteste, cometeste, etc.
olv) e (L07_ e // devolveste, etc. olv) e (L07_ e // devolveste, etc.
ond) e (L07_ e // escondeste, etc. ond) e (L07_ e // escondeste, etc.
orr) e (L07_ e // correste, etc. orr) e (L07_ e // correste, etc.
precav) e (L07_ e
_ard) e (L07_ e _ard) e (L07_ e
_coz) e (L07_ e _coz) e (L07_ e
_val) e (L07_ e
colh) e (L07_ e // & es- colh) e (L07_ e // & es-
ench) e (L07_ e // pre- ench) e (L07_ e // pre-
vert) e (L07_ e // in- re- con- vert) e (L07_ e // in- re- con-
_remo) e (L07_ e _remo) e (L07_ e
_sofr) e (L07_ e _sofr) e (L07_ e
screv) e (L07_ e // e- in- ree- pre- de- screv) e (L07_ e // e- in- ree- pre- de-
_absorv) e (L07_ e
_atrev) e (L07_ e _atrev) e (L07_ e
_corro) e (L07_ e _corro) e (L07_ e
_troux) e (L07_ E _troux) e (L07_ E
_caC) e (lo_ e _caC) e (lo_ e
?2 el (ton_ 'EU ?2 el (ton_ 'EU
ad) e (quL04_ E ad) e (quL04_ E
_dig) e (rL02_ E
_ing) e (rL02_ E _ing) e (rL02_ E
_dig) e (rL02_ E
_m) e (rL03_ E _m) e (rL03_ E
_sev) e (rL03_ E _sev) e (rL03_ E
_reit) e (rL03_ E _reit) e (rL03_ E
_) e (rgL03_ e _) e (rgL03_ e
_re) e (rgL03_ e _re) e (rgL03_ e
_so) e (rgL03_ e _so) e (rgL03_ e
sp) e (rma_ E
e (rquL02_ E e (rquL02_ E
_bez) e (rrL03_ e _bez) e (rrL03_ e
v) e (rtL03_ e // con- re- in- v) e (rtL03_ e // con- re- in-
_repr) e (sL03_ E _repr) e (sL03_ E
_ent) e (sL04_ E _ent) e (sL04_ E
_refr) e (scL01_ E _refr) e (scL01_ E
_d) e (scL02_ E
_cr) e (scL02_ E
_p) e (scL03_ E _p) e (scL03_ E
_m) e (sclL04 E _m) e (sclL04 E
dioc) e (ses_ E
_d) e (spL02_ E _d) e (spL02_ E
_p) e (squL02_ E _p) e (squL02_ E
_refr) e (squL02_ E _refr) e (squL02_ E
_esp) e (ssL03_ e _esp) e (ssL03_ e
_c) e (stL03_ e _c) e (stL03_ e
_pr) e (tL03_ e _pr) e (tL03_ e
_bol) e (tL03_ e
_rem) e (tL03_ e _rem) e (tL03_ e
_derr) e (tL03_ e _derr) e (tL03_ e
_obsol) e (tL03_ e _obsol) e (tL03_ e
_bol) e (tL04_ e
_CaC) e (ta_ e _CaC) e (ta_ e
viol) e (ta_ e viol) e (ta_ e
_Carr) e (ta_ e _Carr) e (ta_ e
_rev) e (zL04_ E _rev) e (zL04_ E
_embel) e (zL04_ E _embel) e (zL04_ E
com) e (çL01_ E com) e (çL01_ E
_ender) e (çL01_ E
p) e (çL03_ E p) e (çL03_ E
_m) e (çL03_ E _m) e (çL03_ E
_entorp) e (çL03_ e _entorp) e (çL03_ e
_apazi) gu (e gw _apazi) gu (e gw
_ar) gu (i gw _ar) gu (i gw
averi) gu (e gw averi) gu (e gw
bilin) gu (A gw
_biri) gu (i_ gw
enxa) gu (e gw enxa) gu (e gw
enxá) gu (L02_ gw
i) gu (idade gw i) gu (idade gw
lin) gu (e gw
_lin) gu (A gw
lin) gu (i gw lin) gu (i gw
_min) gu (e gw _min) gu (e gw
_pin) gu (im_ gw _pin) gu (im_ gw
_sa) gu (i gw _sa) gu (i gw
san) gu (ín gw san) gu (ín gw
san) gu (in gw san) gu (in gw
tin) gu (i gw
stin) gu (A gw
xtin) gu (A gw
?1 n) gu (A gw // eg: língua, etc. ?1 n) gu (A gw // eg: língua, etc.
?1 man) gu (ei g // mangueira ?1 man) gu (ei g // mangueira
?1 gu (ém_ g // eg: alguém, ninguém, etc... ?1 gu (ém_ g // eg: alguém, ninguém, etc...
_sal) o (brL03_ o _sal) o (brL03_ o
_) o (cL03_ o _) o (cL03_ o
_barr) o (cL03_ o _barr) o (cL03_ o
_ch) o (chA_ o
_m) o (chA_ o
_ecl) o (dL03_ o
_expl) o (dL03_ o
_impl) o (dL03_ o
_m) o (fL01_ O _m) o (fL01_ O
_m) o (fL02_ O _m) o (fL02_ O
_af) o (fL04_ O _af) o (fL04_ O
_s) o (frL02_ O _s) o (frL02_ O
_l) o (grL04_ O
_ap) oi (L01_ OI _ap) oi (L01_ OI
_ap) oi (L02_ OI _ap) oi (L02_ OI
_b) oi (L04_ OI _b) oi (L04_ OI
_t) o (lL03_ o _t) o (lL03_ o
_f) o (lgL04_ O _f) o (lgL04_ O
_emp) o (lgL04_ O _emp) o (lgL04_ O
_arr) o (lhL03_ O
_enr) o (lhL03_ O
_) o (lhL04_ O _) o (lhL04_ O
m) o (lhL04_ O m) o (lhL04_ O
emb) o (lsL04_ O emb) o (lsL04_ O
_env) o (ltL03_ o _env) o (ltL03_ o
_esC) o (pA_ o _esC) o (pA_ o
antr) o (pL03_ o
_s) o (prL04_ O _s) o (prL04_ O
_al) o (prL04_ O _al) o (prL04_ O
_ass) o (prL04_ O _ass) o (prL04_ O
_) o (ptL04_ O _) o (ptL04_ O
flex) o (rA_
p) o (rL02_ o p) o (rL02_ o
_dev) o (rL02_ O _dev) o (rL02_ O
_apav) o (rL02_ O _apav) o (rL02_ O
_impl) o (rL02_ O _impl) o (rL02_ O
_ad) o (rL04_ O _ad) o (rL04_ O
_ma@) o (r_ O _ma@) o (r_ O
o (rdens_ O
_@um) o (re_ o _@um) o (re_ o
f) o (rjo_ O
f) o (rmL03_ O f) o (rmL03_ O
c) o (rrL01_ o // incorra, corra, etc. c) o (rrL01_ o // incorra, corra, etc.
m) o (rrL01_ o m) o (rrL01_ o
@p) o (rtL03_ O // importo, etc. @p) o (rtL03_ O // importo, etc.
a_c) o (rte_ o a_c) o (rte_ o
ortos (_ O*@-t=Us# // tortos, mortos, etc. ortos (_ O*@-t=Us# // tortos, mortos, etc.
_abs) o (rvL01_ o
t) o (rçL03_ o // con- t) o (rçL03_ o // con-
_c) o (sL01_ o
_desc) o (sL01_ o
enr) o (scL03_ O
_r) o (snL04_ O _r) o (snL04_ O
_c) o (spL02_ O _c) o (spL02_ O
_enr) o (squL02_ O
enr) o (squL02_ O
ossos (_ Os=Us# // nossos, grossos, etc. ossos (_ Os=Us# // nossos, grossos, etc.
p) ostos (_ Ost=Us# // dispostos etc.ortos (_ 'O*@-tUs p) ostos (_ Ost=Us# // dispostos etc.ortos (_ 'O*@-tUs
_gar) o (tL03_ o
_mar) o (tL03_ o
_Gar) o (tL03_ o
_escr) o (tL03_ o _escr) o (tL03_ o
zig) o (to_ o zig) o (to_ o
_ch) o (vL01_ o _ch) o (vL01_ o
pr) o (vL03_ O pr) o (vL03_ O
ovos (_ Ov=Us# novos, povos, etc. ovos (_ Ov=Us# novos, povos, etc.
_ortod) o (xL03_ O
_g) o (zL04_ O _g) o (zL04_ O
_alm) o (çL01_ O _alm) o (çL01_ O
_esb) o (çL01_ O _esb) o (çL01_ O
ese) qu (ív kw ese) qu (ív kw
_e) qu (in kw _e) qu (in kw
fre) qu (ent kw fre) qu (ent kw
li) qu (id kw
lí) qu (id kw
?2 li) qu (id kw
?2 lí) qu (id kw
lo) qu (en kw lo) qu (en kw
n) qu (en kw n) qu (en kw
_) qu (inqu kw _) qu (inqu kw
_se) qu (el kw
se) qu (en kw se) qu (en kw
tran) qu (il kw tran) qu (il kw
?1 queç kes // esqueça. ?1 queç kes // esqueça.
_e) x (A z _e) x (A z
_ê) x (A z _ê) x (A z
_ine) x (A z _ine) x (A z
_ine) x (oráv ks
_ine) x (orAC ks
e) x (A ks e) x (A ks
?1 e) x (CA S ?1 e) x (CA S
ai) x (A S ai) x (A S
xA) x (A S xA) x (A S
_abaca) x (i S _abaca) x (i S
ale) x (a S ale) x (a S
_arro) x (e S
bau) x (A S bau) x (A S
brA) x (A S brA) x (A S
_bu) x (o_ S _bu) x (o_ S
_ca) x (A S _ca) x (A S
_co) x (A S _co) x (A S
_coe) x (A z _coe) x (A z
_esdrA) x (ul S
_e) x (u_ S _e) x (u_ S
_fa) x (i S _fa) x (i S
_fle) x (a S _fle) x (a S
gra) x (A S gra) x (A S
_he) x (A z _he) x (A z
?2 _he) x (A ks ?2 _he) x (A ks
_lagarti) x (A S
_li) x (A S _li) x (A S
_lu) x (A S _lu) x (A S
_mar) x ks _mar) x ks
_o) x (A S _o) x (A S
_o) x (i ks _o) x (i ks
_o) x (í ks _o) x (í ks
_pe) xo (to_ So
pi) x (A S pi) x (A S
_pro) x (A S _pro) x (A S
_pra) x (A S _pra) x (A S

+ 2
- 1
dictsource/sk_list View File

£ libRa £ libRa
¤ mena ¤ mena
© kopiRajt © kopiRajt
® Registrovane:
® RegistRovane:
¶ 'oznatSenie||'odseku
¥ jen ¥ jen
− mi:nus − mi:nus
± plus||m'i:nus ± plus||m'i:nus

+ 58
- 7
dictsource/ta_list View File

¼ ka:l ¼ ka:l
½ araI ½ araI
¾ mukka:l ¾ mukka:l
® pVdivU
© p'VdippUrimaI
• t'o:t.t.a:
_… v'id.UnilaI
¡ t'VlaIki:z.||v'ijVppU
¿ t'VlaIki:z.||k'e:l.vi
× d'Vd.VvaI
± k'u:t.t.Vl||k'Vz.ittVl
™ v'Vn.igVm
§ p'irivU
➔ v'VlVdVmbU
→ v'VlVdVmbU
■ k'VrUn^dZVdU*Vm
● v'Vt.t.Vm
† kuttUva:l.
‡ 'irVt.t.aI||k'uttUva:l.

௰ pVttU
௱ nu:RU
௲ a:jirVm
௳ na:l.
௴ ma:dVm
௵ a:n.d.U
௶ pVt.RU
௷ vVrVvU
௸ m'e:lirUppVdU||p'o:l
௺ ;en.n.UrU


_sup m'e:lez.UttU


// alphabet names // alphabet names
_ar arVbU _ar arVbU


_dpt _pul.l.i _dpt _pul.l.i


// drop final [U] when followed by an ordinal suffix
// drop final [U] when followed by an ordinal suffix or thousands
_1o onR _1o onR
_2o irVn.d. _2o irVn.d.
_3o mu:nR _3o mu:nR
_6o a:R _6o a:R
_7o ;e:z. _7o ;e:z.
_8o ;et.t. _8o ;et.t.
_9o onbVd.
_9o onbVd
_10o patt _10o patt
_11o patinonR _11o patinonR
_12o pVnnirVn.d. _12o pVnnirVn.d.
_7Co ;ez.Unu:R _7Co ;ez.Unu:R
_8Co ;en.n.u:R _8Co ;en.n.u:R




_#ம் a:m // ordinal suffix _#ம் a:m // ordinal suffix
_#ல் il _#ல் il
_#இல் il
_#வது a:vVdU _#வது a:vVdU
_#வதும் a:vVdUm _#வதும் a:vVdUm
_#வதுமாக a:vVdUma:gV _#வதுமாக a:vVdUma:gV


_#ஆம் a:m // including ஆ
_#ஆவது a:vVdU
_#ஆவதும் a:vVdUm
_#ஆவதுமாக a:vVdUma:gV

_#-ம் a:m // ordinal suffix with hyphen _#-ம் a:m // ordinal suffix with hyphen
_#-ல் il _#-ல் il
_#-இல் il
_#-வது a:vVdU _#-வது a:vVdU
_#-வதும் a:vVdUm _#-வதும் a:vVdUm
_#-வதுமாக a:vVdUma:gV _#-வதுமாக a:vVdUma:gV


_#-ஆம் a:m // including ஆ
_#-ஆவது a:vVdU
_#-ஆவதும் a:vVdUm
_#-ஆவதுமாக a:vVdUma:gV

// The உ sound at the end of a number should sound as இ,
// if it is followed by லும் or -லும்.
_#லும் ilUm
_#-லும் ilUm


// English words // English words
tamil தமிழ் $text tamil தமிழ் $text


பண்தம் $alt பண்தம் $alt
பவனி $alt பவனி $alt
பாபா $alt பாபா $alt
பாதாம் $alt
போகம் $alt
போதனை $alt போதனை $alt
பூகம்பம் $alt பூகம்பம் $alt
பங்கம் $alt பங்கம் $alt
பாதிக்காம $alt பாதிக்காம $alt
பனியா $alt பனியா $alt
பாம் $alt பாம் $alt
போத $alt
பொம்ம $alt
புகாரி $alt




// initial த as [d] // initial த as [d]
// initial ச as [tS] // initial ச as [tS]
சீ $alt சீ $alt
சே $alt சே $alt
சே s'e: $hasdot
சீசீ tSi:tSi: சீசீ tSi:tSi:
சீச்சீ $alt சீச்சீ $alt
சிட்டாய் $alt சிட்டாய் $alt
காந்தி $alt காந்தி $alt
கிரி $alt கிரி $alt
கயா $alt கயா $alt
காயத்ரி $alt
கட $alt கட $alt
கதி $alt கதி $alt
கோபி $alt கோபி $alt
போன் fo:n போன் fo:n
போனில் fo:nil போனில் fo:nil
//பைலை faIlaI //பைலை faIlaI
பாதர் fa:dVr
பாதரிடம் fa:dVrid.Vm பாதரிடம் fa:dVrid.Vm
பாதருடன் fa:dVrUd.Vn பாதருடன் fa:dVrUd.Vn
பாதரில்லாமல் fa:dVrilla:mVl பாதரில்லாமல் fa:dVrilla:mVl




பப pVpV பப pVpV
தீப் di:p
டிரேயின் t.re:jn டிரேயின் t.re:jn
பைக் baIk பைக் baIk
பைக்கில் baIkkIl பைக்கில் baIkkIl
புட் fud. புட் fud.
உப்ப ubbV உப்ப ubbV
ஜென் zen ஜென் zen
சோப்ரா tSo:pra:


+ 270
- 15
dictsource/ta_rules
File diff suppressed because it is too large
View File


+ 4
- 1
dictsource/te_rules View File

.group జ .group జ
జ Ja జ Ja
జ (B J జ (B J
జ్ఞ gna
జ్ఞ (B gn



.group ఝ .group ఝ
ఝ J#a ఝ J#a


ూ u: ూ u:


ృ r-
ృ ru


ౄ r-: ౄ r-:



+ 35
- 13
dictsource/ur_list View File

ٰ ,alIfmaqs'u:R,a ٰ ,alIfmaqs'u:R,a
ّ t,aSd'i:d ّ t,aSd'i:d
ً d'o:zab'aR ً d'o:zab'aR
ْ sUk'u:n




// The numbers // The numbers
تھیں t#'i:n $u تھیں t#'i:n $u


// Pronunciation exceptions // Pronunciation exceptions
پاکستان p'a:k'Ist'a:n
پبلک p'abl,Ik
آئرش 'a:IR,IS
برگ b'aRg
(آئیس کریم) a:'i:s||kR'i:m
آئیسنگ ,a:is'Ing
آئدیلسٹ 'a:Id.,i:;al,Ist.
آئڈیلزم 'a:Id.,i:;al,Izam
چوں c'u:n
(آئینہ بین) a:'i:n,a||b'i:n
بیں b'i:n
دکھائی dIk#'a:i
کچھ k'Uc# $u کچھ k'Uc# $u
لنکس l'Ink,s لنکس l'Ink,s
لفظ l'afz. لفظ l'afz.
(موقع پر) m'Oqe:||p'aR (موقع پر) m'Oqe:||p'aR
مصنوعی m,as.n'u:i مصنوعی m,as.n'u:i
ذوالفقار D,UlfIq'a:R ذوالفقار D,UlfIq'a:R
بھٹو b#'Ut.o:
منقلب m,Unq'alIb منقلب m,Unq'alIb
بجز b'aJUz بجز b'aJUz
تعیں ta'i:n $u
تعیں ta:'i:n
بہ b'a بہ b'a
مسمار m,Ism'a:R مسمار m,Ism'a:R
شکنی S'Ikn,i: شکنی S'Ikn,i:
معتقد mOt'aqId معتقد mOt'aqId
لسٹ l'Ist. لسٹ l'Ist.
دور d'u:R دور d'u:R
دوری d'u:Ri:
دوری d'u:Ri
پولنگ po:l'Ing پولنگ po:l'Ing
لہٰذا lIH'a:Da:
الحق ,UlH'aq الحق ,UlH'aq
مصنوعی m,as.n'u:i:
مصنوعی m,as.n'u:i
پیشکش p,e:Sk'aS پیشکش p,e:Sk'aS
باطن b'a:tIn باطن b'a:tIn
پرنٹ pRInt. پرنٹ pRInt.
جاوید Ja:v'e:d جاوید Ja:v'e:d
قیمت qi:m'at
قیمت qim'at
ناشر n'a:SIR ناشر n'a:SIR
نسبت n,Isb'at نسبت n,Isb'at
تناسب tan'a:sUb تناسب tan'a:sUb
نوع n'O
ایجاد i:J'a:d
نوع n'o:
ایجاد iJ'a:d
وراثت v,IRa:s'at وراثت v,IRa:s'at
وارث v'a:RIs وارث v'a:RIs
تناظر tan'a:z.UR تناظر tan'a:z.UR
بینائی bi:n'a:i:
بینائی bin'a:i
قابل q'a:bIl قابل q'a:bIl
سکتیں s,akt'i:n سکتیں s,akt'i:n
مجموعہ m,aJm'u:a:
مجموعہ m,aJm'u:a
پراسرار p,UR,asR'a:R پراسرار p,UR,asR'a:R
مجموعے m,aJm'u:e: مجموعے m,aJm'u:e:
اتصال ,ItIs.'a:l اتصال ,ItIs.'a:l
ورنہ v'aRna ورنہ v'aRna
علمی 'Ilm,i: علمی 'Ilm,i:
فقدان f,Uqd'a:n فقدان f,Uqd'a:n
لسانی lIs'a:ni:
بازگشت b,a:zg'aSt بازگشت b,a:zg'aSt
نقسان n,Uqs'a:n نقسان n,Uqs'a:n
شکستہ SIk'ast,a
شکستہ SIk'ast@,a
بھٹو b#'Ut.o:
انگلش 'Ingl,IS
راغب R'a:QIb
اٹلی 'It.l,i:
سپین sp'e:n
فاتح f'a:tEH
سنسان sUns'a:n
ٹاسک t.'a:sk
فورس f'o:Rs
کلک klIk
فکسنگ f,Iks'Ing
مانند ma:n'Ind $1
اتار Ut'a:R
آرکائیو ,a:Rk'a:jv

+ 14
- 1
dictsource/ur_rules View File

آ a: آ a:
آتش 'a:tIS آتش 'a:tIS
آہست a:H'Ist آہست a:H'Ist
آئ (L02 'a:I




.group ع .group ع
_) بدل (L02 bad'al _) بدل (L02 bad'al
بوڑھ b'u:r.h بوڑھ b'u:r.h
_) بے (P2 b'e: _) بے (P2 b'e:
بحران b,OHR'a:n




.group پ .group پ
پوچھ p'u:c# پوچھ p'u:c#
پیچھ p'i:c# پیچھ p'i:c#
پھونک p#'u:nk پھونک p#'u:nk
_) پور (L01 p'u:R


.group ت .group ت
ت tV ت tV
تجرب taJ'aRb تجرب taJ'aRb
_) تیار t,ai:;'a:R _) تیار t,ai:;'a:R
_) تیسر t'i:sR _) تیسر t'i:sR
@) تا (_S2 t'a:
@) تی (_S2 t'i:
@) تے (_S2 t'e:
_) توا t'ava:


.group ٹ .group ٹ
ٹ t.V ٹ t.V
ٹریفک t.R'e:fIk ٹریفک t.R'e:fIk
_) ٹکڑ t.'Ukr. _) ٹکڑ t.'Ukr.
_) ٹہ (L02 t.'EH _) ٹہ (L02 t.'EH
_) ٹرین t.R'e:n




.group ث .group ث
ڈّ (L01 d.d. ڈّ (L01 d.d.
ڈھونڈ d.#'u:nd. ڈھونڈ d.#'u:nd.
@) ڈز (_ d.z @) ڈز (_ d.z
ڈرائیور d.R'a:jvaR


.group ذ .group ذ
ذ DV ذ DV
سیدھ s'i:d# سیدھ s'i:d#
سیاست sja:s'at سیاست sja:s'at
سرگرم s,aRg'aRm سرگرم s,aRg'aRm
@) ستان (_ Ist'a:n
@) ستانی (_ Ist'a:ni


.group ش .group ش
ش SV ش SV
_) نوا n'ava: _) نوا n'ava:
_) نما n'Uma: _) نما n'Uma:
_) نماز nam'a:z _) نماز nam'a:z
@) نا (_S2 n'a:
@) نی (_S2 n'i:
@) نے (_S2 n'e:


.group ں .group ں
ں n // this should nasalize the vowel ں n // this should nasalize the vowel
.group 0xe0a5 // devanagari .group 0xe0a5 // devanagari
0xe0a5 _^_NE 0xe0a5 _^_NE




+ 536
- 314
dictsource/vi_rules
File diff suppressed because it is too large
View File


+ 7
- 3
docs/dictionary.html View File

<td><strong>#</strong></td> <td><strong>#</strong></td>
<td>(English specific) change the next "e" into a special character "E"</td> <td>(English specific) change the next "e" into a special character "E"</td>
</tr> </tr>
<tr>
<td><strong>$noprefix</strong></td>
<td>Only use this rule if the word is not a retranslation after removing a prefix.</td>
</tr>
<tr> <tr>
<td><strong>$w_alt<br>$w_alt2<br>$w_alt3</strong></td> <td><strong>$w_alt<br>$w_alt2<br>$w_alt3</strong></td>
<td>Only use this rule if the word is found in the *_list file with the <b>$alt</b>, <b>$alt2</b> or <b>$alt3</b> attribute respectively.</td> <td>Only use this rule if the word is found in the *_list file with the <b>$alt</b>, <b>$alt2</b> or <b>$alt3</b> attribute respectively.</td>
</ul> </ul>


eg. eg.
<pre> @) ly (_$2 lI // "ly", at end of a word with at least one other
<pre> @) ly (_S2 lI // "ly", at end of a word with at least one other
// syllable, is a suffix pronounced [lI]. Remove // syllable, is a suffix pronounced [lI]. Remove
// it and retranslate the word. // it and retranslate the word.


_) un (@P2 ¬Vn // "un" at the start of a word is an unstressed
_) un (@P2 %Vn // "un" at the start of a word is an unstressed
// prefix pronounced [Vn] // prefix pronounced [Vn]
_) un (i ju: // ... except in words starting "uni" _) un (i ju: // ... except in words starting "uni"
_) un (inP2 ,Vn // ... but it is for words starting "unin" _) un (inP2 ,Vn // ... but it is for words starting "unin"
</pre> </pre>
S and P must be at the end of the &lt;post&gt; string. S and P must be at the end of the &lt;post&gt; string.
<p> <p>
S&lt;number&gt; may be followed by additonal letters (eg. S2ei ). Some of these are probably specific to English, but similar functions could be made for other languages.
S&lt;number&gt; may be followed by additional letters (eg. S2ei ). Some of these are probably specific to English, but similar functions could be made for other languages.


<ul><table> <ul><table>
<tbody> <tbody>

+ 6
- 5
docs/phonemes.html View File

<table> <table>
<tbody valign=top> <tbody valign=top>
<tr> <tr>
<td width=25><code>[p]</code><td width=80>
<td width=25><code>[b]</code><td width=80>
<td width=25><code>[p]</code><td width=150>
<td width=25><code>[b]</code><td width=150>
<tr> <tr>
<td><code>[t]</code><td> <td><code>[t]</code><td>
<td><code>[d]</code><td> <td><code>[d]</code><td>
<table> <table>
<tbody valign=top> <tbody valign=top>
<tr><td width=25><code>[@]</code> <tr><td width=25><code>[@]</code>
<td width=60>alph<b>a</b><td width=80>schwa
<td width=60>alph<b>a</b><td width=400>schwa


<tr><td><code>[3]</code> <tr><td><code>[3]</code>
<td>bett<b>er</b><td>rhotic schwa. In British English this is the same as <code>[@]</code>, but it includes 'r' colouring in American and other rhotic accents. In these cases a separate <code>[r]</code> should not be included unless it is followed immediately by another vowel. <td>bett<b>er</b><td>rhotic schwa. In British English this is the same as <code>[@]</code>, but it includes 'r' colouring in American and other rhotic accents. In these cases a separate <code>[r]</code> should not be included unless it is followed immediately by another vowel.


<tr><td><code>[a]</code><td>tr<b>a</b>p <tr><td><code>[a]</code><td>tr<b>a</b>p
<tr><td><code>[aa]</code><td>b<b>a</b>th<td>This is <code>[a]</code> in some accents, <code>[A:]</code> in others. <tr><td><code>[aa]</code><td>b<b>a</b>th<td>This is <code>[a]</code> in some accents, <code>[A:]</code> in others.
<tr><td><code>[a2]</code><td><b>a</b>bout<td>This may be <code>[@]</code> or may be a more open schwa.
<tr><td><code>[a#]</code><td><b>a</b>bout<td>This may be <code>[@]</code> or may be a more open schwa.
<tr><td><code>[A:]</code><td>p<b>al</b>m <tr><td><code>[A:]</code><td>p<b>al</b>m
<tr><td><code>[A@]</code><td>st<b>ar</b>t <tr><td><code>[A@]</code><td>st<b>ar</b>t
<tr><td><p> <tr><td><p>


</tbody> </tbody>
</table> </table>

<p>
<code> [:] </code> can be used to lengthen a vowel, eg <code> [e:]</code>


</body> </body>
</html> </html>

+ 14
- 0
docs/voices.html View File

Alphabets names include: latin, cyr (cyrillic), ar (arabic). The default language for latin alphabet is English. Alphabets names include: latin, cyr (cyrillic), ar (arabic). The default language for latin alphabet is English.
</dd> </dd>
<p> <p>
<dt>
<strong>dictdialect &nbsp;&lt;dialect&gt;</strong><br>
<dd>
Words can be marked in the *_list or *_rules file to be spoken using a foreign voice. This <b>dictdialect</b> attribute
can be used to specify which dialect of the foreign language should be used, instead of the default dialect.
The currently available dialects are:<br>
<b>en-us</b> (US English)<br>
<b>es-la</b> (Latin American Spanish).<br>
eg.
<pre> dictdialect en-us
</pre>
This means that any words or rules which are maked with _^_EN will be spoken with the US English voice instead of the default UK English voice.
</dd>
<p>
Additional attributes are available to set various internal options which control how language is processed. These would normally be set in the program code rather than in a voice file. Additional attributes are available to set various internal options which control how language is processed. These would normally be set in the program code rather than in a voice file.
</ul> </ul>
<hr> <hr>

BIN
espeak-data/mbrola_ph/in1_phtrans View File


BIN
espeak-data/mbrola_ph/ir1_phtrans View File


+ 1
- 1
espeak-data/voices/en-us View File

dictrules 3 6 dictrules 3 6
option reduce_t 1 option reduce_t 1


stressLength 140 120 190 170 0 0 255 290
stressLength 140 120 190 170 0 0 255 300
stressAmp 17 16 19 19 19 19 21 19 stressAmp 17 16 19 19 19 19 21 19


replace 03 I i replace 03 I i

+ 3
- 1
espeak-data/voices/europe/it View File

name italian name italian
language it language it
gender male gender male


replace 03 i I
tunes s4 c4 q4 e4


replace 03 i I

+ 9
- 4
espeak-data/voices/mb/mb-ir1 View File

name ir-mbrola-1
// Persian (Farsi) Mbrola voice need ir1 diphone file.
name Farsi-mb-ir1
language fa language fa

gender male gender male

phonemes fa phonemes fa

mbrola ir1 ir1_phtrans mbrola ir1 ir1_phtrans
// "speed 82" adjust default speed of "mb-ir1" with eSpeak "fa".
speed 82
// Please don't change this value. It's result of several tests.

// "dictrules 1" read English text as Pinglish (Persian text that written with English alphabets).
// dictrules 1
// If you want use Pinglish instead of English for reading, just delete // from start of above line.

+ 6
- 0
espeak-data/voices/other/lfn View File

name lingua franca nova
language lfn
gender male
phonemes base2
numbers 2 3

+ 3
- 0
espeak-data/voices/test/gd View File

name scottish-gaelic-test
language gd

+ 1
- 1
espeak-data/voices/test/om View File

name oromiffa-test
name oromo-test
language om language om

+ 2
- 0
espeak-data/voices/test/or View File

name oriya-test
language or

+ 1
- 2
espeak-data/voices/test/sl View File

name slovenian-test name slovenian-test
language sl language sl
stressLength 160 150 240 240 240 240 300 320

+ 45
- 3
mkdictlist View File



voices = set() voices = set()
dictionaries = {} dictionaries = {}
phoneme_data = set()


# Map voice names to dictionaries when these do not match. # Map voice names to dictionaries when these do not match.
special_voices = { special_voices = {
'zh-yue': 'zhy', 'zh-yue': 'zhy',
} }


# Support for extended dictionaries.
extended_dictionaries = {
'ru': 'ru_listx',
'zh': 'zh_listx',
'zhy': 'zhy_list',
}

exclude_voices = [] exclude_voices = []


def find_voices(path): def find_voices(path):
elif filename not in exclude_voices: elif filename not in exclude_voices:
voices.add(filename) voices.add(filename)


def find_phoneme_data(path):
for filename in os.listdir(path):
phondata_path = os.path.join(path, filename)
if filename.startswith('ph_'):
phoneme_data.add(phondata_path)

find_voices('espeak-data/voices') find_voices('espeak-data/voices')
find_phoneme_data('phsource')


for filename in os.listdir('dictsource'): for filename in os.listdir('dictsource'):
if filename.endswith('_rules') or filename.endswith('_list') or filename.endswith('_listx'):
if filename.endswith('_rules') or filename.endswith('_list') or filename in ['bg_listx', 'it_listx']:
dic, cat = filename.split('_') dic, cat = filename.split('_')
if dic in voices: if dic in voices:
if not dic in dictionaries.keys(): if not dic in dictionaries.keys():
dictionaries[dic] = [] dictionaries[dic] = []
dictionaries[dic].append('dictsource/%s' % filename) dictionaries[dic].append('dictsource/%s' % filename)


def write_phoneme_data_rules(f):
f.write('##### phoneme data:\n')
f.write('\n')
f.write('espeak-data/phondata: phsource/phonemes.stamp\n')
f.write('espeak-data/phondata-manifest: phsource/phonemes.stamp\n')
f.write('espeak-data/phonindex: phsource/phonemes.stamp\n')
f.write('espeak-data/phontab: phsource/phonemes.stamp\n')
f.write('espeak-data/intonations: phsource/phonemes.stamp\n')
f.write('\n')
f.write('phsource/phonemes.stamp: \\\n')
for phonfile in sorted(phoneme_data):
f.write('\t%s \\\n' % phonfile)
f.write('\tphsource/phonemes\n')
f.write('\tESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile && touch $@\n')
f.write('\n')

def write_dictionary_make_rules(f): def write_dictionary_make_rules(f):
f.write('##### dictionaries:\n') f.write('##### dictionaries:\n')
f.write('\n') f.write('\n')
f.write('%s: espeak-data/%s_dict\n' % (name, name)) f.write('%s: espeak-data/%s_dict\n' % (name, name))
f.write('dictsource/%s_extra:\n' % name) f.write('dictsource/%s_extra:\n' % name)
f.write('\ttouch dictsource/%s_extra\n' % name) f.write('\ttouch dictsource/%s_extra\n' % name)
f.write('espeak-data/%s_dict: src/espeak espeak-data/phontab %s dictsource/%s_extra\n' % (name, ' '.join(sorted(files)), name))
if name in extended_dictionaries.keys():
ext = extended_dictionaries[name]
f.write('dictsource/%s:\n' % ext)
f.write('\tln -svf extra/%s dictsource/\n' % ext)
f.write('if HAVE_%s_EXTENDED_DICTIONARY\n' % name.upper())
f.write('espeak-data/%s_dict: src/espeak phsource/phonemes.stamp %s dictsource/%s_extra dictsource/%s\n' % (name, ' '.join(sorted(files)), name, ext))
f.write('else\n')
f.write('espeak-data/%s_dict: src/espeak phsource/phonemes.stamp %s dictsource/%s_extra\n' % (name, ' '.join(sorted(files)), name))
if name in extended_dictionaries.keys():
f.write('endif\n')
f.write('\tcd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=%s && cd ..\n' % name) f.write('\tcd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=%s && cd ..\n' % name)


try: try:


if filename: if filename:
with open(filename, 'r') as f: with open(filename, 'r') as f:
prelude = f.read().split('##### dictionaries:\n')[0]
prelude = f.read().split('##### phoneme data:\n')[0]
with open(filename, 'w') as f: with open(filename, 'w') as f:
f.write(prelude) f.write(prelude)
write_phoneme_data_rules(f)
write_dictionary_make_rules(f) write_dictionary_make_rules(f)
else: else:
write_phoneme_data_rules(sys.stdout)
write_dictionary_make_rules(sys.stdout) write_dictionary_make_rules(sys.stdout)

+ 53
- 0
phsource/intonation View File

nucleus fall 70 18 24 12 nucleus fall 70 18 24 12
endtune endtune


tune s_ml
prehead 46 57
headenv fall 16
head 3 40 60 15 30
headextend 0 63 38 13 0
nucleus0 fall 64 8
nucleus fall 70 18 24 12
endtune



tune c1 tune c1
prehead 46 57 prehead 46 57
headenv fall 16 headenv fall 16
nucleus fall 92 80 76 8 nucleus fall 92 80 76 8
endtune endtune



// italian (by [email protected])

tune s4
prehead 46 57
headenv fall 16
head 4 80 50 -8 -5
headextend 0 63 38 13 0
nucleus0 fall 64 8
nucleus fall 70 18 24 12
endtune

tune c4
prehead 46 57
headenv fall 16
head 4 76 42 -8 -5
headextend 0 63 38 13 0
nucleus0 fall-rise 77 25
nucleus fall-rise2 78 25 24 52
endtune

tune q4
prehead 47 58
headenv fall 16
head 5 75 53 -7 1
headextend 0 60 55 45 60
onset 60 48 62
headlast 60 44 40
nucleus0 fall-rise 95 29
nucleus fall-rise2 92 21 34 79
endtune

tune e4
prehead 46 57
headenv fall 16
head 5 77 53 -7 0
headextend 40 80 75 70 67
headlast 80 72 60
nucleus0 fall 92 8
nucleus fall 88 77 75 10
endtune


+ 259
- 83
phsource/mbrola/ir1 View File

// eSpeak Phonemes to Mbrola
// Persian (Farsi) & English
// mb-ir1 Phonemes Translation
// Seyed Mahmood Taghavi Shahri
// mahmood.taghavi at Gmail.com
// http://www.amardan.ir
// License: GPL
// Release: 2013-11-07


// Long Vowels
// "A"
2 A _ 0 ? a:
2 A A 0 ? a:
2 A u 0 ? a:
2 A i 0 ? a:
2 A a 0 ? a:
2 A e 0 ? a:
2 A o 0 ? a:
0 A NULL 0 a:
// "u"
2 u _ 0 ? u
2 u u 0 ? u
2 u A 0 ? u
2 u i 0 ? u
2 u a 0 ? u
2 u e 0 ? u
2 u o 0 ? u
0 u NULL 0 u
// "i"
2 i _ 0 ? i
2 i i 0 ? i
2 i A 0 ? i
2 i u 0 ? i
2 i a 0 ? i
2 i e 0 ? i
2 i o 0 ? i
0 i NULL 0 i
// Limitation: Some English vowels can not be present or play with only two "ir1" diphones!
// I need ability of combine up to four Mbrola diphones for good eSpeak to Mbrola translation.
// Most English vowels can be present with two or three "ir1" diphones. But for playing them,
// Mbrola "ir1" don't allow consequence of Persian vowels and also begin with a Persian vowel.
// So in most case I forced to add "?" Persian consonant to do work with "ir1" specifications.


// Short Vowels
// "a"
2 a _ 0 ? a
2 a A 0 ? a
2 a u 0 ? a
2 a i 0 ? a
2 a a 0 ? a
2 a e 0 ? a
2 a o 0 ? a
0 a NULL 0 a
// "e"
2 e _ 0 ? e
2 e A 0 ? e
2 e u 0 ? e
2 e i 0 ? e
2 e a 0 ? e
2 e e 0 ? e
2 e o 0 ? e
0 e NULL 0 e
// "o"
2 o _ 0 ? o
2 o A 0 ? o
2 o u 0 ? o
2 o i 0 ? o
2 o a 0 ? o
2 o e 0 ? o
2 o o 0 ? o
0 o NULL 0 o
// Persian vowels
2 A _ 0 ? a:
6 A i 0 ? a:
2 A i 0 y a: // Persian: ریاضی
2 A VWL 0 ? a:
2 A ; 0 ? a:
0 A NULL 0 a:
2 u _ 0 ? u
6 u i 0 ? u
2 u i 0 y u
2 u VWL 0 ? u
2 u ; 0 ? u
0 u NULL 0 u
2 i _ 0 ? i
6 i i 0 ? i
2 i i 0 y i
2 i 3: 0 i // Before phoneme end with "mb-ir1" consonant.
2 i @L 0 i // Before phoneme end with "mb-ir1" consonant.
2 i e@ 0 i // Before phoneme end with "mb-ir1" consonant.
2 i r- 0 i // Before phoneme end with "mb-ir1" consonant.
2 i VWL 0 ? i
2 i ; 0 ? i
0 i NULL 0 i
2 a _ 0 ? a
6 a i 0 ? a
2 a i 0 y a
2 a @L 0 a // Before phoneme end with "mb-ir1" consonant.
2 a VWL 0 ? a
2 a ; 0 ? a // English: specialty and
0 a NULL 0 a
2 e _ 0 ? e
6 e i 0 ? e
2 e i 0 y e
2 e VWL 0 ? e
2 e ; 0 ? e
0 e NULL 0 e
2 o _ 0 ? o
6 o i 0 ? o
2 o i 0 y o
2 o VWL 0 ? o
2 o ; 0 ? o
0 o NULL 0 o


// Consonants in end of words.
// Persian end of words
0 _ NULL 0 NULL
2 _ NULL 0 NULL


0 _ NULL 0 NULL
2 _ NULL 0 NULL
// Persian & English consonants
0 ? NULL 0 ?
0 b NULL 0 b
0 d NULL 0 d
0 dZ NULL 0 j:
0 D NULL 50 z d
0 f NULL 0 f
0 h NULL 0 h
0 j NULL 0 y
0 l NULL 0 l
0 m NULL 0 m
0 n NULL 0 n
0 N NULL 50 n g:
0 p NULL 0 p
0 l/ NULL 0 l
1 q 1 0 q
0 q NULL 0 q
0 r NULL 0 r
0 R NULL 0 r
0 s NULL 0 s
0 S NULL 0 s:
0 t NULL 0 t
0 tS NULL 0 c:
0 T NULL 50 s t
0 v NULL 0 v
0 x NULL 0 x
0 z NULL 0 z
0 Z NULL 0 z:
0 g A 0 g
0 g u 0 g
0 g o 0 g
0 g @5 0 g
0 g A@ 0 g
0 g 0 0 g
0 g V 0 g
0 g u: 0 g
0 g U 0 g
0 g U@ 0 g
0 g O@ 0 g
0 g o@ 0 g
0 g OI 0 g
0 g NULL 0 g:
0 k A 0 k
0 k u 0 k
0 k o 0 k
0 k @5 0 k
0 k A@ 0 k
0 k 0 0 k
0 k V 0 k
0 k u: 0 k
0 k U 0 k
0 k U@ 0 k
0 k O@ 0 k
0 k o@ 0 k
0 k OI 0 k
0 k NULL 0 c


// Persian & English others
0 ; NULL 0 _
0 g- NULL 0 NULL
0 @- NULL 0 NULL


// Consonants
0 dZ NULL 0 j:
0 tS NULL 0 c:
0 R NULL 0 r
1 q 1 0 q
0 Z NULL 0 z:
0 S NULL 0 s:
0 j NULL 0 y
// English vowels
0 w NULL 0 v // English: quite. Arabic: ولَد
8 a NULL 0 ? a
8 i NULL 0 ? i
0 @ NULL 50 ? e
8 3 NULL 50 ? e
2 3 i@ 50 e r // Before phoneme end with "mb-ir1" consonant.
2 3 VWL 50 ? e
2 3 ; 50 ? e
0 3 NULL 50 e r
0 3: NULL 50 ? r
8 @L NULL 50 ? l
2 @L VWL 50 ? l
2 @L ; 50 ? l
0 @L NULL 50 e l
0 @2 NULL 50 ? e
2 @5 g 0 u
2 @5 k 0 u
8 @5 NULL 0 ? u
2 @5 VWL 0 ? u
2 @5 ; 0 ? u
0 @5 NULL 0 u
8 aa NULL 0 ? a
2 aa @L 0 a // Before phoneme end with "mb-ir1" consonant.
2 aa VWL 0 ? a
2 aa ; 0 ? a
0 aa NULL 0 a
0 a# NULL 10 ? e
0 A: NULL 10 ? a:
2 A@ g 10 a: r
2 A@ k 10 a: r
8 A@ NULL 0 ? r
2 A@ VWL 0 ? r
2 A@ ; 0 ? r
0 A@ NULL 10 a: r
8 E NULL 0 ? e
2 E @L 0 e // Before phoneme end with "mb-ir1" consonant.
2 E l/2 0 e // Before phoneme end with "mb-ir1" consonant.
2 E VWL 0 ? e
2 E ; 0 ? e
0 E NULL 0 e
8 e@ NULL 50 ? r
2 e@ VWL 50 ? r
2 e@ ; 50 ? r
0 e@ NULL 50 e r
0 I NULL 50 ? i
8 I2 NULL 0 ? e
2 I2 3: 0 e // Before phoneme end with "mb-ir1" consonant.
2 I2 @L 0 e // Before phoneme end with "mb-ir1" consonant.
2 I2 VWL 0 ? e
2 I2 ; 0 ? e
0 I2 NULL 0 e
8 i: NULL 0 ? i
2 i: @L 0 i // Before phoneme end with "mb-ir1" consonant.
2 i: VWL 0 ? i
2 i: ; 0 ? i
0 i: NULL 0 i
0 i@ NULL 50 y r
2 0 g 0 a:
2 0 k 0 a:
8 0 NULL 0 ? a:
2 0 @L 0 a: // Before phoneme end with "mb-ir1" consonant.
2 0 VWL 0 ? a:
2 0 ; 0 ? a:
0 0 NULL 0 a:
2 V g 0 a:
2 V k 0 a:
8 V NULL 0 ? a:
2 V 3: 0 a: // Before phoneme end with "mb-ir1" consonant.
2 V @L 0 a: // Before phoneme end with "mb-ir1" consonant.
2 V A@ 0 a: // Before phoneme end with "mb-ir1" consonant.
2 V e@ 0 a: // Before phoneme end with "mb-ir1" consonant.
2 V VWL 0 ? a:
2 V ; 0 ? a:
0 V NULL 0 a:
2 u: g 0 u
2 u: k 0 u
8 u: NULL 0 ? u
2 u: @L 0 u // Before phoneme end with "mb-ir1" consonant.
2 u: VWL 0 ? u
2 u: ; 0 ? u
0 u: NULL 0 u
2 U g 0 u
2 U k 0 u
8 U NULL 0 ? u
2 U VWL 0 ? u
2 U ; 0 ? u
0 U NULL 0 u
2 U@ g 90 o r
2 U@ k 90 o r
8 U@ NULL 0 ? o
2 U@ VWL 0 ? o
2 U@ ; 0 ? o
0 U@ NULL 90 o r
0 O: NULL 10 ? a:
2 O@ g 70 o r
2 O@ k 70 o r // English: recording
8 O@ NULL 0 ? o
2 O@ VWL 10 ? o
2 O@ ; 10 ? o
0 O@ NULL 70 o r
2 o@ g 70 o r
2 o@ k 70 o r
8 o@ NULL 0 ? o
2 o@ VWL 0 ? o
2 o@ ; 0 ? o
0 o@ NULL 70 o r
0 aI NULL 0 ? a:y
0 eI NULL 0 ? ey
2 OI g 0 oy
2 OI k 0 oy
8 OI NULL 0 ? oy
2 OI VWL 0 ? oy
2 OI ; 0 ? oy
0 OI NULL 0 oy
0 aU NULL 0 ? ow
0 oU NULL 0 ? ow
8 aI@ NULL 0 ? ay
2 aI@ VWL 0 ? ay
2 aI@ ; 0 ? ay
0 aI@ NULL 90 ay ?
0 aU@ NULL 50 ? o
0 l/2 NULL 0 l // English: child
0 r- NULL 0 r // English: are available
0 i@3 NULL 50 ? r // English: career
0 I# NULL 50 ? n // English: genuine
0 VR NULL 50 ? r // English: sir
0 n^ NULL 90 ? n // English: n
0 th NULL 50 s t // English: th
0 ts NULL 50 t s // English: mhz
0 t# NULL 0 t // English: gettin
0 n- NULL 50 ? n // English: gettin
0 O~ NULL 50 ? n // English: frisson
0 tS; NULL 0 c: // English: ћ
0 Q NULL 0 g: // English: Miguel
0 Q" NULL 0 q // English: غ
0 z. NULL 0 z: // English: ڑ
0 IR NULL 50 ? r
0 C NULL 0 c: // German ich.
0 Y NULL 0 ? o // German ö, French oe.
0 l^ NULL 50 g: l // Italian gli.


// "g"
0 g A 0 g
0 g u 99 g ?
0 g o 0 g
0 g NULL 0 g:
// "k"
0 k A 0 k
0 k u 0 k
0 k o 0 k
0 k NULL 0 c
// "l"
0 l/ NULL 0 l


// Others
0 ; NULL 0 NULL
0 g- NULL 0 NULL
0 @- NULL 0 NULL

+ 6
- 0
phsource/ph_aragon View File

FMT(vowel/ee_1) FMT(vowel/ee_1)
endphoneme endphoneme


phoneme e#
vowel starttype #e endtype #e
length 200
ChangeIfStressed(e)
ChangePhoneme(NULL)
endphoneme


phoneme O phoneme O
vowel starttype #o endtype #o vowel starttype #o endtype #o

+ 8
- 0
phsource/ph_dutch View File

CALL base/z CALL base/z
endphoneme endphoneme



phoneme l
import_phoneme en/l
endphoneme

phoneme x2
import_phoneme af/x2
endphoneme

+ 19
- 1
phsource/ph_english View File

IF PreVoicing THEN IF PreVoicing THEN
FMT(d/x_tap) FMT(d/x_tap)
ENDIF ENDIF
FMT(d/tap2) addWav(x/d, 70)
FMT(d/tap2) addWav(x/d, 50)
endphoneme endphoneme




endphoneme endphoneme




phoneme E# // [@] in unstressed syllables, if next vowel is stressed
vowel starttype #e endtype #e

IF thisPh(isUnstressed) AND nextVowel(isVowel) AND nextVowel(isStressed) THEN
ChangePhoneme(@)
ENDIF

ChangePhoneme(E)
endphoneme


phoneme I phoneme I
vowel starttype #i endtype #i vowel starttype #i endtype #i
length 130 length 130
endphoneme endphoneme




phoneme 02 // becomes V in en-us
vowel starttype #o endtype #o
length 140
ChangePhoneme(0)
endphoneme


phoneme V phoneme V
vowel starttype #a endtype #@ vowel starttype #a endtype #@
length 140 length 140

+ 7
- 0
phsource/ph_english_sc View File

endphoneme endphoneme




phoneme 02 // becomes V in en-us
vowel starttype #o endtype #o
length 140
ChangePhoneme(V)
endphoneme


phoneme V phoneme V
vowel starttype #a endtype #@ vowel starttype #a endtype #@
length 140 length 140

+ 25
- 6
phsource/ph_english_us View File

vowel starttype #@ endtype #@ vowel starttype #@ endtype #@
ipa ɚ ipa ɚ
unstressed unstressed
length 200
length 210
IfNextVowelAppend(r-) IfNextVowelAppend(r-)
FMT(vwl_en_us/3_us) FMT(vwl_en_us/3_us)
endphoneme endphoneme
endphoneme endphoneme




phoneme 02 // becomes V in en-us
vowel starttype #o endtype #o
length 140
ChangePhoneme(V)
endphoneme


phoneme V phoneme V
vowel starttype #a endtype #@ vowel starttype #a endtype #@
length 170 length 170
Vowelin f1=0 f2=1700 -300 300 f3=-100 80 Vowelin f1=0 f2=1700 -300 300 f3=-100 80
Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20


IF nextPhW(isVowel) AND nextPh(isUnstressed) AND NOT next2PhW(n) THEN
IF prevPhW(isVowel) THEN
ChangePhoneme(t#)
ELIF prevPhW(n) THEN
WAV(ustop/t, 60)
IF nextPhW(isVowel) AND nextPh(isUnstressed) THEN
IF NOT next2PhW(n) OR nextPhW(3:) THEN
IF prevPhW(isVowel) THEN
ChangePhoneme(t#)
ELIF prevPhW(n) THEN
WAV(ustop/t, 60)
ENDIF
ENDIF ENDIF
ENDIF ENDIF


phoneme t2 // [t] which doesn't reduce phoneme t2 // [t] which doesn't reduce
import_phoneme base/t import_phoneme base/t
endphoneme endphoneme

phoneme ? // glottal stop
vls glt stop
lengthmod 1 // 5? longer preceding vowel
nolink
Vowelin glstop
Vowelout glstop
WAV(ustop/null)
endphoneme


+ 7
- 0
phsource/ph_english_wm View File

endphoneme endphoneme




phoneme 02 // becomes V in en-us
vowel starttype #o endtype #o
length 140
ChangePhoneme(V)
endphoneme


phoneme V phoneme V
vowel starttype #o endtype #o vowel starttype #o endtype #o
ipa ʊ ipa ʊ

+ 76
- 0
phsource/ph_gujarati View File

// Phonemes for gujarati // Phonemes for gujarati
// This inherits from ph_hindi // This inherits from ph_hindi


phoneme aI
vowel long starttype #@ endtype #i
length 240
long
FMT(vdiph/@i_4)
endphoneme

phoneme aI~
vowel long starttype #@ endtype #i
length 270
long
FMT(vnasal/ai_n)
endphoneme


phoneme aU
vowel long starttype #a endtype #u
length 240
long
FMT(vdiph/a#u)
endphoneme

phoneme aU~
vowel long starttype #a endtype #u
length 300
long
FMT(vnasal/au_n)
endphoneme


phoneme V
vowel flag1 starttype #@ endtype #@
length 140

IF thisPh(isWordStart) THEN
FMT(vowel/V_2)
RETURN
ENDIF

IF thisPh(isNotStressed) THEN
length 130

IF thisPh(isWordEnd) AND NOT thisPh(isFirstVowel) THEN
ChangePhoneme(NULL)
ENDIF

IF prev2PhW(isVowel) AND NOT nextVowel(isFlag1) THEN
IF nextPhW(isNotVowel) AND nextPh(isWordEnd) THEN
// don't delete schwa before a word-final consonant
ELSE
ChangePhoneme(NULL)
ENDIF
ENDIF

IF prevPh(isPalatal) AND NOT nextPh(H) THEN
ChangePhoneme(@3)
ELSEIF prevPh(r) THEN
ChangePhoneme(@2)
ELSE
ChangePhoneme(@)
ENDIF
ENDIF
IF prevPh(w) THEN
FMT(vowel/V_4)
ENDIF

FMT(vowel/V_2)
endphoneme

phoneme o:
vowel long starttype #o endtype #o
length 227
FMT(vowel/o)
endphoneme


+ 26
- 15
phsource/ph_italian View File


//==================================================== //====================================================
// Italian // Italian
//==================================================== //====================================================


phoneme a phoneme a
vowel starttype #a endtype #a vowel starttype #a endtype #a
length 180
length 160
ChangeIfNotStressed(a/) ChangeIfNotStressed(a/)
FMT(vowel/a) FMT(vowel/a)
endphoneme endphoneme


phoneme a/ phoneme a/
vowel starttype #@ endtype #@ vowel starttype #@ endtype #@
length 180
length 140
IF thisPh(isWordEnd) THEN IF thisPh(isWordEnd) THEN
FMT(vowel/a#_4) FMT(vowel/a#_4)
ENDIF ENDIF


phoneme e phoneme e
vowel starttype #e endtype #e vowel starttype #e endtype #e
length 170
length 150
ChangeIfNotStressed(e/) ChangeIfNotStressed(e/)
FMT(vowel/e_2) FMT(vowel/e_2)
endphoneme endphoneme


phoneme e/ phoneme e/
vowel starttype #e endtype #e vowel starttype #e endtype #e
length 170
length 140
IF nextPhW(isNasal) OR nextPhW(isLiquid) THEN IF nextPhW(isNasal) OR nextPhW(isLiquid) THEN
FMT(vowel/e_mid2) FMT(vowel/e_mid2)
ELSE ELSE


phoneme E phoneme E
vowel starttype #e endtype #e vowel starttype #e endtype #e
length 170
length 145
ChangeIfUnstressed(e/) // [E] only in stressed syllables ? ChangeIfUnstressed(e/) // [E] only in stressed syllables ?
FMT(vowel/e_mid) FMT(vowel/e_mid)
endphoneme endphoneme


phoneme i# // Used for 'gia_' where [i] is only spoken if stressed phoneme i# // Used for 'gia_' where [i] is only spoken if stressed
vowel starttype #i endtype #i vowel starttype #i endtype #i
length 140
length 145
ChangeIfNotStressed(NULL) ChangeIfNotStressed(NULL)
ChangePhoneme(i) ChangePhoneme(i)
endphoneme endphoneme


phoneme I phoneme I
vowel starttype #i endtype #i vowel starttype #i endtype #i
length 150
length 140
IfNextVowelAppend(;) IfNextVowelAppend(;)
FMT(vowel/i_4) FMT(vowel/i_4)
endphoneme endphoneme


phoneme o phoneme o
vowel starttype #o endtype #o vowel starttype #o endtype #o
length 170
length 150
ChangeIfNotStressed(o/) ChangeIfNotStressed(o/)
FMT(vowel/o) FMT(vowel/o)
endphoneme endphoneme


phoneme o/ phoneme o/
vowel starttype #o endtype #o vowel starttype #o endtype #o
length 170
length 140
IF nextPhW(isNasal) OR nextPhW(isLiquid) THEN IF nextPhW(isNasal) OR nextPhW(isLiquid) THEN
FMT(vowel/oo_1) FMT(vowel/oo_1)
ELSE ELSE


phoneme O phoneme O
vowel starttype #o endtype #o vowel starttype #o endtype #o
length 170
length 150
ChangeIfUnstressed(o/) // [O] only in stressed syllables ? ChangeIfUnstressed(o/) // [O] only in stressed syllables ?
FMT(vowel/oo_4) FMT(vowel/oo_4)
endphoneme endphoneme


phoneme u phoneme u
vowel starttype #u endtype #u vowel starttype #u endtype #u
length 160
length 150
ChangeIfNotStressed(U) ChangeIfNotStressed(U)
FMT(vowel/u_bck) FMT(vowel/u_bck)
endphoneme endphoneme


phoneme U phoneme U
vowel starttype #u endtype #u vowel starttype #u endtype #u
length 160
length 140
FMT(vowel/u_bck) FMT(vowel/u_bck)
endphoneme endphoneme




phoneme aU phoneme aU
vowel starttype #a endtype #o vowel starttype #a endtype #o
length 270
length 300
FMT(vdiph/aoo) FMT(vdiph/aoo)
endphoneme endphoneme




phoneme l^ phoneme l^
import_phoneme base/l^ import_phoneme base/l^
Length 140
Length 130
endphoneme endphoneme

phoneme ts
import_phoneme consonants/ts
voicingswitch ts
endphoneme

phoneme dz
import_phoneme consonants/dz
voicingswitch z
lengthmod 3
endphoneme


+ 41
- 0
phsource/ph_malayalam View File

endphoneme endphoneme





// suggested by Prasenjit Sen, but perhaps not needed?
// ml_rules changes [p], [t], [k] to [b], [d], [g] in non-initial
// positions

phoneme p
import_phoneme consonants/p-
voicingswitch b

IF thisPh(isWordStart) THEN
CALL base/p
ELIF thisPh(isWordEnd) AND NOT thisPh(isFirstVowel) THEN
ChangePhoneme(b)
ENDIF
endphoneme


phoneme t
import_phoneme base/t[
voicingswitch d

IF thisPh(isWordStart) THEN
CALL base/t
ELIF thisPh(isWordEnd) AND NOT thisPh(isFirstVowel) THEN
ChangePhoneme(d)
ENDIF
endphoneme


phoneme k
import_phoneme consonants/k-
voicingswitch g

IF thisPh(isWordStart) THEN
CALL base/k
ELIF thisPh(isWordEnd) AND NOT thisPh(isFirstVowel) THEN
ChangePhoneme(g)
ENDIF
endphoneme



+ 95
- 0
phsource/ph_manipuri View File


//====================================================
// Manipuri, inherits from Bengali
//====================================================


phoneme a
vowel starttype #a endtype #a
length 225
IF thisPh(isWordEnd) AND thisPh(isUnstressed) THEN
FMT(vowel/a#_2)
ENDIF
FMT(vowel/a_3)
endphoneme


phoneme i
vowel starttype #i endtype #i
length 210
FMT(vowel/i_6)
endphoneme


phoneme u
vowel starttype #u endtype #u
length 210
FMT(vowel/u)
endphoneme


phoneme e
vowel starttype #e endtype #e
length 210
FMT(vowel/e)
endphoneme


phoneme &
vowel starttype #a endtype #a
length 210
FMT(vowel/&_2)
endphoneme


phoneme o
vowel starttype #o endtype #o
length 210
IF nextPhW(w) THEN
length 170
ENDIF
FMT(vowel/o)
endphoneme


phoneme O
vowel starttype #o endtype #o
length 200
FMT(vowel/oo_5)
endphoneme


phoneme tS
vls pla afr sibilant
voicingswitch dZ
lengthmod 2
Vowelin f1=0 f2=2300 200 400 f3=-100 80

IF nextPh(isPause2) THEN
WAV(ustop/tsh_unasp2)
ENDIF
WAV(ustop/tsh_unasp2)
endphoneme


phoneme tS#
vls pla afr sibilant
voicingswitch dZ
lengthmod 2
Vowelin f1=0 f2=2300 200 400 f3=-100 80

IF nextPh(isPause2) THEN
WAV(ustop/tsh_)
ENDIF
WAV(ustop/tsh)
endphoneme






phoneme ~
virtual
endphoneme


+ 105
- 0
phsource/ph_oriya View File


//====================================================
// Oriya, inherits from Bengali
//====================================================


phoneme V // inherent vowel, can be [O] or [o]
vowel flag1 starttype #o endtype #o
length 200

IF thisPh(isWordEnd) AND prevPhW(isNotVowel) THEN
ChangePhoneme(O)
ENDIF
endphoneme


phoneme a
vowel starttype #a endtype #a
length 225
IF thisPh(isWordEnd) AND thisPh(isUnstressed) THEN
FMT(vowel/a#_2)
ENDIF
FMT(vowel/a_3)
endphoneme


phoneme i
vowel starttype #i endtype #i
length 210
FMT(vowel/i_6)
endphoneme


phoneme u
vowel starttype #u endtype #u
length 210
FMT(vowel/u)
endphoneme


phoneme e
vowel starttype #e endtype #e
length 210
FMT(vowel/e)
endphoneme


phoneme &
vowel starttype #a endtype #a
length 210
FMT(vowel/&_2)
endphoneme


phoneme o
vowel starttype #o endtype #o
length 210
IF nextPhW(w) THEN
length 170
ENDIF
FMT(vowel/o)
endphoneme


phoneme O
vowel starttype #o endtype #o
length 200
FMT(vowel/oo_5)
endphoneme


phoneme tS
vls pla afr sibilant
voicingswitch dZ
lengthmod 2
Vowelin f1=0 f2=2300 200 400 f3=-100 80

IF nextPh(isPause2) THEN
WAV(ustop/tsh_unasp2)
ENDIF
WAV(ustop/tsh_unasp2)
endphoneme


phoneme tS#
vls pla afr sibilant
voicingswitch dZ
lengthmod 2
Vowelin f1=0 f2=2300 200 400 f3=-100 80

IF nextPh(isPause2) THEN
WAV(ustop/tsh_)
ENDIF
WAV(ustop/tsh)
endphoneme






phoneme ~
virtual
endphoneme


phsource/ph_oromiffa → phsource/ph_oromo View File



//==================================================== //====================================================
// Oromiffa
// Oromo
//==================================================== //====================================================


phoneme : // Lengthen previous vowel by "length"
virtual
length 160
endphoneme



phoneme i phoneme i
vowel starttype #i endtype #i vowel starttype #i endtype #i
length 200
length 140
IfNextVowelAppend(;) IfNextVowelAppend(;)
FMT(vowel/ii_5)
ChangeIfUnstressed(I)
FMT(vowel/i_4)
endphoneme endphoneme


phoneme I
vowel starttype #i endtype #i
length 140
IfNextVowelAppend(;)
FMT(vowel/ii_3)
endphoneme



phoneme e phoneme e
vowel starttype #e endtype #e vowel starttype #e endtype #e
length 220
length 150
FMT(vowel/e_mid2) FMT(vowel/e_mid2)
endphoneme endphoneme


phoneme &
vowel starttype #a endtype #a
length 150
FMT(vowel/&)
endphoneme


phoneme a
vowel starttype #a endtype #a
length 170
// ChangeIfUnstressed(a2)
FMT(vowel/aa_9)
endphoneme

phoneme a2
vowel starttype #a endtype #a
length 170
FMT(vowel/aa#)
endphoneme


phoneme o
vowel starttype #o endtype #o
length 155
FMT(vowel/oo_1)
endphoneme

phoneme Y
vowel starttype #@ endtype #@
length 155
FMT(vowel/y#)
endphoneme


phoneme u
vowel starttype #u endtype #u
length 140
FMT(vowel/u_bck)
endphoneme

phoneme u1 // TEST
vowel starttype #u endtype #u
length 140
FMT(vowel/u_2)
endphoneme

phoneme U // TEST
vowel starttype #u endtype #u
length 140
FMT(vowel/uu_4)
endphoneme



phoneme y
vowel starttype #u endtype #u
length 150
FMT(vowel/y)
endphoneme


phoneme y phoneme y
vowel starttype #@ endtype #@ vowel starttype #@ endtype #@
ipa ? ipa ?
endphoneme endphoneme




phoneme a
vowel starttype #a endtype #a
length 220
IF nextPhW(isPalatal) THEN
FMT(vdiph/ai_5)
ENDIF
FMT(vowel/a_6)
endphoneme


phoneme @ phoneme @
vowel starttype #@ endtype #@ vowel starttype #@ endtype #@
length 220 length 220
FMT(vowel/@_3) FMT(vowel/@_3)
endphoneme endphoneme



phoneme o
vowel starttype #o endtype #o
length 220
FMT(vowel/o-_4)
endphoneme


phoneme u
vowel starttype #u endtype #u
length 220
FMT(vowel/u_2)
endphoneme

// CONSONANTS


phoneme r phoneme r
import_phoneme base/R2 import_phoneme base/R2
endphoneme endphoneme



phoneme p'
vls blb stop
phoneme k`
vls vel stop
lengthmod 2 lengthmod 2
voicingswitch b
Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 gpaus
Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=30
WAV(ustop/p_unasp)
endphoneme


phoneme b
vcd blb stop
IF prevPhW(isVowel) AND nextPhW(isVowel) THEN
ChangePhoneme(B)
ENDIF
CALL base/b
Vowelin f1=0 f2=1700 -250 250 f3= -200 80 gpaus f4
Vowelout f1=0 f2=2300 300 400 f3=-200 80 rms=20
WAV(ustop/k_ejc, 60)
endphoneme endphoneme



phoneme t` phoneme t`
vls alv stop vls alv stop
lengthmod 2 lengthmod 2
WAV(ustop/t_hi, 70) WAV(ustop/t_hi, 70)
endphoneme endphoneme



phoneme tS` phoneme tS`
vls pla afr sibilant vls pla afr sibilant
voicingswitch dZ voicingswitch dZ
WAV(ustop/tsh_unasp, 80) WAV(ustop/tsh_unasp, 80)
endphoneme endphoneme



phoneme k`
vls vel stop
phoneme P
vls blb stop
lengthmod 2 lengthmod 2
Vowelin f1=0 f2=1700 -250 250 f3= -200 80 gpaus f4
Vowelout f1=0 f2=2300 300 400 f3=-200 80 rms=20
WAV(ustop/k_ejc, 60)
voicingswitch b
Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 gpaus
Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=30
WAV(ustop/p_unasp)
endphoneme endphoneme




phoneme x
vls vel frc
lengthmod 3
IF prevPhW(#i) THEN
ChangePhoneme(C)
ELSE
CALL base/x
phoneme D
vcd alv stop
lengthmod 6
voicingswitch d
CALL base/D
IF nextPh(isPause2) THEN
FMT(voc/dh_) addWav(vocw/dh, 35) // weaker
ENDIF ENDIF
endphoneme endphoneme

+ 336
- 6
phsource/ph_s_gaelic View File







// Vowels

phoneme I
vowel starttype #i endtype #i
unstressed
length 130
FMT(vowel/ii)
endphoneme

phoneme @
vowel starttype #@ endtype #@
unstressed
length 130
FMT(vowel/@_6)
endphoneme


phoneme i:
vowel starttype #i endtype #i long
length 240
ChangeIfUnstressed(i)
FMT(vowel/i)
endphoneme

phoneme i
vowel starttype #i endtype #i
length 130
ChangeIfUnstressed(I)
FMT(vowel/i_6)
endphoneme

phoneme e:
vowel starttype #e endtype #e long
length 240
ChangeIfUnstressed(@)
FMT(vowel/e)
endphoneme

phoneme e
vowel starttype #e endtype #e
length 130
ChangeIfUnstressed(@)
FMT(vowel/e)
endphoneme


phoneme E:
vowel starttype #e endtype #e long
length 240
FMT(vowel/ee)
endphoneme

phoneme E
vowel starttype #e endtype #e
length 130
FMT(vowel/ee)
endphoneme


phoneme a:
vowel starttype #a endtype #a long
length 240
ChangeIfUnstressed(a)
FMT(vowel/aa_8)
endphoneme

phoneme a
vowel starttype #a endtype #a
length 130
ChangeIfUnstressed(@)
FMT(vowel/a)
endphoneme

phoneme a2 // doesn't reduce to [@]
vowel starttype #a endtype #a
length 130
FMT(vowel/a)
endphoneme


phoneme O:
vowel starttype #o endtype #o long
length 240
FMT(vowel/oo_2)
endphoneme

phoneme O
vowel starttype #o endtype #o
length 130
FMT(vowel/oo_2)
endphoneme


phoneme o:
vowel starttype #o endtype #o long
length 240
FMT(vowel/o)
endphoneme

phoneme o
vowel starttype #o endtype #o
length 130
FMT(vowel/o_2)
endphoneme


phoneme u:
vowel starttype #u endtype #u long
length 240
ChangeIfUnstressed(u)
FMT(vowel/u_bck2)
endphoneme

phoneme u
vowel starttype #u endtype #u
length 130
FMT(vowel/u_bck2)
endphoneme


phoneme u-
vowel starttype #@ endtype #@
ipa ɯ
length 240
FMT(vowel/u_bck2)
endphoneme

phoneme u-
vowel starttype #@ endtype #@ long
ipa ɯ
length 130
FMT(vowel/u_bck2)
endphoneme


phoneme o-
vowel starttype #@ endtype #@ long
ipa ɤ
length 240
ChangeIfUnstressed(@)
FMT(vowel/8_7)
endphoneme

phoneme o-
vowel starttype #@ endtype #@
ipa ɤ
length 130
ChangeIfUnstressed(@)
FMT(vowel/8_7)
endphoneme

// Diphthongs


phoneme i@
vowel starttype #i endtype #@ long
length 240
ChangeIfNotStressed(@)
FMT(vdiph2/i@)
endphoneme


phoneme ia
vowel starttype #i endtype #@ long
length 240
ChangeIfNotStressed(@)
FMT(vdiph2/i@_3)
endphoneme


phoneme u@
vowel starttype #u endtype #@ long
length 240
FMT(vdiph2/u@)
endphoneme


phoneme aI
vowel starttype #a endtype #i long
length 240
ChangeIfUnstressed(@)
FMT(vdiph/ai)
endphoneme

phoneme eI
vowel starttype #e endtype #i long
length 240
FMT(vdiph/ei)
endphoneme

phoneme @I
vowel starttype #@ endtype #i long
length 240
FMT(vdiph/@i)
endphoneme

phoneme u-I
vowel starttype #@ endtype #i long
ipa ɯɪ
length 240
FMT(vdiph/u-i)
endphoneme

phoneme aU
vowel starttype #a endtype #u long
length 240
ChangeIfUnstressed(@)
FMT(vdiph/aau_4)
endphoneme

phoneme OU
vowel starttype #@ endtype #u long
length 240
FMT(vdiph/Vu)
endphoneme


// Consonants // Consonants


phoneme b phoneme b
import_phoneme is/b import_phoneme is/b
endphoneme endphoneme


phoneme d
import_phoneme is/d
endphoneme

phoneme d;
import_phoneme hi/c
endphoneme

phoneme g
import_phoneme is/g
endphoneme

phoneme g;
vls vel stop
Vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70
Vowelout f1=1 f2=2700 400 600 f3=200 70 len=50 colr=1
WAV(ustop/ki_ejc, 130)
endphoneme

phoneme k;
vls vel stop
Vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70
Vowelout f1=1 f2=2700 400 600 f3=200 70 len=50 colr=1
WAV(ustop/ki)
endphoneme


phoneme t phoneme t
import_phoneme hi/t# import_phoneme hi/t#
endphoneme endphoneme


phoneme d
import_phoneme hi/t
phoneme t;
import_phoneme hi/c#
endphoneme endphoneme


phoneme k
import_phoneme base/k
phoneme S
vls pal frc sibilant palatal
CALL base/S;
ipa ʃ
endphoneme endphoneme


phoneme g
import_phoneme hi/k

phoneme n[ // temporary
import_phoneme n
endphoneme

phoneme * // reduced [t] as in "city"
vcd alv stop
ipa ɾ
lengthmod 5
Vowelin f1=1 f2=1700 -300 300 f3=-100 80
Vowelout f1=2 f2=1700 -300 300 f3=-100 80

IF KlattSynth THEN
IF PreVoicing THEN
FMT(klatt/x_tap)
ENDIF
FMT(klatt/tap2) addWav(x/d, 70)
ENDIF

IF PreVoicing THEN
FMT(d/x_tap)
ENDIF
FMT(d/tap2) addWav(x/d, 25)
endphoneme endphoneme




phoneme *;
import_phoneme D
endphoneme

phoneme R
import_phoneme R2
endphoneme


phoneme & // the epenthetic vowel
vowel starttype #@ endtype #@
unstressed
length 130
IF prevVowel(a) THEN
ChangePhoneme(a)
ELSEIF prevVowel(E) THEN
IF prevPh(*) THEN
ChangePhoneme(a)
ELSE
ChangePhoneme(E)
ENDIF
ELSEIF prevVowel(O) THEN
ChangePhoneme(O)
ELSEIF prevVowel(i) THEN
ChangePhoneme(i)
ELSEIF prevVowel(e) THEN
ChangePhoneme(e)
ELSEIF prevVowel(u) THEN
ChangePhoneme(u)
ELSEIF prevVowel(u-) THEN
ChangePhoneme(u-)
ELSEIF prevVowel(o-) THEN
ChangePhoneme(o-)
ENDIF
ChangePhoneme(NULL)
endphoneme


phoneme # // used for pre-aspiration
vls glt apr
IF NOT prevPhW(isVowel) OR thisPh(isNotStressed) OR prevVowel(isLong) THEN
ChangePhoneme(NULL)
ELSE
IF nextPhW(g;) OR nextPhW(k;) THEN
ChangePhoneme(C)
ELSEIF nextPhW(g) OR nextPhW(k) THEN
ChangePhoneme(x)
ELSE
ChangePhoneme(h)
ENDIF
ENDIF
endphoneme


// [h] only if followed by a vowel
phoneme h#
vls glt apr
IF nextPh(isVowel) THEN
ChangePhoneme(h)
ELSE
ChangePhoneme(NULL)
ENDIF
endphoneme

+ 4
- 0
phsource/ph_spanish_la View File

// Latin American Spanish - based on Spanish // Latin American Spanish - based on Spanish
//==================================================== //====================================================


phoneme T
vls alv frc sibilant
ChangePhoneme(s)
endphoneme



+ 16
- 9
phsource/ph_vietnam_sgn View File



phoneme 1 // ngang tone: level phoneme 1 // ngang tone: level
stress stress
Tone(32, 34, envelope/p_level, NULL)
Tone(20,35, envelope/i_risefall,NULL) //40,5,envelope/p_level, NULL) //40 45
endphoneme endphoneme




phoneme 2 // huyền tone: low falling phoneme 2 // huyền tone: low falling
stress stress
Tone(35,20 , envelope/p_fall, NULL) //20
Tone(10,20 , envelope/p_fall, NULL) //20
endphoneme endphoneme




phoneme 3 // sắc Tone(rising phoneme 3 // sắc Tone(rising
stress stress
Tone(40,60, envelope/p_rise, NULL) // 25 50
Tone(45,80, envelope/p_rise, NULL) // 30 50
endphoneme endphoneme




phoneme 4 // hỏi Tone(curve (dipping rising) phoneme 4 // hỏi Tone(curve (dipping rising)
stress stress
Tone(30,50, envelope/p_rise, NULL) //envelope/vi_5amp) // 28,58
Tone(45,50, envelope/p_fallrise,envelope/vi_5amp) // 28,58
endphoneme endphoneme




phoneme 5 // ngã tone: broken (creaking rising) phoneme 5 // ngã tone: broken (creaking rising)
stress stress
Tone(30,50, envelope/p_rise, NULL) //20,80, envelope/p_214, envelope/vi_5amp) // 28,58
Tone(30,75, envelope/p_214, NULL) //20,80, envelope/p_214, envelope/vi_5amp) // 28,58
endphoneme endphoneme




phoneme 6 // nặng Tone(drop (constricted) phoneme 6 // nặng Tone(drop (constricted)
stress stress
//length 150 // ignore because it make too short sound 75 // reduce the length of the vowel //length 150 // ignore because it make too short sound 75 // reduce the length of the vowel
Tone(10,5, envelope/p_512,NULL) // envelope/vi_6amp)
Tone(20,25, envelope/p_512,NULL) // envelope/vi_6amp) 10 5
endphoneme endphoneme




phoneme 7 // Tone(1 (ngang) at end of clause phoneme 7 // Tone(1 (ngang) at end of clause
stress stress
Tone(40, 20, envelope/p_fall, NULL)
Tone(40,42, envelope/p_fall, NULL) //20, 30, envelope/p_fall, NULL)
endphoneme endphoneme


// Redefine the length of vowels // Redefine the length of vowels
phoneme i phoneme i
CALL vi/i CALL vi/i
length 150 length 150
FMT(vowel/i#)
endphoneme endphoneme


phoneme E phoneme E
CALL vi/E CALL vi/E
length 150 length 150
FMT(vowel/ee_1)
endphoneme endphoneme


phoneme a: phoneme a:


phoneme O phoneme O
CALL vi/O CALL vi/O
length 150
FMT(vowel/0)
length 80
FMT(vowel/oo_1)
endphoneme endphoneme


phoneme Oi phoneme Oi
phoneme o phoneme o
CALL vi/o CALL vi/o
FMT(vowel/o_5) FMT(vowel/o_5)
endphoneme

phoneme @:I
CALL vi/@:I
FMT(vdiph/y#y)
endphoneme endphoneme

+ 10
- 2
phsource/phonemes View File



phoneme ? // glottal stop phoneme ? // glottal stop
vls glt stop vls glt stop
lengthmod 2 // ??
lengthmod 3 // ??
nolink nolink
Vowelin glstop Vowelin glstop
Vowelout glstop Vowelout glstop
phoneme m- phoneme m-
vowel starttype #@ endtype #@ vowel starttype #@ endtype #@
ipa mU+0329 ipa mU+0329
lengthmod 4
length 170 length 170


IF thisPh(isWordStart) THEN IF thisPh(isWordStart) THEN
phoneme n- phoneme n-
vowel starttype #@ endtype #@ vowel starttype #@ endtype #@
ipa nU+0329 ipa nU+0329
lengthmod 4
length 170 length 170


IF thisPh(isWordStart) THEN IF thisPh(isWordStart) THEN
phoneme N- phoneme N-
vowel starttype #e endtype #e vowel starttype #e endtype #e
ipa ŋU+0329 ipa ŋU+0329
lengthmod 4
length 190 length 190
FMT(nn/nn-syl) FMT(nn/nn-syl)
endphoneme endphoneme
phonemetable as bn phonemetable as bn
include ph_assamese include ph_assamese


phonemetable or bn
include ph_oriya

phonemetable mni bn
include ph_manipuri






include ph_greenlandic include ph_greenlandic


phonemetable om base phonemetable om base
include ph_oromiffa
include ph_oromo


//phonemetable en2 en //phonemetable en2 en
//include ph_english_test //include ph_english_test

BIN
phsource/vdiph/@i_4 View File


BIN
phsource/vdiph/a#u View File


BIN
phsource/vnasal/ai_n View File


BIN
phsource/vnasal/au_n View File


+ 8
- 1
platforms/windows/make_espeak.iss View File

[Setup] [Setup]
AppName=eSpeak AppName=eSpeak
AppVerName=eSpeak version 1.47.09
AppVerName=eSpeak version 1.48.01
AppCopyright=Licensed under GNU General Public License version 3. (See file License.txt for details). AppCopyright=Licensed under GNU General Public License version 3. (See file License.txt for details).
WindowVisible=yes WindowVisible=yes
$41: Result := 'sw'; $41: Result := 'sw';
//$44: Result := 'tt'; //$44: Result := 'tt';
$46: Result := 'pa'; $46: Result := 'pa';
//$48: Result := 'or';
$49: Result := 'ta'; $49: Result := 'ta';
$46: Result := 'pa'; $46: Result := 'pa';
$4a: Result := 'te';
$4b: Result := 'kn'; $4b: Result := 'kn';
$4c: Result := 'ml'; $4c: Result := 'ml';
//$4d: Result := 'as';
//$50: Result := 'mn'; //$50: Result := 'mn';
$52: Result := 'cy'; $52: Result := 'cy';
//$5e: Result := 'am'; //$5e: Result := 'am';
'af': value := $436; 'af': value := $436;
'am': value := $45e; 'am': value := $45e;
'an': value := $40a; // Aragon, use code for Spanish 'an': value := $40a; // Aragon, use code for Spanish
'as': value := $44d;
'az': value := $42c; 'az': value := $42c;
'bg': value := $402; 'bg': value := $402;
'bn': value := $445; 'bn': value := $445;
'fil': value := $464; 'fil': value := $464;
'fr': value := $40c; 'fr': value := $40c;
'ga': value := $83c; 'ga': value := $83c;
'gd': value := $43c;
'gu': value := $447; 'gu': value := $447;
'hi': value := $439; 'hi': value := $439;
'hr': value := $41a; 'hr': value := $41a;
'ne': value := $461; 'ne': value := $461;
'nl': value := $413; 'nl': value := $413;
'no': value := $414; 'no': value := $414;
'or': value := $448;
'pa': value := $446; 'pa': value := $446;
'pl': value := $415; 'pl': value := $415;
'pt': value := $416; 'pt': value := $416;
'-hu': value := $40e; '-hu': value := $40e;
'-ic': value := $40f; '-ic': value := $40f;
'-in': value := $439; '-in': value := $439;
'-ir': value := $429;
'-it': value := $410; '-it': value := $410;
'-mx': value := $80a; '-mx': value := $80a;
'-nl': value := $413; '-nl': value := $413;

+ 1
- 1
platforms/windows/make_espeakedit.iss View File

[Setup] [Setup]
AppName=eSpeakEdit AppName=eSpeakEdit
AppVerName=eSpeakEdit version 1.47.09
AppVerName=eSpeakEdit version 1.48.01
DefaultDirName={pf}\eSpeak DefaultDirName={pf}\eSpeak
DefaultGroupName=eSpeak DefaultGroupName=eSpeak
OutputBaseFilename=setup_espeakedit OutputBaseFilename=setup_espeakedit

+ 37
- 0
platforms/windows/mingw/espeak_test_lib.c View File

#include <speak_lib.h>
#ifdef PLATFORM_WINDOWS
#include <windows.h>
#define sleep(x) Sleep(1000*x)
#endif
int callback(short* wav, int num, espeak_EVENT *pEv)
{
int cEv = 0;
while (pEv->type) {
cEv++;
pEv++;
}
printf("callback, events: %d\n", cEv);
return 0;
}
main()
{
int nRate = espeak_Initialize(AUDIO_OUTPUT_PLAYBACK, 10000, NULL, 0);
printf("nRate: %d\n", nRate);
if (nRate < 0)
return;
espeak_SetSynthCallback(callback);
espeak_SetParameter(espeakRATE, 175, 0);
int rv;
rv = espeak_Char('c');
printf("rv: %d\n", rv);
const char* sText = "tralalalallala";
rv = espeak_Synth(sText, 100, 0, POS_CHARACTER, 0, 0, 0, 0);
printf("rv: %d (full: %d, internal: %d)\n",
rv, EE_BUFFER_FULL, EE_INTERNAL_ERROR);
sleep(2); // 2 seconds
puts("slept");
espeak_Terminate();
}

+ 169
- 0
platforms/windows/mingw/espeak_win_1_0.txt View File

Index: src/Makefile
===================================================================
--- src/Makefile (revision 364)
+++ src/Makefile (working copy)
@@ -18,6 +18,13 @@
# Use SONAME_OPT=-Wl,h, on Solaris
SONAME_OPT=-Wl,-soname,
+ifdef PLATFORM_WINDOWS
+ LIB_NAME = libespeak.dll
+else
+ # On Windows not all source files are compiled
+ non_windows_SOURCES = mbrowrap.cpp
+endif
+
# Use EXTRA_LIBS=-lm on Solaris
EXTRA_LIBS =
@@ -72,12 +79,12 @@
speak_SOURCES = speak.cpp compiledict.cpp dictionary.cpp intonation.cpp \
readclause.cpp setlengths.cpp numbers.cpp synth_mbrola.cpp \
- synthdata.cpp synthesize.cpp translate.cpp mbrowrap.cpp \
+ synthdata.cpp synthesize.cpp translate.cpp $(non_windows_SOURCES) \
tr_languages.cpp voices.cpp wavegen.cpp phonemelist.cpp klatt.cpp sonic.cpp
libespeak_SOURCES = speak_lib.cpp compiledict.cpp dictionary.cpp intonation.cpp \
readclause.cpp setlengths.cpp numbers.cpp synth_mbrola.cpp \
- synthdata.cpp synthesize.cpp translate.cpp mbrowrap.cpp \
+ synthdata.cpp synthesize.cpp translate.cpp $(non_windows_SOURCES) \
tr_languages.cpp voices.cpp wavegen.cpp phonemelist.cpp \
espeak_command.cpp event.cpp fifo.cpp $(WAVE) debug.cpp klatt.cpp sonic.cpp
@@ -94,8 +101,14 @@
LIBS3=-lstdc++ -L . -lespeak
CXXFLAGS=-O2
+ifdef PLATFORM_WINDOWS
+ CXXFLAGS += -DPLATFORM_WINDOWS -DNEED_STRUCT_TIMESPEC
+ LDFLAGS += -static-libgcc -static-libstdc++
+endif
+ifdef DEBUG
+ CXXFLAGS += -DDEBUG_ENABLED
+endif
-
all: $(BIN_NAME) $(LIB_NAME) $(STATIC_LIB_NAME) $(BIN2_NAME)
.cpp.o:
@@ -116,9 +129,11 @@
$(LIB_NAME): $(OBJS2)
$(CXX) $(LDFLAGS) -shared $(SONAME_OPT)$(LIB_NAME).$(LIB_VERSION) -o $@ \
$(OBJS2) $(LIBS2)
- mv $(LIB_NAME) $(LIB_NAME).$(LIBTAG)
- $(LN_SF) $(LIB_NAME).$(LIBTAG) $(LIB_NAME).$(LIB_VERSION)
- $(LN_SF) $(LIB_NAME).$(LIB_VERSION) $(LIB_NAME)
+ $(if $(PLATFORM_WINDOWS), , \
+ mv $(LIB_NAME) $(LIB_NAME).$(LIBTAG); \
+ $(LN_SF) $(LIB_NAME).$(LIBTAG) $(LIB_NAME).$(LIB_VERSION); \
+ $(LN_SF) $(LIB_NAME).$(LIB_VERSION) $(LIB_NAME); \
+ )
$(STATIC_LIB_NAME): $(OBJS2)
$(AR) cqs $(STATIC_LIB_NAME) $(OBJS2)
Index: src/speech.h
===================================================================
--- src/speech.h (revision 364)
+++ src/speech.h (working copy)
@@ -37,7 +37,6 @@
#endif
-#define PLATFORM_POSIX
#define PATHSEP '/'
// USE_PORTAUDIO or USE_PULSEAUDIO are now defined in the makefile
//#define USE_PORTAUDIO
@@ -77,7 +76,14 @@
#ifdef PLATFORM_WINDOWS
#define N_PATH_HOME 230
-#else
+// sleep(seconds)
+// Sleep(millisecond = 1/1000 s), windows api, kernel32.dll
+// usleep(microseconds = 1/1000000 s)
+#define sleep(x) Sleep(1000*x)
+// we are lucky, in current code usleep is always used in multiplies of 1000
+#define usleep(x) Sleep((x+500)/1000)
+#else /* PLATFORM_POSIX */
+#define PLATFORM_POSIX
#define N_PATH_HOME 160
#endif
Index: src/speak_lib.cpp
===================================================================
--- src/speak_lib.cpp (revision 364)
+++ src/speak_lib.cpp (working copy)
@@ -31,7 +31,13 @@
#include "speech.h"
#include <sys/stat.h>
-#ifndef PLATFORM_WINDOWS
+
+#ifdef PLATFORM_WINDOWS
+#include <fcntl.h>
+#include <io.h>
+#include <windows.h>
+#include <winreg.h>
+#else /* PLATFORM_POSIX */
#include <unistd.h>
#endif
Index: src/wave.cpp
===================================================================
--- src/wave.cpp (revision 364)
+++ src/wave.cpp (working copy)
@@ -32,7 +32,9 @@
#include <time.h>
#include "portaudio.h"
-#ifndef PLATFORM_WINDOWS
+#ifdef PLATFORM_WINDOWS
+#include <windows.h>
+#else /* PLATFORM_POSIX */
#include <unistd.h>
#endif
#include "wave.h"
@@ -40,6 +42,14 @@
//<Definitions
+#ifdef NEED_STRUCT_TIMESPEC
+#define HAVE_STRUCT_TIMESPEC 1
+struct timespec {
+ long tv_sec;
+ long tv_nsec;
+};
+#endif /* HAVE_STRUCT_TIMESPEC */
+
enum {ONE_BILLION=1000000000};
#ifdef USE_PORTAUDIO
Index: src/event.cpp
===================================================================
--- src/event.cpp (revision 364)
+++ src/event.cpp (working copy)
@@ -24,7 +24,9 @@
//<includes
+#ifndef PLATFORM_WINDOWS
#include <unistd.h>
+#endif
#include <assert.h>
#include <string.h>
#include <stdlib.h>
Index: src/fifo.cpp
===================================================================
--- src/fifo.cpp (revision 364)
+++ src/fifo.cpp (working copy)
@@ -24,7 +24,9 @@
//<includes
+#ifndef PLATFORM_WINDOWS
#include <unistd.h>
+#endif
#include <assert.h>
#include <string.h>
#include <stdlib.h>

+ 16
- 0
platforms/windows/mingw/readme.txt View File

These are instructions to built the library on MS Windows, using msys and mingw.
This library is fully functional, contrary to the library described
in windows_dll directory.

To build exe file go to windows_cmd directory, to build sapi dll,
go to windows_sapi directory.

- Use sources from src directory.
- Have a ready to use portaudio v19 library (dll file is sufficient, here
libportaudio-2.dll filename is assumed in a directory relative to espeak)
- Copy portaudio.h file from your portaudio directory to src directory,
overwriting the existing one. At the time of writing this is the same
file as src/portaudio19.h distributed within espeak.

Make command:
make libespeak.dll PLATFORM_WINDOWS=1 LIB_AUDIO="-L ../../portaudio/lib/.libs -lportaudio-2 -lwinmm"

+ 5
- 5
platforms/windows/windows_sapi/version.rc2 View File

// //
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,46,00
PRODUCTVERSION 1,0,46,00
FILEVERSION 1,0,48,00
PRODUCTVERSION 1,0,48,00
FILEFLAGSMASK 0x3fL FILEFLAGSMASK 0x3fL
#ifdef _DEBUG #ifdef _DEBUG
FILEFLAGS 0x1L FILEFLAGS 0x1L
VALUE "Comments", "\0" VALUE "Comments", "\0"
VALUE "CompanyName", "Jonathan Duddington\0" VALUE "CompanyName", "Jonathan Duddington\0"
VALUE "FileDescription", "Text to Speech\0" VALUE "FileDescription", "Text to Speech\0"
VALUE "FileVersion", "1, 0,46,00\0"
VALUE "InternalName", "espeak1.46\0"
VALUE "FileVersion", "1, 0,48,00\0"
VALUE "InternalName", "espeak1.48\0"
VALUE "LegalCopyright", "Copyright (c) Jonathan Duddington\0" VALUE "LegalCopyright", "Copyright (c) Jonathan Duddington\0"
VALUE "LegalTrademarks", "\0" VALUE "LegalTrademarks", "\0"
VALUE "OriginalFilename", "espeak_sapi.dll\0" VALUE "OriginalFilename", "espeak_sapi.dll\0"
VALUE "PrivateBuild", "\0" VALUE "PrivateBuild", "\0"
VALUE "ProductName", "espeak TTS\0" VALUE "ProductName", "espeak TTS\0"
VALUE "ProductVersion", "1, 0, 46, 00\0"
VALUE "ProductVersion", "1, 0, 48, 00\0"
VALUE "SpecialBuild", "\0" VALUE "SpecialBuild", "\0"
END END
END END

+ 10
- 1
src/compiledata.cpp View File

/*************************************************************************** /***************************************************************************
* Copyright (C) 2005 to 2013 by Jonathan Duddington *
* Copyright (C) 2005 to 2014 by Jonathan Duddington *
* email: [email protected] * * email: [email protected] *
* Copyright (C) 2013 by Reece H. Dunn *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by * * it under the terms of the GNU General Public License as published by *
{"isVFricative", 0, phVFRICATIVE}, {"isVFricative", 0, phVFRICATIVE},


{"isPalatal", 0, i_isPalatal}, {"isPalatal", 0, i_isPalatal},
{"isLong", 0, i_isLong},
{"isRhotic", 0, i_isRhotic}, {"isRhotic", 0, i_isRhotic},
{"isSibilant", 0, i_isSibilant}, {"isSibilant", 0, i_isSibilant},
{"isFlag1", 0, i_isFlag1}, {"isFlag1", 0, i_isFlag1},


sprintf(fname_log,"%s%s",path_dsource,"dict_log"); sprintf(fname_log,"%s%s",path_dsource,"dict_log");
log = fopen(fname_log,"w"); log = fopen(fname_log,"w");
if(log != 0)
{
fprintf(log, "%s", utf8_bom);
}
sprintf(fname_log,"%s%s",path_dsource,"dict_phonemes"); sprintf(fname_log,"%s%s",path_dsource,"dict_phonemes");
f_phused = fopen(fname_log,"w"); f_phused = fopen(fname_log,"w");


else else
{ {
error("Unexpected keyword '%s'",item_string); error("Unexpected keyword '%s'",item_string);

if((strcmp(item_string, "phoneme") == 0) || (strcmp(item_string, "endphoneme") == 0))
return(-1);
} }


// output the word // output the word

+ 24
- 14
src/compiledict.cpp View File

/*************************************************************************** /***************************************************************************
* Copyright (C) 2005 to 2013 by Jonathan Duddington *
* Copyright (C) 2005 to 2014 by Jonathan Duddington *
* email: [email protected] * * email: [email protected] *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *


MNEM_TAB mnem_rules[] = { MNEM_TAB mnem_rules[] = {
{"unpr", 0x01}, {"unpr", 0x01},
{"noprefix", 0x02}, // rule fails if a prefix has been removed


{"w_alt1", 0x11}, {"w_alt1", 0x11},
{"w_alt2", 0x12}, {"w_alt2", 0x12},
unsigned char rb; unsigned char rb;
unsigned char c; unsigned char c;
char *p; char *p;
char *p_end;
int ix; int ix;
int match_type; int match_type;
int finished=0; int finished=0;
int condition_num=0; int condition_num=0;
int at_start = 0; int at_start = 0;
const char *name; const char *name;
char buf[60];
char buf_pre[60];
char buf[200];
char buf_pre[200];
char suffix[20]; char suffix[20];
static char output[60];
static char output[80];


static char symbols[] = static char symbols[] =
{' ',' ',' ',' ',' ',' ',' ',' ',' ',' ', {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',
*p = 0; *p = 0;


p = output; p = output;
p_end = p + sizeof(output) - 1;

if(linenum > 0) if(linenum > 0)
{ {
sprintf(p,"%5d:\t",linenum); sprintf(p,"%5d:\t",linenum);
{ {
if(at_start) if(at_start)
*p++ = '_'; *p++ = '_';
while(--ix >= 0)
while((--ix >= 0) && (p < p_end-3))
*p++ = buf_pre[ix]; *p++ = buf_pre[ix];
*p++ = ')'; *p++ = ')';
*p++ = ' '; *p++ = ' ';
} }
*p = 0; *p = 0;

buf[p_end - p] = 0; // prevent overflow in output[]
strcat(p,buf); strcat(p,buf);
ix = strlen(output); ix = strlen(output);
while(ix < 8) while(ix < 8)
char *mnemptr; char *mnemptr;
unsigned char flag_codes[100]; unsigned char flag_codes[100];
char encoded_ph[200]; char encoded_ph[200];
unsigned char bad_phoneme[4];
char bad_phoneme_str[4];
int bad_phoneme;
static char nullstring[] = {0}; static char nullstring[] = {0};


text_not_phonemes = 0; text_not_phonemes = 0;
} }
else else
{ {
EncodePhonemes(phonetic,encoded_ph,bad_phoneme);
EncodePhonemes(phonetic,encoded_ph,&bad_phoneme);
if(strchr(encoded_ph,phonSWITCH) != 0) if(strchr(encoded_ph,phonSWITCH) != 0)
{ {
flag_codes[n_flag_codes++] = BITNUM_FLAG_ONLY_S; // don't match on suffixes (except 's') when switching languages flag_codes[n_flag_codes++] = BITNUM_FLAG_ONLY_S; // don't match on suffixes (except 's') when switching languages
} }


// check for errors in the phonemes codes // check for errors in the phonemes codes
if(bad_phoneme[0] != 0)
if(bad_phoneme != 0)
{ {
// unrecognised phoneme, report error // unrecognised phoneme, report error
fprintf(f_log,"%5d: Bad phoneme [%c] (0x%x) in: %s %s\n",linenum,bad_phoneme[0],bad_phoneme[0],word,phonetic);
bad_phoneme_str[utf8_out(bad_phoneme, bad_phoneme_str)] = 0;
fprintf(f_log,"%5d: Bad phoneme [%s] (U+%x) in: %s %s\n",linenum,bad_phoneme_str,bad_phoneme,word,phonetic);
error_count++; error_count++;
} }
} }
int finish=0; int finish=0;
char buf[80]; char buf[80];
char output[150]; char output[150];
unsigned char bad_phoneme[4];
int bad_phoneme;
char bad_phoneme_str[4];


buf[0]=0; buf[0]=0;
rule_cond[0]=0; rule_cond[0]=0;
return(NULL); return(NULL);
} }


EncodePhonemes(rule_phonemes,buf,bad_phoneme);
if(bad_phoneme[0] != 0)
EncodePhonemes(rule_phonemes,buf,&bad_phoneme);
if(bad_phoneme != 0)
{ {
fprintf(f_log,"%5d: Bad phoneme [%c] in %s\n",linenum,bad_phoneme[0],input);
bad_phoneme_str[utf8_out(bad_phoneme, bad_phoneme_str)] = 0;
fprintf(f_log,"%5d: Bad phoneme [%s] (U+%x) in: %s\n",linenum,bad_phoneme_str,bad_phoneme,input);
error_count++; error_count++;
} }
strcpy(output,buf); strcpy(output,buf);
if((f_out = fopen_log(fname_out,"wb+")) == NULL) if((f_out = fopen_log(fname_out,"wb+")) == NULL)
{ {
if(fname_err) if(fname_err)
strcpy(fname_err,fname_in);
strcpy(fname_err,fname_out);
return(-1); return(-1);
} }
sprintf(fname_temp,"%s%ctemp",path_home,PATHSEP); sprintf(fname_temp,"%s%ctemp",path_home,PATHSEP);

+ 44
- 18
src/dictionary.cpp View File

/*************************************************************************** /***************************************************************************
* Copyright (C) 2005 to 2013 by Jonathan Duddington *
* Copyright (C) 2005 to 2014 by Jonathan Duddington *
* email: [email protected] * * email: [email protected] *
* Copyright (C) 2013 Reece H. Dunn * * Copyright (C) 2013 Reece H. Dunn *
* * * *






const char *EncodePhonemes(const char *p, char *outptr, unsigned char *bad_phoneme)
/***************************************************************************/
const char *EncodePhonemes(const char *p, char *outptr, int *bad_phoneme)
/******************************************************************/
/* Translate a phoneme string from ascii mnemonics to internal phoneme numbers, /* Translate a phoneme string from ascii mnemonics to internal phoneme numbers,
from 'p' up to next blank . from 'p' up to next blank .
Returns advanced 'p' Returns advanced 'p'
unsigned int mnemonic_word; unsigned int mnemonic_word;


if(bad_phoneme != NULL) if(bad_phoneme != NULL)
bad_phoneme[0] = 0;
*bad_phoneme = 0;


// skip initial blanks // skip initial blanks
while(isspace(*p)) while(isspace(*p))
// not recognised, report and ignore // not recognised, report and ignore
if(bad_phoneme != NULL) if(bad_phoneme != NULL)
{ {
bad_phoneme[0] = *p;
bad_phoneme[1] = 0;
utf8_in(bad_phoneme, p);
} }
*outptr++ = 0; *outptr++ = 0;
return(p+1); return(p+1);


// using Kirschenbaum to IPA translation, ascii 0x20 to 0x7f // using Kirschenbaum to IPA translation, ascii 0x20 to 0x7f
unsigned short ipa1[96] = { unsigned short ipa1[96] = {
0x20,0x21,0x22,0x2b0,0x24,0x25,0x0e6,0x2c8,0x28,0x27e,0x2a,0x2b,0x2cc,0x2d,0x2e,0x2f,
0x20,0x21,0x22,0x2b0,0x24,0x25,0x0e6,0x2c8,0x28,0x29,0x27e,0x2b,0x2cc,0x2d,0x2e,0x2f,
0x252,0x31,0x32,0x25c,0x34,0x35,0x36,0x37,0x275,0x39,0x2d0,0x2b2,0x3c,0x3d,0x3e,0x294, 0x252,0x31,0x32,0x25c,0x34,0x35,0x36,0x37,0x275,0x39,0x2d0,0x2b2,0x3c,0x3d,0x3e,0x294,
0x259,0x251,0x3b2,0xe7,0xf0,0x25b,0x46,0x262,0x127,0x26a,0x25f,0x4b,0x26b,0x271,0x14b,0x254, 0x259,0x251,0x3b2,0xe7,0xf0,0x25b,0x46,0x262,0x127,0x26a,0x25f,0x4b,0x26b,0x271,0x14b,0x254,
0x3a6,0x263,0x280,0x283,0x3b8,0x28a,0x28c,0x153,0x3c7,0xf8,0x292,0x32a,0x5c,0x5d,0x5e,0x5f, 0x3a6,0x263,0x280,0x283,0x3b8,0x28a,0x28c,0x153,0x3c7,0xf8,0x292,0x32a,0x5c,0x5d,0x5e,0x5f,
}; };


#define N_PHON_OUT 500 // realloc increment #define N_PHON_OUT 500 // realloc increment
static char *phon_out_buf = NULL;
static char *phon_out_buf = NULL; // passes the result of GetTranslatedPhonemeString()
static int phon_out_size = 0; static int phon_out_size = 0;




use_ipa = phoneme_mode & 0x10; use_ipa = phoneme_mode & 0x10;
use_tie = phoneme_mode & 0x0f; use_tie = phoneme_mode & 0x0f;


if(phon_out_buf == NULL)
{
phon_out_size = N_PHON_OUT;
if((phon_out_buf = (char *)realloc(phon_out_buf, phon_out_size)) == NULL)
{
phon_out_size = 0;
return("");
}
}

if(use_tie >= 3) if(use_tie >= 3)
{ {
// separate individual phonemes with underscores // separate individual phonemes with underscores
use_tie = 0; use_tie = 0;
} }



for(ix=1; ix<(n_phoneme_list-2); ix++) for(ix=1; ix<(n_phoneme_list-2); ix++)
{ {
buf = phon_buf; buf = phon_buf;
int vowel_posn=9; int vowel_posn=9;
int index; int index;
int count; int count;
ALPHABET *alphabet;


utf8_in(&c,word); utf8_in(&c,word);
if((tr->letter_bits_offset > 0) && (c < 0x241)) if((tr->letter_bits_offset > 0) && (c < 0x241))
return(0); // so we can re-translate the word as English return(0); // so we can re-translate the word as English
} }


if(((alphabet = AlphabetFromChar(c)) != NULL) && (alphabet->offset != tr->letter_bits_offset))
{
// Character is not in our alphabet
return(0);
}

if(tr->langopts.param[LOPT_UNPRONOUNCABLE] == 1) if(tr->langopts.param[LOPT_UNPRONOUNCABLE] == 1)
return(0); return(0);


{ {
match.end_type = SUFX_UNPRON; // $unpron match.end_type = SUFX_UNPRON; // $unpron
} }
else if(command == 0x02) // $noprefix
{
if(word_flags & FLAG_PREFIX_REMOVED)
failed = 1; // a prefix has been removed
else
add_points = 1;
}
else if((command & 0xf0) == 0x10) else if((command & 0xf0) == 0x10)
{ {
// $w_alt // $w_alt
int acc; int acc;
int pairs_start; int pairs_start;
const short *pairs_list; const short *pairs_list;
char buf[N_WORD_BYTES];
int bufix;
char buf[N_WORD_BYTES+1];



p2 = buf;
offset = tr->transpose_min - 1; offset = tr->transpose_min - 1;
min = tr->transpose_min; min = tr->transpose_min;
max = tr->transpose_max; max = tr->transpose_max;


pairs_start = max - min + 2; pairs_start = max - min + 2;


bufix = 0;
do { do {
p += utf8_in(&c,p); p += utf8_in(&c,p);
if(c != 0) if(c != 0)
{ {
if(map == NULL) if(map == NULL)
{ {
*p2++ = c - offset;
buf[bufix++] = c - offset;
} }
else else
{ {
// get the code from the transpose map // get the code from the transpose map
if(map[c - min] > 0) if(map[c - min] > 0)
{ {
*p2++ = map[c - min];
buf[bufix++] = map[c - min];
} }
else else
{ {
p2 += utf8_out(c,p2);
all_alpha=0; all_alpha=0;
break;
} }
} }
} }
else else
{ {
p2 += utf8_out(c,p2);
all_alpha=0; all_alpha=0;
break;
} }
} }
} while (c != 0);
*p2 = 0;
} while ((c != 0) && (bufix < N_WORD_BYTES));
buf[bufix] = 0;


if(all_alpha) if(all_alpha)
{ {
int end_flags; int end_flags;
const char *p; const char *p;
int len; int len;
static char ending[12];
char ending[50];


// these lists are language specific, but are only relevent if the 'e' suffix flag is used // these lists are language specific, but are only relevent if the 'e' suffix flag is used
static const char *add_e_exceptions[] = { static const char *add_e_exceptions[] = {
} }


// remove bytes from the end of the word and replace them by spaces // remove bytes from the end of the word and replace them by spaces
for(i=0; i<len_ending; i++)
for(i=0; (i<len_ending) && (i < sizeof(ending)-1); i++)
{ {
ending[i] = word_end[i]; ending[i] = word_end[i];
word_end[i] = ' '; word_end[i] = ' ';

+ 26
- 10
src/espeakedit.cpp View File

#include "translate.h" #include "translate.h"
#include "prosodydisplay.h" #include "prosodydisplay.h"




static const char *about_string2 = "espeakedit: %s\nAuthor: Jonathan Duddington (c) 2009\n\n" static const char *about_string2 = "espeakedit: %s\nAuthor: Jonathan Duddington (c) 2009\n\n"
"Licensed under GNU General Public License version 3\n" "Licensed under GNU General Public License version 3\n"
"http://espeak.sourceforge.net/"; "http://espeak.sourceforge.net/";


int adding_page = 0; // fix for wxWidgets (2,8,7) bug, adding first page to a wxNotebook gives emptystring for GetPageTex() in Notebook_Page_Changed event. int adding_page = 0; // fix for wxWidgets (2,8,7) bug, adding first page to a wxNotebook gives emptystring for GetPageTex() in Notebook_Page_Changed event.


wxFont FONT_SMALL(8,wxSWISS,wxNORMAL,wxNORMAL);
wxFont FONT_MEDIUM(9,wxSWISS,wxNORMAL,wxNORMAL);
wxFont FONT_NORMAL(10,wxSWISS,wxNORMAL,wxNORMAL);

IMPLEMENT_APP(MyApp) IMPLEMENT_APP(MyApp)


wxString AppName = _T("espeakedit"); wxString AppName = _T("espeakedit");
{//===================== {//=====================


int j; int j;
wxChar *p;
char param[80];
const wxChar *p;
char param[120];




if(argc > 1) if(argc > 1)
SetTopWindow(myframe); SetTopWindow(myframe);
wxInitAllImageHandlers(); wxInitAllImageHandlers();
// wxImage::AddHandler(wxPNGHandler); // wxImage::AddHandler(wxPNGHandler);
wxLogStatus(_T("Using espeak_data at: ")+wxString(path_home, wxConvLocal));
return TRUE; return TRUE;
} }


BEGIN_EVENT_TABLE(MyFrame, wxFrame) BEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_CHAR(MyFrame::OnKey) EVT_CHAR(MyFrame::OnKey)
EVT_MENU(MENU_ABOUT, MyFrame::OnAbout) EVT_MENU(MENU_ABOUT, MyFrame::OnAbout)
EVT_MENU(MENU_DOCS, MyFrame::OnAbout)
EVT_MENU(MENU_DOCS, MyFrame::OnAbout)
EVT_MENU(MENU_SPECTRUM, MyFrame::OnNewWindow) EVT_MENU(MENU_SPECTRUM, MyFrame::OnNewWindow)
EVT_MENU(MENU_SPECTRUM2, MyFrame::OnNewWindow) EVT_MENU(MENU_SPECTRUM2, MyFrame::OnNewWindow)
EVT_MENU(MENU_PROSODY, MyFrame::OnProsody) EVT_MENU(MENU_PROSODY, MyFrame::OnProsody)
EVT_MENU(MENU_OPT_SPEED, MyFrame::OnOptions) EVT_MENU(MENU_OPT_SPEED, MyFrame::OnOptions)
EVT_MENU(MENU_OPT_PUNCT, MyFrame::OnOptions) EVT_MENU(MENU_OPT_PUNCT, MyFrame::OnOptions)
EVT_MENU(MENU_OPT_SPELL, MyFrame::OnOptions) EVT_MENU(MENU_OPT_SPELL, MyFrame::OnOptions)
EVT_MENU(MENU_OPT_SPELL2, MyFrame::OnOptions)
EVT_MENU(MENU_OPT_SPELL2, MyFrame::OnOptions)
EVT_MENU(MENU_PATH_DATA, MyFrame::OnOptions)
EVT_MENU(MENU_PATH0, MyFrame::OnOptions) EVT_MENU(MENU_PATH0, MyFrame::OnOptions)
EVT_MENU(MENU_PATH1, MyFrame::OnOptions) EVT_MENU(MENU_PATH1, MyFrame::OnOptions)
EVT_MENU(MENU_PATH2, MyFrame::OnOptions) EVT_MENU(MENU_PATH2, MyFrame::OnOptions)
break; break;
case SPECTSEQ_SAVEAS: case SPECTSEQ_SAVEAS:
currentcanvas->Save(); currentcanvas->Save();
screenpages->SetPageText(screenpages->GetSelection(), currentcanvas->spectseq->name+_T(" ²"));
break; break;
case SPECTSEQ_SAVESELECT: case SPECTSEQ_SAVESELECT:
currentcanvas->Save(_T(""), 1); currentcanvas->Save(_T(""), 1);
notebook->SetSelection(1); notebook->SetSelection(1);
break; break;


case MENU_PATH_DATA:
string = wxDirSelector(_T("espeak_data directory"), wxEmptyString);
if(!string.IsEmpty())
{
if(!wxDirExists(string+_T("/voices")))
{
wxLogError(_T("No 'voices' directory in ") + string);
break;
}
path_espeakdata = string;
wxLogMessage(_T("Quit and restart espeakedit to use the new espeak_data location"));
}
break;

case MENU_PATH0: case MENU_PATH0:
string = wxFileSelector(_T("Master phonemes file"),wxFileName(path_phfile).GetPath(), string = wxFileSelector(_T("Master phonemes file"),wxFileName(path_phfile).GetPath(),
_T("phonemes"),_T(""),_T("*"),wxOPEN); _T("phonemes"),_T(""),_T("*"),wxOPEN);
int debug_flag=0; int debug_flag=0;
char fname_log[sizeof(path_dsource)+12]; char fname_log[sizeof(path_dsource)+12];
char err_fname[sizeof(path_home)+15]; char err_fname[sizeof(path_home)+15];
static const char utf8_bom[] = {0xef,0xbb,0xbf,0};


switch(event.GetId()) switch(event.GetId())
{ {
case MENU_COMPILE_DICT: case MENU_COMPILE_DICT:
sprintf(fname_log,"%s%s",path_dsource,"dict_log"); sprintf(fname_log,"%s%s",path_dsource,"dict_log");
log = fopen(fname_log,"w"); log = fopen(fname_log,"w");
if(log != NULL)
{
fprintf(log, "%s", utf8_bom);
}


LoadDictionary(translator, translator->dictionary_name, 0); LoadDictionary(translator, translator->dictionary_name, 0);
if((err = CompileDictionary(path_dsource,translator->dictionary_name,log,err_fname,debug_flag)) < 0) if((err = CompileDictionary(path_dsource,translator->dictionary_name,log,err_fname,debug_flag)) < 0)

+ 18
- 11
src/event.cpp View File





//<includes //<includes
#ifndef PLATFORM_WINDOWS
#include <unistd.h> #include <unistd.h>
#endif
#include <assert.h> #include <assert.h>
#include <string.h> #include <string.h>
#include <stdlib.h> #include <stdlib.h>
static sem_t my_sem_stop_is_acknowledged; static sem_t my_sem_stop_is_acknowledged;
// my_thread: polls the audio duration and compares it to the duration of the first event. // my_thread: polls the audio duration and compares it to the duration of the first event.
static pthread_t my_thread; static pthread_t my_thread;
static bool thread_inited;


static t_espeak_callback* my_callback = NULL; static t_espeak_callback* my_callback = NULL;
static int my_event_is_running=0; static int my_event_is_running=0;
assert(-1 != sem_init(&my_sem_stop_is_acknowledged, 0, 0)); assert(-1 != sem_init(&my_sem_stop_is_acknowledged, 0, 0));


pthread_attr_t a_attrib; pthread_attr_t a_attrib;
if (pthread_attr_init (& a_attrib)
|| pthread_attr_setdetachstate(&a_attrib, PTHREAD_CREATE_JOINABLE)
|| pthread_create( &my_thread,
& a_attrib,
polling_thread,
(void*)NULL))
{
assert(0);
}


if (pthread_attr_init (&a_attrib) == 0
&& pthread_attr_setdetachstate(&a_attrib, PTHREAD_CREATE_JOINABLE) == 0)
{
thread_inited = (0 == pthread_create(&my_thread,
&a_attrib,
polling_thread,
(void*)NULL));
}
assert(thread_inited);
pthread_attr_destroy(&a_attrib); pthread_attr_destroy(&a_attrib);
} }
//> //>
"MARK", "MARK",
"PLAY", "PLAY",
"END", "END",
"MSG_TERMINATED"
"MSG_TERMINATED",
"PHONEME",
"SAMPLERATE",
"??"
}; };


SHOW("event_display > event=0x%x\n",event); SHOW("event_display > event=0x%x\n",event);
{ {
ENTER("event_terminate"); ENTER("event_terminate");


if (my_thread)
if (thread_inited)
{ {
pthread_cancel(my_thread); pthread_cancel(my_thread);
pthread_join(my_thread,NULL); pthread_join(my_thread,NULL);
sem_destroy(&my_sem_stop_is_required); sem_destroy(&my_sem_stop_is_required);
sem_destroy(&my_sem_stop_is_acknowledged); sem_destroy(&my_sem_stop_is_acknowledged);
init(); // purge event init(); // purge event
thread_inited = 0;
} }
} }
//> //>

+ 1
- 0
src/extras.cpp View File

/*************************************************************************** /***************************************************************************
* Copyright (C) 2006 to 2011 by Jonathan Duddington * * Copyright (C) 2006 to 2011 by Jonathan Duddington *
* email: [email protected] * * email: [email protected] *
* Copyright (C) 2013 by Reece H. Dunn *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by * * it under the terms of the GNU General Public License as published by *

+ 2
- 0
src/fifo.cpp View File



//<includes //<includes


#ifndef PLATFORM_WINDOWS
#include <unistd.h> #include <unistd.h>
#endif
#include <assert.h> #include <assert.h>
#include <string.h> #include <string.h>
#include <stdlib.h> #include <stdlib.h>

+ 9
- 6
src/main.h View File

extern wchar_t ipa1[256]; extern wchar_t ipa1[256];





extern wxFont FONT_SMALL;
extern wxFont FONT_MEDIUM;
extern wxFont FONT_NORMAL;

enum { enum {
MENU_QUIT = 1, MENU_QUIT = 1,
MENU_OPEN,
MENU_SPECTRUM, MENU_SPECTRUM,
MENU_SPECTRUM2, MENU_SPECTRUM2,
MENU_CLOSE_ALL, MENU_CLOSE_ALL,
MENU_OPT_SPELL, MENU_OPT_SPELL,
MENU_OPT_SPELL2, MENU_OPT_SPELL2,
MENU_PATHS, MENU_PATHS,
MENU_PATH_DATA,
MENU_PATH0, MENU_PATH0,
MENU_PATH1, MENU_PATH1,
MENU_PATH2, MENU_PATH2,
}; };





// wxWidgets 3 name changes
#if wxCHECK_VERSION(3, 0, 0)
#define wxOPEN wxFD_OPEN
#define wxSAVE wxFD_SAVE
#define WXK_PRIOR WXK_PAGEUP
#define WXK_NEXT WXK_PAGEDOWN
#endif



+ 52
- 29
src/numbers.cpp View File

/*************************************************************************** /***************************************************************************
* Copyright (C) 2005 to 2013 by Jonathan Duddington *
* Copyright (C) 2005 to 2014 by Jonathan Duddington *
* email: [email protected] * * email: [email protected] *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *


static const char *hex_letters[] = {"'e:j","b'i:","s'i:","d'i:","'i:","'ef"}; // names, using phonemes available to all languages static const char *hex_letters[] = {"'e:j","b'i:","s'i:","d'i:","'i:","'ef"}; // names, using phonemes available to all languages



int IsSuperscript(int letter)
{//===========================
// is this a subscript or superscript letter ?
int ix;
int c;

for(ix=0; (c = derived_letters[ix]) != 0; ix+=2)
{
if(c > letter)
break;
if(c == letter)
return(derived_letters[ix+1]);
}
return(0);
}



int TranslateLetter(Translator *tr, char *word, char *phonemes, int control) int TranslateLetter(Translator *tr, char *word, char *phonemes, int control)
{//========================================================================= {//=========================================================================
// get pronunciation for an isolated letter // get pronunciation for an isolated letter
if(ph_buf[0] == 0) if(ph_buf[0] == 0)
{ {
// is this a subscript or superscript letter ? // is this a subscript or superscript letter ?
for(ix=0; (c = derived_letters[ix]) != 0; ix+=2)
if((c = IsSuperscript(letter)) != 0)
{ {
if(c > letter)
break;
if(c == letter)
letter = c & 0x3fff;
if((control & 4 ) && ((modifier = modifiers[c >> 14]) != NULL))
{ {
c = derived_letters[ix+1];
letter = c & 0x3fff;
if((modifier = modifiers[c >> 14]) != NULL)
// don't say "superscript" during normal text reading
Lookup(tr, modifier, capital);
if(capital[0] == 0)
{ {
Lookup(tr, modifier, capital);
if(capital[0] == 0)
capital[2] = SetTranslator2("en"); // overwrites previous contents of translator2
Lookup(translator2, modifier, &capital[3]);
if(capital[3] != 0)
{ {
capital[2] = SetTranslator2("en"); // overwrites previous contents of translator2
Lookup(translator2, modifier, &capital[3]);
if(capital[3] != 0)
{
capital[0] = phonPAUSE;
capital[1] = phonSWITCH;
len = strlen(&capital[3]);
capital[len+3] = phonSWITCH;
capital[len+4] = phontab_1;
capital[len+5] = 0;
}
capital[0] = phonPAUSE;
capital[1] = phonSWITCH;
len = strlen(&capital[3]);
capital[len+3] = phonSWITCH;
capital[len+4] = phontab_1;
capital[len+5] = 0;
} }
} }
} }
if(((tr->langopts.numbers & NUM_ROMAN_CAPITALS) && !(wtab[0].flags & FLAG_ALL_UPPER)) || IsDigit09(word[-2])) if(((tr->langopts.numbers & NUM_ROMAN_CAPITALS) && !(wtab[0].flags & FLAG_ALL_UPPER)) || IsDigit09(word[-2]))
return(0); // not '2xx' return(0); // not '2xx'


if(word[1] == ' ')
return(0); // only one letter, don't speak as a Roman Number

word_start = word; word_start = word;
while((c = *word++) != ' ') while((c = *word++) != ' ')
{ {
p = &ph_out[strlen(ph_roman)]; p = &ph_out[strlen(ph_roman)];
} }


sprintf(number_chars," %d ",acc);
sprintf(number_chars," %d %s ",acc, tr->langopts.roman_suffix);


if(word[0] == '.') if(word[0] == '.')
{ {
} // end f LookupThousands } // end f LookupThousands




static int LookupNum2(Translator *tr, int value, const int control, char *ph_out)
static int LookupNum2(Translator *tr, int value, int thousandplex, const int control, char *ph_out)
{//============================================================================= {//=============================================================================
// Lookup a 2 digit number // Lookup a 2 digit number
// control bit 0: ordinal number // control bit 0: ordinal number
else else
{ {
// followed by hundreds or thousands etc // followed by hundreds or thousands etc
sprintf(string,"_%da",value);
if((tr->langopts.numbers2 & NUM2_ORDINAL_AND_THOUSANDS) && (thousandplex <= 1))
sprintf(string, "_%do", value); // LANG=TA
else
sprintf(string, "_%da", value);
found = Lookup(tr, string, ph_digits); found = Lookup(tr, string, ph_digits);
} }


else if(((control & 2) == 0) || ((tr->langopts.numbers & NUM_SWAP_TENS) != 0)) else if(((control & 2) == 0) || ((tr->langopts.numbers & NUM_SWAP_TENS) != 0))
{ {
// followed by hundreds or thousands (or tens) // followed by hundreds or thousands (or tens)
sprintf(string,"_%da",units);
if((tr->langopts.numbers2 & NUM2_ORDINAL_AND_THOUSANDS) && (thousandplex <= 1))
sprintf(string, "_%do", units); // LANG=TA, only for 100s, 1000s
else
sprintf(string, "_%da", units);
found = Lookup(tr, string, ph_digits); found = Lookup(tr, string, ph_digits);
} }
} }
x = 8; // use variant (feminine) for before thousands and millions x = 8; // use variant (feminine) for before thousands and millions
if(tr->translator_name == L('m','l')) if(tr->translator_name == L('m','l'))
x = 0x208; x = 0x208;
LookupNum2(tr, hundreds/10, x, ph_digits);
LookupNum2(tr, hundreds/10, thousandplex, x, ph_digits);
} }


if(tr->langopts.numbers2 & 0x200) if(tr->langopts.numbers2 & 0x200)


if(say_one_hundred != 0) if(say_one_hundred != 0)
{ {
LookupNum2(tr, hundreds, 0, ph_digits);
LookupNum2(tr, hundreds, thousandplex, 0, ph_digits);
} }
} }
} }
x |= 0x208; // use #f form for both tens and units x |= 0x208; // use #f form for both tens and units
} }


if(LookupNum2(tr, tensunits, x | (control & 0x100), buf2) != 0)
if(LookupNum2(tr, tensunits, thousandplex, x | (control & 0x100), buf2) != 0)
{ {
if(tr->langopts.numbers & NUM_SINGLE_AND) if(tr->langopts.numbers & NUM_SINGLE_AND)
ph_hundred_and[0] = 0; // don't put 'and' after 'hundred' if there's 'and' between tens and units ph_hundred_and[0] = 0; // don't put 'and' after 'hundred' if there's 'and' between tens and units
{ {
// speak any remaining decimal fraction digits individually // speak any remaining decimal fraction digits individually
value = word[n_digits++] - '0'; value = word[n_digits++] - '0';
LookupNum2(tr, value, 2, buf1);
LookupNum2(tr, value, 0, 2, buf1);
len = strlen(ph_out); len = strlen(ph_out);
sprintf(&ph_out[len],"%c%s", phonEND_WORD, buf1); sprintf(&ph_out[len],"%c%s", phonEND_WORD, buf1);
} }

+ 8
- 0
src/options.cpp View File

extern void SetNumeric(wxTextCtrl *t, int value); extern void SetNumeric(wxTextCtrl *t, int value);
extern int samplerate; extern int samplerate;


wxString path_espeakdata;
wxString path_spectload; wxString path_spectload;
wxString path_spectload2; wxString path_spectload2;
wxString path_pitches; wxString path_pitches;
} }
else else
{ {
pConfig->Read(_T("/espeakdata"),&path_espeakdata,wxEmptyString);
if(path_espeakdata != wxEmptyString)
{
strcpy(path_home, path_espeakdata.mb_str(wxConvLocal));
}

pConfig->Read(_T("/spectload"),&path_spectload,basedir+_T("/phsource")); pConfig->Read(_T("/spectload"),&path_spectload,basedir+_T("/phsource"));
pConfig->Read(_T("/spectload2"),&path_spectload2,basedir+_T("/phsource")); pConfig->Read(_T("/spectload2"),&path_spectload2,basedir+_T("/phsource"));
pConfig->Read(_T("/pitchpath"),&path_pitches,basedir+_T("/pitch")); pConfig->Read(_T("/pitchpath"),&path_pitches,basedir+_T("/pitch"));
#ifndef PLATFORM_WINDOWS #ifndef PLATFORM_WINDOWS
// pConfig->Write(_T("/samplerate"),samplerate); // pConfig->Write(_T("/samplerate"),samplerate);
#endif #endif
pConfig->Write(_T("/espeakdata"),path_espeakdata);
pConfig->Write(_T("/spectload"),path_spectload); pConfig->Write(_T("/spectload"),path_spectload);
pConfig->Write(_T("/spectload2"),path_spectload2); pConfig->Write(_T("/spectload2"),path_spectload2);
pConfig->Write(_T("/pitchpath"),path_pitches); pConfig->Write(_T("/pitchpath"),path_pitches);

+ 0
- 0
src/options.h View File


Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save