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.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  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. FMT(vowel/a,50) addWav(h/h_,20)
  30. endphoneme
  31. phoneme gH // arabic Ghain, the phoneme is derived from Q
  32. vcd vel frc
  33. voicingswitch R2
  34. ipa ɣ
  35. Vowelin f1=2 f2=2300 200 300 f3=-300 80
  36. Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk
  37. FMT(g/g) addWav(vwl_ar/dhad)
  38. endphoneme
  39. phoneme dH //arabic Dhad TODO this probably should be simple d from standard phonemes
  40. vcd alv stp
  41. ipa dˤ
  42. Vowelin f1=1 f2=1700 -300 300 f3=-100 80
  43. Vowelout f1=2 f2=1700 -300 300 f3=-100 80 brk
  44. IF PreVoicing THEN
  45. FMT(d/xd)
  46. ENDIF
  47. IF nextPh(isPause2) THEN
  48. FMT(d/d_) addWav(x/d_)
  49. ENDIF
  50. FMT(d/d) addWav(x/d)
  51. endphoneme
  52. phoneme s[
  53. vls dnt stp
  54. voicingswitch s
  55. IF nextPh(s[) THEN
  56. length 50
  57. ELSE
  58. length 160
  59. ENDIF
  60. lengthmod 7
  61. WAV(vwl_ar/shin)
  62. endphoneme
  63. phoneme X
  64. vls uvl frc
  65. voicingswitch Q
  66. lengthmod 7
  67. Vowelin f1=0 f2=2300 200 400 f3=-100 80
  68. Vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20
  69. WAV(ufric/xx, 70)
  70. endphoneme
  71. // vowels
  72. phoneme a
  73. vwl starttype #a endtype #a
  74. IF nextPhW(isPause) THEN
  75. length 80
  76. ELSE
  77. length 140
  78. ENDIF
  79. FMT(vowel/a_2)
  80. endphoneme
  81. phoneme i
  82. vwl starttype #i endtype #i
  83. IF nextPhW(isPause) THEN
  84. length 80
  85. ELSE
  86. length 140
  87. ENDIF
  88. FMT(vowel/i)
  89. endphoneme
  90. phoneme u
  91. vwl starttype #u endtype #u
  92. IF nextPhW(isPause) THEN
  93. length 80
  94. ELSE
  95. length 140
  96. ENDIF
  97. FMT(vowel/u)
  98. endphoneme
  99. // "dark" vowels after "thick" consonants
  100. phoneme a.
  101. vwl starttype #a endtype #a
  102. IF nextPhW(isPause) THEN
  103. length 80
  104. ELSE
  105. length 140
  106. ENDIF
  107. FMT(vowel/aa_7)
  108. endphoneme
  109. phoneme i.
  110. vwl starttype #i endtype #i
  111. IF nextPhW(isPause) THEN
  112. length 80
  113. ELSE
  114. length 140
  115. ENDIF
  116. FMT(vowel/ii_5)
  117. endphoneme
  118. phoneme u.
  119. vwl starttype #u endtype #u
  120. IF nextPhW(isPause) THEN
  121. length 80
  122. ELSE
  123. length 140
  124. ENDIF
  125. FMT(vowel/u_7)
  126. endphoneme
  127. phoneme : // lengthen previous vowel by "length"
  128. virtual
  129. length 180
  130. endphoneme