eSpeak NG is an open source speech synthesizer that supports more than hundred languages and accents.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ph_slovenian 2.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. phoneme : // lengthen previous vowel by "length"
  2. virtual
  3. length 50 // only a small increase for "long stress" because we probably put the stress on the wrong syllable
  4. endphoneme
  5. phoneme @ // Schwa, can be stressed
  6. vowel starttype #@ endtype #@
  7. length 160
  8. FMT(vowel/@)
  9. endphoneme
  10. phoneme i
  11. vowel starttype #i endtype #i
  12. length 160
  13. // IfNextVowelAppend(;)
  14. // IF thisPh(isStressed) AND NOT nextPhW(isRhotic) THEN
  15. // FMT(vowel/ii_6)
  16. // ENDIF
  17. FMT(vowel/ii_3)
  18. endphoneme
  19. phoneme u
  20. vowel starttype #u endtype #u
  21. length 160
  22. FMT(vowel/u_2)
  23. endphoneme
  24. phoneme a
  25. vowel starttype #a endtype #a
  26. length 170
  27. IF thisPh(isUnstressed) THEN
  28. FMT(vowel/a_8)
  29. ENDIF
  30. FMT(vowel/a)
  31. endphoneme
  32. phoneme e
  33. vowel starttype #e endtype #e
  34. length 170
  35. ChangeIfUnstressed(E)
  36. FMT(vowel/e_2)
  37. endphoneme
  38. phoneme e+ // doesn't reduce to [e]
  39. vowel starttype #e endtype #e
  40. ChangePhoneme(e)
  41. endphoneme
  42. phoneme E
  43. vowel starttype #e endtype #e
  44. length 160
  45. FMT(vowel/e_mid)
  46. endphoneme
  47. phoneme E#
  48. vowel starttype #e endtype #e
  49. length 160
  50. IF thisPh(isNotStressed) THEN
  51. ChangePhoneme(@)
  52. ENDIF
  53. FMT(vowel/e_mid)
  54. endphoneme
  55. phoneme o
  56. vowel starttype #o endtype #o
  57. length 170
  58. ChangeIfUnstressed(O)
  59. FMT(vowel/o_8)
  60. endphoneme
  61. phoneme o+ // doesn't reduce to [O]
  62. vowel starttype #o endtype #o
  63. ChangePhoneme(o)
  64. endphoneme
  65. phoneme O
  66. vowel starttype #o endtype #o
  67. length 170
  68. IF thisPh(isStressed) THEN
  69. FMT(vowel/0_2)
  70. ENDIF
  71. FMT(vowel/oo_4)
  72. endphoneme
  73. phoneme v
  74. import_phoneme base/v#
  75. endphoneme
  76. phoneme t
  77. vls dnt stop
  78. lengthmod 2
  79. voicingswitch d
  80. Vowelin f1=0 f2=1600 -300 300 f3=-100 80
  81. Vowelout f1=0 f2=1600 -300 250 f3=-100 80 rms=20
  82. IF nextPh(isPause2) AND prevPhW(isVowel) THEN
  83. WAV(ustop/t_dnt, 40)
  84. ENDIF
  85. WAV(ustop/t_dnt, 60)
  86. endphoneme
  87. phoneme k
  88. vls vel stop
  89. voicingswitch g
  90. lengthmod 2
  91. Vowelin f1=0 f2=2300 200 300 f3=-200 80
  92. Vowelout f1=0 f2=2300 300 400 f3=-200 80 rms=20
  93. IF KlattSynth THEN
  94. Vowelout f1=0 f2=2300 200 300 f3=-200 80 rms=20
  95. ENDIF
  96. IF nextPh(isPause2) AND prevPhW(isVowel) THEN
  97. WAV(ustop/k_)
  98. ELIF nextPh(r) OR nextPh(R) OR nextPh(R2) THEN
  99. WAV(ustop/kr)
  100. ELIF nextPh(#i) OR nextPh(;) THEN
  101. WAV(ustop/ki)
  102. ELIF nextPh(l) THEN
  103. WAV(ustop/kl)
  104. ELIF nextPh(@-) THEN
  105. WAV(ustop/k_unasp, 70)
  106. ENDIF
  107. WAV(ustop/k)
  108. endphoneme
  109. // for foreign letters
  110. phoneme y
  111. vowel starttype #i endtype #i
  112. length 170
  113. FMT(vowel/y)
  114. endphoneme
  115. phoneme R^ // Czech r-caron
  116. import_phoneme sk/R^
  117. endphoneme