ph_finnish 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338
  1. //====================================================
  2. // Finnish
  3. //====================================================
  4. phoneme : // Lengthen previous vowel by "length"
  5. virtual
  6. length 160
  7. endphoneme
  8. phoneme i
  9. vwl starttype #i endtype #i
  10. length 140
  11. IfNextVowelAppend(;)
  12. ChangeIfUnstressed(I)
  13. FMT(vowel/i_4)
  14. endphoneme
  15. phoneme I
  16. vwl starttype #i endtype #i
  17. length 140
  18. IfNextVowelAppend(;)
  19. FMT(vowel/ii_3)
  20. endphoneme
  21. phoneme e
  22. vwl starttype #e endtype #e
  23. length 150
  24. FMT(vowel/e_mid2)
  25. endphoneme
  26. phoneme &
  27. vwl starttype #a endtype #a
  28. length 150
  29. FMT(vowel/&)
  30. endphoneme
  31. phoneme a
  32. vwl starttype #a endtype #a
  33. length 170
  34. // ChangeIfUnstressed(a2)
  35. FMT(vowel/aa_9)
  36. endphoneme
  37. phoneme a2
  38. vwl starttype #a endtype #a
  39. length 170
  40. FMT(vowel/aa#)
  41. endphoneme
  42. phoneme o
  43. vwl starttype #o endtype #o
  44. length 155
  45. FMT(vowel/oo_1)
  46. endphoneme
  47. phoneme Y
  48. vwl starttype #@ endtype #@
  49. length 155
  50. FMT(vowel/y#)
  51. endphoneme
  52. phoneme u
  53. vwl starttype #u endtype #u
  54. length 140
  55. FMT(vowel/u_bck)
  56. endphoneme
  57. phoneme u1 // TEST
  58. vwl starttype #u endtype #u
  59. length 140
  60. FMT(vowel/u_2)
  61. endphoneme
  62. phoneme U // TEST
  63. vwl starttype #u endtype #u
  64. length 140
  65. FMT(vowel/uu_4)
  66. endphoneme
  67. phoneme y
  68. vwl starttype #u endtype #u
  69. length 150
  70. FMT(vowel/y)
  71. endphoneme
  72. // Diphthongs
  73. //===========
  74. phoneme ai
  75. vwl starttype #a endtype #i
  76. length 310
  77. lng
  78. FMT(vdiph/aai_3)
  79. endphoneme
  80. phoneme &i
  81. vwl starttype #a endtype #i
  82. length 290
  83. lng
  84. FMT(vdiph/&i)
  85. endphoneme
  86. phoneme oi
  87. vwl starttype #o endtype #i
  88. length 280
  89. lng
  90. FMT(vdiph/ooi)
  91. endphoneme
  92. phoneme ei
  93. vwl starttype #e endtype #i
  94. length 280
  95. lng
  96. FMT(vdiph/eei_2)
  97. endphoneme
  98. phoneme Yi
  99. vwl starttype #@ endtype #i
  100. length 270
  101. lng
  102. FMT(vdiph/y#i)
  103. endphoneme
  104. phoneme ui
  105. vwl starttype #u endtype #i
  106. length 270
  107. lng
  108. FMT(vdiph/ui_4)
  109. endphoneme
  110. phoneme yi
  111. vwl starttype #u endtype #i
  112. length 270
  113. lng
  114. FMT(vdiph/yi)
  115. endphoneme
  116. phoneme au
  117. vwl starttype #a endtype #u
  118. length 300
  119. lng
  120. FMT(vdiph/aau)
  121. endphoneme
  122. phoneme ou
  123. vwl starttype #o endtype #u
  124. length 280
  125. lng
  126. FMT(vdiph/ou)
  127. endphoneme
  128. phoneme eu
  129. vwl starttype #e endtype #u
  130. length 280
  131. lng
  132. FMT(vdiph/eu_2)
  133. endphoneme
  134. phoneme iu
  135. vwl starttype #i endtype #u
  136. length 280
  137. lng
  138. FMT(vdiph2/iu_2)
  139. endphoneme
  140. phoneme &y
  141. vwl starttype #a endtype #u
  142. length 280
  143. lng
  144. FMT(vdiph/&y)
  145. endphoneme
  146. phoneme ey
  147. vwl starttype #e endtype #u
  148. length 280
  149. lng
  150. FMT(vdiph/eey)
  151. endphoneme
  152. phoneme Yy
  153. vwl starttype #@ endtype #u
  154. length 270
  155. lng
  156. FMT(vdiph/y#y)
  157. endphoneme
  158. phoneme iy
  159. vwl starttype #i endtype #u
  160. length 260
  161. lng
  162. FMT(vdiph2/iy)
  163. endphoneme
  164. phoneme uo
  165. vwl starttype #u endtype #o
  166. length 280
  167. lng
  168. FMT(vdiph2/uo)
  169. endphoneme
  170. phoneme ie
  171. vwl starttype #i endtype #e
  172. length 280
  173. lng
  174. FMT(vdiph2/ie)
  175. endphoneme
  176. phoneme yY
  177. vwl starttype #u endtype #@
  178. length 280
  179. lng
  180. FMT(vdiph2/y-y#)
  181. endphoneme
  182. // CONSONANTS
  183. //===========
  184. phoneme r
  185. import_phoneme base1/R
  186. endphoneme
  187. phoneme R2 // this is [R2], but shorter
  188. liquid trl
  189. lengthmod 6
  190. ipa r
  191. Vowelin f1=0 f2=1700 -300 300 f3=-300 80
  192. Vowelout f1=2 f2=1700 -300 300 f3=-300 80 brk
  193. FMT(r3/r_trill_short) addWav(r3/r_trill.wav, 50)
  194. endphoneme
  195. phoneme v // approximant, not fricative
  196. vcd lbd frc
  197. lengthmod 6
  198. voicingswitch f
  199. Vowelin f1=0 f2=1000 -300 -200 f3=-300 100
  200. Vowelout f1=0 f2=1000 -500 -300 f3=-300 60 len=50
  201. IF nextPh(isPause2) THEN
  202. FMT(voc/v_)
  203. ENDIF
  204. FMT(voc/v)
  205. endphoneme
  206. phoneme t // dental variant of /t/
  207. import_phoneme base1/t[
  208. voicingswitch d
  209. endphoneme
  210. phoneme d
  211. vcd dnt stp
  212. voicingswitch t
  213. lengthmod 5
  214. Vowelin f1=2 f2=1700 -100 200 f3=0 80
  215. Vowelout f1=2 f2=1700 -100 200 f3=0 80 rms=20
  216. IF PreVoicing THEN
  217. FMT(d/xd)
  218. ENDIF
  219. IF nextPh(isPause2) THEN
  220. FMT(d/d_) addWav(x/d_)
  221. ELIF nextPh(r) THEN
  222. FMT(d/dr) addWav(x/d_dnt, 60)
  223. ENDIF
  224. FMT(d/d) addWav(x/d_dnt, 60)
  225. endphoneme
  226. phoneme p
  227. import_phoneme base2/p
  228. voicingswitch b
  229. endphoneme
  230. phoneme k
  231. import_phoneme base2/k
  232. voicingswitch g
  233. endphoneme
  234. phoneme s2 // second part of long [s]
  235. import_phoneme consonants/s2
  236. endphoneme
  237. phoneme h
  238. vls glt apr
  239. lengthmod 3
  240. IF nextPh(#@) THEN
  241. WAV(h/h@)
  242. ELIF nextPh(#a) THEN
  243. WAV(h/ha)
  244. ELIF nextPh(#e) THEN
  245. WAV(h/he)
  246. ELIF nextPh(#i) THEN
  247. WAV(h/hi)
  248. ELIF nextPh(#o) THEN
  249. WAV(h/hu_fi, 70)
  250. ELIF nextPh(#u) THEN
  251. WAV(h/hu_fi, 80)
  252. ENDIF
  253. WAV(h/h_, 70) // no vowel following
  254. endphoneme