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_english_us 4.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323
  1. //*******************************************************************
  2. // VOWELS
  3. //*******************************************************************
  4. phoneme 3 // Schwa, used for rhotic schwa in American
  5. vowel starttype #@ endtype #@
  6. unstressed
  7. length 210
  8. IfNextVowelAppend(r-)
  9. FMT(vwl_en_us/3_us)
  10. endphoneme
  11. phoneme @ // Schwa
  12. vowel starttype #@ endtype #@
  13. unstressed
  14. length 130
  15. IF nextPh(isRhotic) THEN
  16. ChangePhoneme(3)
  17. ENDIF
  18. FMT(vowel/@_4)
  19. endphoneme
  20. phoneme @/ // Schwa, end of word
  21. vowel starttype #@ endtype #@
  22. unstressed
  23. length 130
  24. FMT(vowel/@_low2)
  25. endphoneme
  26. phoneme @2 // Schwa, changes to I before a vowel
  27. vowel starttype #@ endtype #@
  28. unstressed
  29. length 120
  30. IF nextPh(isVowel) THEN
  31. ChangePhoneme(I2)
  32. ENDIF
  33. FMT(vowel/@_low2)
  34. endphoneme
  35. phoneme @L
  36. vowel starttype #@ endtype l
  37. unstressed
  38. length 160
  39. FMT(vwl_en/@L)
  40. endphoneme
  41. phoneme a
  42. vowel starttype #e endtype #@
  43. length 210
  44. ChangeIfDiminished(a2)
  45. IF nextPh(isNasal) THEN
  46. FMT(vnasal/ee_n2)
  47. ENDIF
  48. FMT(vwl_en_us/a)
  49. endphoneme
  50. phoneme aa // 'bath' etc.
  51. import_phoneme en_us/a
  52. endphoneme
  53. phoneme a2
  54. vowel starttype #@ endtype #@
  55. unstressed
  56. length 150
  57. FMT(vowel/a#_3)
  58. endphoneme
  59. phoneme E
  60. vowel starttype #e endtype #e
  61. length 195
  62. ChangeIfDiminished(I2)
  63. FMT(vwl_en_us/ee)
  64. endphoneme
  65. phoneme I
  66. vowel starttype #i endtype #i
  67. length 160
  68. IfNextVowelAppend(;)
  69. ChangeIfDiminished(I2)
  70. FMT(vowel/ii_4)
  71. endphoneme
  72. phoneme I2
  73. vowel starttype #i endtype #i
  74. unstressed
  75. length 160
  76. IfNextVowelAppend(;)
  77. FMT(vowel/ii#_3)
  78. endphoneme
  79. phoneme i // optional variant of [I] for end of words
  80. vowel starttype #i endtype #i
  81. unstressed
  82. length 170
  83. IfNextVowelAppend(;)
  84. FMT(vowel/ii_final)
  85. endphoneme
  86. phoneme 0
  87. vowel starttype #a endtype #a
  88. length 200
  89. ChangeIfDiminished(@)
  90. IF nextPh(r) THEN
  91. FMT(vwl_en_us/oor)
  92. ENDIF
  93. FMT(vowel/aa_8)
  94. endphoneme
  95. phoneme V
  96. vowel starttype #a endtype #@
  97. length 170
  98. ChangeIfDiminished(@)
  99. FMT(vowel/V_6)
  100. endphoneme
  101. phoneme U
  102. vowel starttype #o endtype #o
  103. length 145
  104. FMT(vowel/8_2)
  105. endphoneme
  106. phoneme A:
  107. vowel starttype #a endtype #a
  108. length 210
  109. IF nextPh(r) THEN
  110. FMT(vwl_en_us/ar)
  111. ENDIF
  112. FMT(vowel/aa_8)
  113. endphoneme
  114. phoneme A@ // Used for [A:] when followed by 'r', becomes [A:]+[r] in American
  115. vowel starttype #a endtype #a
  116. length 260
  117. IfNextVowelAppend(r-)
  118. FMT(vwl_en_us/ar)
  119. endphoneme
  120. phoneme 3:
  121. vowel starttype #@ endtype #@
  122. length 240
  123. IfNextVowelAppend(r-)
  124. FMT(vwl_en_us/3_us2)
  125. endphoneme
  126. phoneme i:
  127. vowel starttype #i endtype #i
  128. length 170
  129. IfNextVowelAppend(;)
  130. FMT(vowel/i_en)
  131. endphoneme
  132. phoneme O:
  133. vowel starttype #o endtype #o
  134. length 210
  135. ChangeIfDiminished(@)
  136. IF nextPh(r) THEN
  137. FMT(vwl_en_us/oor)
  138. ENDIF
  139. FMT(vowel/0_3)
  140. endphoneme
  141. phoneme O@
  142. vowel starttype #o endtype #@
  143. length 250
  144. IfNextVowelAppend(r)
  145. FMT(vwl_en_us/oor)
  146. endphoneme
  147. phoneme o@
  148. vowel starttype #o endtype #@
  149. length 250
  150. IfNextVowelAppend(r)
  151. FMT(vwl_en_us/or)
  152. endphoneme
  153. phoneme O
  154. vowel starttype #o endtype #o
  155. length 200
  156. ChangeIfDiminished(@)
  157. FMT(vowel/aa#)
  158. endphoneme
  159. phoneme u:
  160. vowel starttype #u endtype #u
  161. length 190
  162. FMT(vdiph2/uw)
  163. endphoneme
  164. phoneme aU
  165. vowel starttype #a endtype #o
  166. length 235
  167. FMT(vdiph/aoo)
  168. endphoneme
  169. phoneme oU
  170. vowel starttype #@ endtype #u
  171. length 230
  172. FMT(vdiph/8u)
  173. endphoneme
  174. phoneme aI
  175. vowel starttype #a endtype #i
  176. length 250
  177. FMT(vdiph/aae)
  178. endphoneme
  179. phoneme eI
  180. vowel starttype #e endtype #i
  181. length 230
  182. FMT(vdiph2/ei_4)
  183. endphoneme
  184. phoneme OI
  185. vowel starttype #o endtype #i
  186. length 285
  187. FMT(vdiph/ooi_4)
  188. endphoneme
  189. phoneme e@
  190. vowel starttype #e endtype #@
  191. length 280
  192. IfNextVowelAppend(r)
  193. FMT(vwl_en_us/er)
  194. endphoneme
  195. phoneme i@3
  196. vowel starttype #i endtype #@
  197. length 280
  198. IfNextVowelAppend(r)
  199. FMT(vwl_en_us/ir)
  200. endphoneme
  201. phoneme U@
  202. vowel starttype #@ endtype #@
  203. length 250
  204. IfNextVowelAppend(r-)
  205. FMT(vwl_en_us/ur)
  206. endphoneme
  207. phoneme aI@
  208. vowel starttype #a endtype #@
  209. length 300
  210. IfNextVowelAppend(r-)
  211. FMT(vwl_en_us/ai@)
  212. endphoneme
  213. phoneme aU@
  214. vowel starttype #a endtype #@
  215. length 300
  216. IfNextVowelAppend(r-)
  217. FMT(vwl_en_us/aU@)
  218. endphoneme
  219. //==============
  220. // Consonants
  221. //==============
  222. phoneme r/ // used for [r] when not preceding a vowel
  223. liquid
  224. lengthmod 2 //
  225. // formants NULL
  226. endphoneme
  227. phoneme t
  228. vls alv stop
  229. voicingswitch d
  230. lengthmod 2
  231. IF prevPh(isVowel) OR prevPh(n) THEN
  232. IF nextPh(isVowel) AND nextPh(isUnstressed) AND thisPh(notWordStart) AND nextPh(notWordStart) THEN
  233. ChangePhoneme(t#)
  234. ENDIF
  235. ENDIF
  236. Vowelin f1=0 f2=1700 -300 300 f3=-100 80
  237. Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
  238. IF nextPh(isPause2) THEN
  239. WAV(ustop/t_)
  240. ELIF nextPh(r) OR nextPh(R) OR nextPh(R2) THEN
  241. WAV(ustop/tr)
  242. ELIF nextPh(@-) THEN
  243. WAV(ustop/t_dnt, 50)
  244. ENDIF
  245. WAV(ustop/t, 90)
  246. endphoneme