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_bulgarian 1.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. // Bulgarian
  2. phoneme i
  3. vowel starttype #i endtype #i
  4. length 130
  5. IfNextVowelAppend(;)
  6. IF thisPh(isNotStressed) THEN
  7. FMT(vowel/ii_5)
  8. ENDIF
  9. FMT(vowel/i_6)
  10. endphoneme
  11. phoneme e
  12. vowel starttype #e endtype #e
  13. length 140
  14. IF thisPh(isNotStressed) THEN
  15. FMT(vowel/e_mid2)
  16. ENDIF
  17. FMT(vowel/e_mid)
  18. endphoneme
  19. phoneme @
  20. vowel starttype #@ endtype #@
  21. length 140
  22. IF thisPh(isNotStressed) THEN
  23. FMT(vowel/V)
  24. ENDIF
  25. FMT(vowel/@_bck)
  26. endphoneme
  27. phoneme a
  28. vowel starttype #a endtype #a
  29. length 150
  30. IF thisPh(isNotStressed) THEN
  31. IF nextVowel(isStressed) THEN
  32. FMT(vowel/a#_4)
  33. ELSE
  34. ipa ɐ
  35. FMT(vowel/V_3)
  36. ENDIF
  37. ENDIF
  38. FMT(vowel/a)
  39. endphoneme
  40. phoneme o
  41. vowel starttype #o endtype #o
  42. length 140
  43. IF thisPh(isNotStressed) THEN
  44. FMT(vowel/o_mid)
  45. ENDIF
  46. FMT(vowel/oo)
  47. endphoneme
  48. phoneme u
  49. vowel starttype #u endtype #u
  50. length 140
  51. IF thisPh(isNotStressed) THEN
  52. FMT(vowel/u_2)
  53. ENDIF
  54. FMT(vowel/u_bck)
  55. endphoneme
  56. // Consonants
  57. phoneme ts;
  58. delete_phoneme
  59. endphoneme
  60. phoneme l
  61. import_phoneme en/l
  62. endphoneme
  63. phoneme L // velar L
  64. liquid
  65. lengthmod 7
  66. IF nextPh(isNotVowel) THEN
  67. ChangePhoneme(l/2) // use 'dark' [l] after a vowel
  68. ENDIF
  69. VowelEnding(ll/xll, -40)
  70. IF prevPh(isPause) THEN
  71. FMT(ll/_ll)
  72. ENDIF
  73. FMT(ll/ll)
  74. endphoneme
  75. phoneme r
  76. import_phoneme base/R2
  77. endphoneme
  78. phoneme x
  79. voicingswitch x // [x] doesn't switch to [Q]
  80. import_phoneme base/x
  81. endphoneme
  82. phoneme g#
  83. import_phoneme ru/g
  84. endphoneme
  85. phoneme g;
  86. vcd vel stop
  87. palatal
  88. voicingswitch k
  89. lengthmod 5
  90. Vowelin f1=1 f2=2300 300 300 f3=300 80
  91. Vowelout f1=1 f2=2300 300 300 f3=300 80 brk colr=1
  92. IF PreVoicing THEN
  93. FMT(g/xg)
  94. ENDIF
  95. IF nextPh(isPause2) THEN
  96. FMT(g/g_) addWav(x/g_)
  97. ENDIF
  98. FMT(g/g) addWav(x/g2, 150)
  99. endphoneme