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_s_gaelic 5.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357
  1. // Phoneme table for Scottish Gaelic (lang=gd)
  2. // Vowels
  3. phoneme I
  4. vwl starttype #i endtype #i
  5. unstressed
  6. length 130
  7. FMT(vowel/ii)
  8. endphoneme
  9. phoneme @
  10. vwl starttype #@ endtype #@
  11. unstressed
  12. length 130
  13. FMT(vowel/@_6)
  14. endphoneme
  15. phoneme i:
  16. vwl starttype #i endtype #i long
  17. length 240
  18. ChangeIfUnstressed(i)
  19. FMT(vowel/i)
  20. endphoneme
  21. phoneme i
  22. vwl starttype #i endtype #i
  23. length 130
  24. ChangeIfUnstressed(I)
  25. FMT(vowel/i_6)
  26. endphoneme
  27. phoneme e:
  28. vwl starttype #e endtype #e long
  29. length 240
  30. ChangeIfUnstressed(@)
  31. FMT(vowel/e)
  32. endphoneme
  33. phoneme e
  34. vwl starttype #e endtype #e
  35. length 130
  36. ChangeIfUnstressed(@)
  37. FMT(vowel/e)
  38. endphoneme
  39. phoneme E:
  40. vwl starttype #e endtype #e long
  41. length 240
  42. FMT(vowel/ee)
  43. endphoneme
  44. phoneme E
  45. vwl starttype #e endtype #e
  46. length 130
  47. FMT(vowel/ee)
  48. endphoneme
  49. phoneme a:
  50. vwl starttype #a endtype #a long
  51. length 240
  52. ChangeIfUnstressed(a)
  53. FMT(vowel/aa_8)
  54. endphoneme
  55. phoneme a
  56. vwl starttype #a endtype #a
  57. length 130
  58. ChangeIfUnstressed(@)
  59. FMT(vowel/a)
  60. endphoneme
  61. phoneme a2 // doesn't reduce to [@]
  62. vwl starttype #a endtype #a
  63. length 130
  64. FMT(vowel/a)
  65. endphoneme
  66. phoneme O:
  67. vwl starttype #o endtype #o long
  68. length 240
  69. FMT(vowel/oo_2)
  70. endphoneme
  71. phoneme O
  72. vwl starttype #o endtype #o
  73. length 130
  74. FMT(vowel/oo_2)
  75. endphoneme
  76. phoneme o:
  77. vwl starttype #o endtype #o long
  78. length 240
  79. FMT(vowel/o)
  80. endphoneme
  81. phoneme o
  82. vwl starttype #o endtype #o
  83. length 130
  84. FMT(vowel/o_2)
  85. endphoneme
  86. phoneme u:
  87. vwl starttype #u endtype #u long
  88. length 240
  89. ChangeIfUnstressed(u)
  90. FMT(vowel/u_bck2)
  91. endphoneme
  92. phoneme u
  93. vwl starttype #u endtype #u
  94. length 130
  95. FMT(vowel/u_bck2)
  96. endphoneme
  97. phoneme u-
  98. vwl starttype #@ endtype #@
  99. ipa ɯ
  100. length 240
  101. FMT(vowel/u_bck2)
  102. endphoneme
  103. phoneme u-
  104. vwl starttype #@ endtype #@ long
  105. ipa ɯ
  106. length 130
  107. FMT(vowel/u_bck2)
  108. endphoneme
  109. phoneme o-
  110. vwl starttype #@ endtype #@ long
  111. ipa ɤ
  112. length 240
  113. ChangeIfUnstressed(@)
  114. FMT(vowel/8_7)
  115. endphoneme
  116. phoneme o-
  117. vwl starttype #@ endtype #@
  118. ipa ɤ
  119. length 130
  120. ChangeIfUnstressed(@)
  121. FMT(vowel/8_7)
  122. endphoneme
  123. // Diphthongs
  124. phoneme i@
  125. vwl starttype #i endtype #@ long
  126. length 240
  127. ChangeIfNotStressed(@)
  128. FMT(vdiph2/i@)
  129. endphoneme
  130. phoneme ia
  131. vwl starttype #i endtype #@ long
  132. length 240
  133. ChangeIfNotStressed(@)
  134. FMT(vdiph2/i@_3)
  135. endphoneme
  136. phoneme u@
  137. vwl starttype #u endtype #@ long
  138. length 240
  139. FMT(vdiph2/u@)
  140. endphoneme
  141. phoneme aI
  142. vwl starttype #a endtype #i long
  143. length 240
  144. ChangeIfUnstressed(@)
  145. FMT(vdiph/ai)
  146. endphoneme
  147. phoneme eI
  148. vwl starttype #e endtype #i long
  149. length 240
  150. FMT(vdiph/ei)
  151. endphoneme
  152. phoneme @I
  153. vwl starttype #@ endtype #i long
  154. length 240
  155. FMT(vdiph/@i)
  156. endphoneme
  157. phoneme u-I
  158. vwl starttype #@ endtype #i long
  159. ipa ɯɪ
  160. length 240
  161. FMT(vdiph/u-i)
  162. endphoneme
  163. phoneme aU
  164. vwl starttype #a endtype #u long
  165. length 240
  166. ChangeIfUnstressed(@)
  167. FMT(vdiph/aau_4)
  168. endphoneme
  169. phoneme OU
  170. vwl starttype #@ endtype #u long
  171. length 240
  172. FMT(vdiph/Vu)
  173. endphoneme
  174. // Consonants
  175. phoneme b
  176. import_phoneme is/b
  177. endphoneme
  178. phoneme d
  179. import_phoneme is/d
  180. endphoneme
  181. phoneme d;
  182. import_phoneme hi/c
  183. endphoneme
  184. phoneme g
  185. import_phoneme is/g
  186. endphoneme
  187. phoneme g;
  188. vls vel stop
  189. Vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70
  190. Vowelout f1=1 f2=2700 400 600 f3=200 70 len=50 colr=1
  191. WAV(ustop/ki_ejc, 130)
  192. endphoneme
  193. phoneme k;
  194. vls vel stop
  195. Vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70
  196. Vowelout f1=1 f2=2700 400 600 f3=200 70 len=50 colr=1
  197. WAV(ustop/ki)
  198. endphoneme
  199. phoneme t
  200. import_phoneme hi/t#
  201. endphoneme
  202. phoneme t;
  203. import_phoneme hi/c#
  204. endphoneme
  205. phoneme S
  206. vls pal frc sibilant palatal
  207. CALL base/S;
  208. ipa ʃ
  209. endphoneme
  210. phoneme n[ // temporary
  211. import_phoneme n
  212. endphoneme
  213. phoneme * // reduced [t] as in "city"
  214. vcd alv stop
  215. ipa ɾ
  216. lengthmod 5
  217. Vowelin f1=1 f2=1700 -300 300 f3=-100 80
  218. Vowelout f1=2 f2=1700 -300 300 f3=-100 80
  219. IF KlattSynth THEN
  220. IF PreVoicing THEN
  221. FMT(klatt/x_tap)
  222. ENDIF
  223. FMT(klatt/tap2) addWav(x/d, 70)
  224. ENDIF
  225. IF PreVoicing THEN
  226. FMT(d/x_tap)
  227. ENDIF
  228. FMT(d/tap2) addWav(x/d, 25)
  229. endphoneme
  230. phoneme *;
  231. import_phoneme D
  232. endphoneme
  233. phoneme R
  234. import_phoneme R2
  235. endphoneme
  236. phoneme & // the epenthetic vowel
  237. vwl starttype #@ endtype #@
  238. unstressed
  239. length 130
  240. IF prevVowel(a) THEN
  241. ChangePhoneme(a)
  242. ELSEIF prevVowel(E) THEN
  243. IF prevPh(*) THEN
  244. ChangePhoneme(a)
  245. ELSE
  246. ChangePhoneme(E)
  247. ENDIF
  248. ELSEIF prevVowel(O) THEN
  249. ChangePhoneme(O)
  250. ELSEIF prevVowel(i) THEN
  251. ChangePhoneme(i)
  252. ELSEIF prevVowel(e) THEN
  253. ChangePhoneme(e)
  254. ELSEIF prevVowel(u) THEN
  255. ChangePhoneme(u)
  256. ELSEIF prevVowel(u-) THEN
  257. ChangePhoneme(u-)
  258. ELSEIF prevVowel(o-) THEN
  259. ChangePhoneme(o-)
  260. ENDIF
  261. ChangePhoneme(NULL)
  262. endphoneme
  263. phoneme # // used for pre-aspiration
  264. vls glt apr
  265. IF NOT prevPhW(isVowel) OR thisPh(isNotStressed) OR prevVowel(isLong) THEN
  266. ChangePhoneme(NULL)
  267. ELSE
  268. IF nextPhW(g;) OR nextPhW(k;) THEN
  269. ChangePhoneme(C)
  270. ELSEIF nextPhW(g) OR nextPhW(k) THEN
  271. ChangePhoneme(x)
  272. ELSE
  273. ChangePhoneme(h)
  274. ENDIF
  275. ENDIF
  276. endphoneme
  277. // [h] only if followed by a vowel
  278. phoneme h#
  279. vls glt apr
  280. IF nextPh(isVowel) THEN
  281. ChangePhoneme(h)
  282. ELSE
  283. ChangePhoneme(NULL)
  284. ENDIF
  285. endphoneme