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_oromiffa 2.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. //====================================================
  2. // Oromiffa
  3. //====================================================
  4. phoneme i
  5. vowel starttype #i endtype #i
  6. length 200
  7. IfNextVowelAppend(;)
  8. FMT(vowel/ii_5)
  9. endphoneme
  10. phoneme e
  11. vowel starttype #e endtype #e
  12. length 220
  13. FMT(vowel/e_mid2)
  14. endphoneme
  15. phoneme y
  16. vowel starttype #@ endtype #@
  17. ipa ?
  18. length 180
  19. // assume that word-final [y] are not added by am_rules
  20. // Only allow [y] in first or last syllables
  21. // IF thisPh(isFinalVowel) THEN
  22. // ELIF thisPh(isFirstVowel) THEN
  23. // ELSE
  24. // ChangePhoneme(NULL)
  25. // ENDIF
  26. FMT(vowel/ii#_2)
  27. endphoneme
  28. phoneme a
  29. vowel starttype #a endtype #a
  30. length 220
  31. IF nextPhW(isPalatal) THEN
  32. FMT(vdiph/ai_5)
  33. ENDIF
  34. FMT(vowel/a_6)
  35. endphoneme
  36. phoneme @
  37. vowel starttype #@ endtype #@
  38. length 220
  39. IF nextPhW(isPalatal) THEN
  40. FMT(vdiph/@i_2)
  41. ENDIF
  42. FMT(vowel/@_3)
  43. endphoneme
  44. phoneme o
  45. vowel starttype #o endtype #o
  46. length 220
  47. FMT(vowel/o-_4)
  48. endphoneme
  49. phoneme u
  50. vowel starttype #u endtype #u
  51. length 220
  52. FMT(vowel/u_2)
  53. endphoneme
  54. phoneme r
  55. import_phoneme base/R2
  56. endphoneme
  57. phoneme k`
  58. vls vel stop
  59. lengthmod 2
  60. Vowelin f1=0 f2=1700 -250 250 f3= -200 80 gpaus f4
  61. Vowelout f1=0 f2=2300 300 400 f3=-200 80 rms=20
  62. WAV(ustop/k_ejc, 60)
  63. endphoneme
  64. phoneme t`
  65. vls alv stop
  66. lengthmod 2
  67. voicingswitch d
  68. Vowelin f1=0 f2=1700 -300 300 f3=-100 80 gpaus
  69. Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
  70. IF nextPh(isPause2) THEN
  71. WAV(ustop/t_)
  72. ENDIF
  73. WAV(ustop/t_hi, 70)
  74. endphoneme
  75. phoneme tS`
  76. vls pla afr sibilant
  77. voicingswitch dZ
  78. lengthmod 2
  79. Vowelin f1=0 f2=1800 -200 200 f3=-100 80 gpaus
  80. IF nextPh(isPause2) THEN
  81. WAV(ustop/tsh_unasp, 80)
  82. ENDIF
  83. WAV(ustop/tsh_unasp, 80)
  84. endphoneme
  85. phoneme p'
  86. vcd blb stop
  87. IF prevPhW(isVowel) AND nextPhW(isVowel) THEN
  88. ChangePhoneme(P)
  89. ENDIF
  90. CALL base/b
  91. endphoneme
  92. phoneme D
  93. vcd alv stop
  94. lengthmod 6
  95. voicingswitch d
  96. CALL base/D
  97. IF nextPh(isPause2) THEN
  98. FMT(voc/dh_) addWav(vocw/dh, 35) // weaker
  99. ENDIF
  100. endphoneme