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_arabic 2.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. phoneme #r virtual
  2. // Used for "r" sounds
  3. endphoneme
  4. phoneme H // arabic Hah
  5. vls phr frc
  6. ipa ħ
  7. lengthmod 5
  8. WAV(vwl_ar/hah,80)
  9. endphoneme
  10. phoneme Z // arabic ZAH
  11. vcd dnt frc
  12. ipa ð
  13. // following definition is taken from English D
  14. lengthmod 6
  15. Vowelout f1=0 f2=1700 -300 300 f3=-100 60 len=50
  16. IF KlattSynth THEN
  17. Vowelin f1=0 f2=1290 -300 300 f3=0 0
  18. ENDIF
  19. IF nextPh(isPause2) THEN
  20. FMT(voc/dh_) addWav(vocw/dh)
  21. ENDIF
  22. FMT(voc/dh) addWav(vocw/dh)
  23. endphoneme
  24. phoneme A // arabic Ain
  25. vcd frc
  26. ipa ʕ
  27. voicingswitch a
  28. length 160
  29. Vowelin f1=2 f2=2300 -400 500 f3=300 80
  30. Vowelout f1=2 f2=2300 -300 450 f3=-100 10
  31. FMT(r/xr,25) addWav(h/h_,30)
  32. endphoneme
  33. phoneme gH // arabic Ghain, the phoneme is derived from Q
  34. vcd vel frc
  35. voicingswitch R2
  36. ipa ɣ
  37. Vowelin f1=2 f2=2300 200 300 f3=-300 80
  38. Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk
  39. FMT(g/g) addWav(vwl_ar/dhad)
  40. endphoneme
  41. phoneme dH //arabic Dhad TODO this probably should be simple d from standard phonemes
  42. vcd alv stp
  43. ipa dˤ
  44. Vowelin f1=1 f2=1700 -300 300 f3=-100 80
  45. Vowelout f1=2 f2=1700 -300 300 f3=-100 80 brk
  46. IF PreVoicing THEN
  47. FMT(d/xd)
  48. ENDIF
  49. IF nextPh(isPause2) THEN
  50. FMT(d/d_) addWav(x/d_)
  51. ENDIF
  52. FMT(d/d) addWav(x/d)
  53. endphoneme
  54. phoneme s[
  55. vls dnt stp
  56. voicingswitch s
  57. IF nextPh(s[) THEN
  58. length 50
  59. ELSE
  60. length 140
  61. ENDIF
  62. lengthmod 7
  63. WAV(vwl_ar/shin)
  64. endphoneme
  65. phoneme X
  66. vls uvl frc
  67. voicingswitch Q
  68. lengthmod 7
  69. Vowelin f1=0 f2=2300 200 400 f3=-100 80
  70. Vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20
  71. WAV(ufric/xx, 70)
  72. endphoneme
  73. // vowels
  74. phoneme a
  75. vwl starttype #a endtype #a
  76. IF nextPhW(isPause) THEN
  77. length 80
  78. ELSE
  79. length 140
  80. ENDIF
  81. FMT(vowel/a_2)
  82. endphoneme
  83. phoneme i
  84. vwl starttype #i endtype #i
  85. IF nextPhW(isPause) THEN
  86. length 80
  87. ELSE
  88. length 140
  89. ENDIF
  90. FMT(vowel/i)
  91. endphoneme
  92. phoneme u
  93. vwl starttype #u endtype #u
  94. IF nextPhW(isPause) THEN
  95. length 80
  96. ELSE
  97. length 140
  98. ENDIF
  99. FMT(vowel/u)
  100. endphoneme
  101. // "dark" vowels after "thick" consonants
  102. phoneme a.
  103. vwl starttype #a endtype #a
  104. IF nextPhW(isPause) THEN
  105. length 80
  106. ELSE
  107. length 140
  108. ENDIF
  109. FMT(vowel/aa_7)
  110. endphoneme
  111. phoneme i.
  112. vwl starttype #i endtype #i
  113. IF nextPhW(isPause) THEN
  114. length 80
  115. ELSE
  116. length 140
  117. ENDIF
  118. FMT(vowel/ii_5)
  119. endphoneme
  120. phoneme u.
  121. vwl starttype #u endtype #u
  122. IF nextPhW(isPause) THEN
  123. length 80
  124. ELSE
  125. length 140
  126. ENDIF
  127. FMT(vowel/u_7)
  128. endphoneme
  129. phoneme : // lengthen previous vowel by "length"
  130. virtual
  131. length 180
  132. endphoneme