ph_s_gaelic 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356
  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 lng
  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 lng
  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 lng
  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 lng
  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 lng
  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 lng
  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 lng
  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 #@ lng
  99. ipa ɯ
  100. length 240
  101. FMT(vowel/u_bck2)
  102. endphoneme
  103. phoneme u-
  104. vwl starttype #@ endtype #@
  105. ipa ɯ
  106. length 130
  107. FMT(vowel/u_bck2)
  108. endphoneme
  109. phoneme o-:
  110. vwl starttype #@ endtype #@ lng
  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 #@ lng
  126. length 240
  127. ChangeIfNotStressed(@)
  128. FMT(vdiph2/i@)
  129. endphoneme
  130. phoneme ia
  131. vwl starttype #i endtype #@ lng
  132. length 240
  133. ChangeIfNotStressed(@)
  134. FMT(vdiph2/i@_3)
  135. endphoneme
  136. phoneme u@
  137. vwl starttype #u endtype #@ lng
  138. length 240
  139. FMT(vdiph2/u@)
  140. endphoneme
  141. phoneme aI
  142. vwl starttype #a endtype #i lng
  143. length 240
  144. ChangeIfUnstressed(@)
  145. FMT(vdiph/ai)
  146. endphoneme
  147. phoneme eI
  148. vwl starttype #e endtype #i lng
  149. length 240
  150. FMT(vdiph/ei)
  151. endphoneme
  152. phoneme @I
  153. vwl starttype #@ endtype #i lng
  154. length 240
  155. FMT(vdiph/@i)
  156. endphoneme
  157. phoneme u-I
  158. vwl starttype #@ endtype #i lng
  159. ipa ɯɪ
  160. length 240
  161. FMT(vdiph/u-i)
  162. endphoneme
  163. phoneme aU
  164. vwl starttype #a endtype #u lng
  165. length 240
  166. ChangeIfUnstressed(@)
  167. FMT(vdiph/aau_4)
  168. endphoneme
  169. phoneme OU
  170. vwl starttype #@ endtype #u lng
  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 stp
  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 stp
  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. import_phoneme base1/S;
  207. endphoneme
  208. phoneme n[ // temporary
  209. import_phoneme n
  210. endphoneme
  211. phoneme * // reduced [t] as in "city"
  212. vcd alv stp
  213. ipa ɾ
  214. lengthmod 5
  215. Vowelin f1=1 f2=1700 -300 300 f3=-100 80
  216. Vowelout f1=2 f2=1700 -300 300 f3=-100 80
  217. IF KlattSynth THEN
  218. IF PreVoicing THEN
  219. FMT(klatt/x_tap)
  220. ENDIF
  221. FMT(klatt/tap2) addWav(x/d, 70)
  222. ENDIF
  223. IF PreVoicing THEN
  224. FMT(d/x_tap)
  225. ENDIF
  226. FMT(d/tap2) addWav(x/d, 25)
  227. endphoneme
  228. phoneme *;
  229. import_phoneme D
  230. endphoneme
  231. phoneme R
  232. import_phoneme R2
  233. endphoneme
  234. phoneme & // the epenthetic vowel
  235. vwl starttype #@ endtype #@
  236. unstressed
  237. length 130
  238. IF prevVowel(a) THEN
  239. ChangePhoneme(a)
  240. ELSEIF prevVowel(E) THEN
  241. IF prevPh(*) THEN
  242. ChangePhoneme(a)
  243. ELSE
  244. ChangePhoneme(E)
  245. ENDIF
  246. ELSEIF prevVowel(O) THEN
  247. ChangePhoneme(O)
  248. ELSEIF prevVowel(i) THEN
  249. ChangePhoneme(i)
  250. ELSEIF prevVowel(e) THEN
  251. ChangePhoneme(e)
  252. ELSEIF prevVowel(u) THEN
  253. ChangePhoneme(u)
  254. ELSEIF prevVowel(u-) THEN
  255. ChangePhoneme(u-)
  256. ELSEIF prevVowel(o-) THEN
  257. ChangePhoneme(o-)
  258. ENDIF
  259. ChangePhoneme(NULL)
  260. endphoneme
  261. phoneme # // used for pre-aspiration
  262. vls glt apr
  263. IF NOT prevPhW(isVowel) OR thisPh(isNotStressed) OR prevVowel(isLong) THEN
  264. ChangePhoneme(NULL)
  265. ELSE
  266. IF nextPhW(g;) OR nextPhW(k;) THEN
  267. ChangePhoneme(C)
  268. ELSEIF nextPhW(g) OR nextPhW(k) THEN
  269. ChangePhoneme(x)
  270. ELSE
  271. ChangePhoneme(h)
  272. ENDIF
  273. ENDIF
  274. endphoneme
  275. // [h] only if followed by a vowel
  276. phoneme h#
  277. vls glt apr
  278. IF nextPh(isVowel) THEN
  279. ChangePhoneme(h)
  280. ELSE
  281. ChangePhoneme(NULL)
  282. ENDIF
  283. endphoneme