ph_italian 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399
  1. 
  2. //====================================================
  3. // Italian, last update november 10 2017 by Chris <llajta2012@gmail.com>
  4. //====================================================
  5. phoneme : // Lengthen previous vowel by "length"
  6. virtual
  7. length 50
  8. endphoneme
  9. phoneme a
  10. vwl starttype #a endtype #a
  11. length 160
  12. ChangeIfNotStressed(a/)
  13. IF thisPh(isWordEnd) AND prevPhW(t) AND thisPh(isStressed) THEN
  14. FMT(vowel/a)
  15. ENDIF
  16. IF nextPhW(o/) OR prevPhW(isVowel) OR prevPhW(j) THEN
  17. FMT(vowel/a)
  18. ENDIF
  19. FMT(vwl_it/a)
  20. endphoneme
  21. phoneme a/
  22. vwl starttype #a endtype #a
  23. length 150
  24. IF prevPhW(l) THEN
  25. FMT(vowel/a_7, 80)
  26. ENDIF
  27. IF thisPh(isWordEnd) THEN
  28. FMT(vowel/a_8, 70)
  29. ENDIF
  30. IF thisPh(isWordStart) THEN
  31. FMT(vwl_it/a, 85)
  32. ENDIF
  33. FMT(vowel/a_8, 80)
  34. endphoneme
  35. phoneme e
  36. vwl starttype #e endtype #e
  37. length 160
  38. ChangeIfNotStressed(e/)
  39. FMT(vowel/e_2)
  40. endphoneme
  41. phoneme e/
  42. vwl starttype #e endtype #e
  43. length 145
  44. IF nextPhW(isNasal) OR nextPhW(isLiquid) THEN
  45. FMT(vowel/e_mid2)
  46. ELIF thisPh(isWordEnd) THEN
  47. FMT(vowel/e, 65)
  48. ENDIF
  49. FMT(vowel/e)
  50. endphoneme
  51. phoneme E
  52. vwl starttype #e endtype #e
  53. length 150
  54. ChangeIfUnstressed(e/)
  55. FMT(vwl_it/e_open)
  56. endphoneme
  57. phoneme i
  58. vwl starttype #i endtype #i
  59. length 155
  60. IfNextVowelAppend(;)
  61. IF thisPh(isWordEnd) AND thisPh(isNotStressed) AND prevPhW(isNotVowel) THEN
  62. ChangePhoneme(I)
  63. ENDIF
  64. IF thisPh(isNotStressed) AND prevPhW(isNotVowel) AND nextPhW(isVowel) THEN
  65. ChangePhoneme(i/)
  66. ENDIF
  67. FMT(vwl_it/i)
  68. endphoneme
  69. phoneme i/
  70. vwl starttype #i endtype #i
  71. unstressed
  72. length 130
  73. IfNextVowelAppend(;)
  74. FMT(vwl_it/i, 90)
  75. endphoneme
  76. phoneme i# // Used for 'gia_' where [i] is only spoken if stressed
  77. vwl starttype #i endtype #i
  78. length 145
  79. ChangeIfNotStressed(NULL)
  80. ChangePhoneme(i)
  81. endphoneme
  82. phoneme I
  83. vwl starttype #i endtype #i
  84. length 145
  85. IfNextVowelAppend(;)
  86. FMT(vowel/i_7)
  87. endphoneme
  88. phoneme o
  89. vwl starttype #o endtype #o
  90. length 170
  91. ChangeIfNotStressed(o/)
  92. FMT(vwl_it/o)
  93. endphoneme
  94. phoneme o/
  95. vwl starttype #o endtype #o
  96. length 145
  97. IF nextPhW(isNasal) OR nextPhW(isLiquid) THEN
  98. FMT(vwl_it/o_open, 80)
  99. ENDIF
  100. IF thisPh(isWordEnd) AND NOT prevPhW(a) THEN
  101. length 150
  102. FMT(vowel/o_mid, 65)
  103. ENDIF
  104. FMT(vowel/o, 90)
  105. endphoneme
  106. phoneme O
  107. vwl starttype #o endtype #o
  108. length 150
  109. ChangeIfUnstressed(o/)
  110. FMT(vwl_it/o_open)
  111. endphoneme
  112. phoneme u
  113. vwl starttype #u endtype #u
  114. length 175
  115. ChangeIfNotStressed(U)
  116. FMT(vwl_it/u)
  117. endphoneme
  118. phoneme U
  119. vwl starttype #u endtype #u
  120. length 140
  121. FMT(vowel/u_bck2)
  122. endphoneme
  123. phoneme aU
  124. vwl starttype #a endtype #u
  125. length 270
  126. FMT(vdiph/au_4)
  127. endphoneme
  128. phoneme aI
  129. vwl starttype #a endtype #i
  130. length 250
  131. FMT(vdiph/ai)
  132. endphoneme
  133. phoneme oI
  134. vwl starttype #o endtype #i
  135. length 230
  136. FMT(vdiph/oi)
  137. endphoneme
  138. // CONSONANTS
  139. //==========
  140. phoneme l
  141. liquid
  142. lengthmod 7
  143. IF nextPh(isNotVowel) THEN
  144. ChangePhoneme(l/)
  145. ENDIF
  146. NextVowelStarts
  147. VowelStart(l/l@)
  148. VowelStart(l/la, -10)
  149. VowelStart(l/le, -15)
  150. VowelStart(l/li, -15)
  151. VowelStart(l/lo, -20)
  152. VowelStart(l/lu, -17)
  153. EndSwitch
  154. IF prevPh(#@) THEN
  155. VowelEnding(l/xl, -50)
  156. ELIF prevPh(isVowel) THEN
  157. VowelEnding(l/xl, -40)
  158. ENDIF
  159. IF prevPh(isPause) THEN
  160. FMT(l/_l)
  161. ENDIF
  162. IF prevPh(t) THEN
  163. FMT(l/tl)
  164. ENDIF
  165. IF prevPh(l/) THEN
  166. FMT(l/l_long)
  167. ENDIF
  168. FMT(l/l)
  169. endphoneme
  170. phoneme l^
  171. import_phoneme base1/l^
  172. length 130
  173. endphoneme
  174. phoneme ts
  175. vls alv afr sib
  176. voicingswitch s
  177. lengthmod 2
  178. Vowelin f1=0 f2=1700 -300 300 f3=-100 60 len=60
  179. Vowelout f1=0 f2=1700 -300 250 f3=-100 70 rms=18
  180. IF nextPh(isPause2) THEN
  181. WAV(ustop/ts_)
  182. ENDIF
  183. WAV(ustop/ts)
  184. endphoneme
  185. phoneme ts2
  186. vls alv afr sib
  187. voicingswitch dz
  188. lengthmod 9
  189. Vowelin f1=2 f2=1700 -300 300 f3=-200 120 len=10
  190. Vowelout f1=0 f2=1700 -300 250 f3=-100 170 rms=20 brk
  191. IF nextPh(isStressed) THEN
  192. Vowelin f1=0 f2=1700 -300 300 f3=-100 60 len=60
  193. Vowelout f1=0 f2=1700 -300 250 f3=-100 70 rms=14
  194. WAV(ustop/ts_, 80)
  195. ENDIF
  196. WAV(ustop/ts_, 70)
  197. endphoneme
  198. phoneme dz
  199. import_phoneme consonants/dz
  200. voicingswitch z
  201. lengthmod 3
  202. endphoneme
  203. phoneme ss
  204. vls alv frc sib
  205. voicingswitch z
  206. lengthmod 6
  207. Vowelin f1=2 f2=1700 -300 300 f3=-100 80
  208. Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
  209. length 170
  210. WAV(ufric/s, 86)
  211. endphoneme
  212. phoneme v
  213. vcd lbd frc
  214. voicingswitch f
  215. lengthmod 6
  216. Vowelin f1=0 f2=1000 -300 -200 f3=-300 100
  217. Vowelout f1=0 f2=1000 -500 -300 f3=-300 60 len=50
  218. IF prevPhW(z) THEN
  219. length 70
  220. FMT(voc/v_) addWav(vocw/v, 60)
  221. ENDIF
  222. IF KlattSynth THEN
  223. Vowelout f1=1 f2=1000 -500 -300 f3=-300 60 len=50 brk
  224. IF nextPh(isPause2) THEN
  225. FMT(klatt/v_) addWav(vocw/v)
  226. ENDIF
  227. FMT(klatt/v) addWav(vocw/v, 150)
  228. ENDIF
  229. IF nextPh(isPause2) THEN
  230. FMT(voc/v_) addWav(vocw/v)
  231. ENDIF
  232. IF thisPh(isWordStart) AND nextPhW(isLiquid) THEN
  233. length 70
  234. ENDIF
  235. FMT(voc/v) addWav(vocw/v, 90)
  236. endphoneme
  237. phoneme z
  238. vcd alv frc sib
  239. voicingswitch s
  240. lengthmod 6
  241. Vowelout f1=0 f2=1700 -300 300 f3=-100 60 len=50
  242. IF KlattSynth THEN
  243. Vowelin f1=0 f2=1390 -300 300 f3=0 0
  244. Vowelout f1=1 f2=1390 -300 300 f3=-100 60 len=50 brk
  245. ENDIF
  246. IF nextPhW(v) OR nextPhW(b) THEN
  247. FMT(voc/z) addWav(ufric/s!, 60)
  248. ENDIF
  249. FMT(voc/z) addWav(ufric/s_, 85)
  250. endphoneme
  251. // Consonant weakening [ITA] (Spirantizzazione delle occlusive)
  252. phoneme k~
  253. vls vel stp
  254. lengthmod 2
  255. voicingswitch g
  256. IF prevPh(isVowel) AND nextPhW(isVowel) THEN
  257. ChangePhoneme(h)
  258. ENDIF
  259. Vowelin f1=0 f2=2300 200 400 f3=-100 80
  260. Vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20
  261. IF nextPh(isPause2) THEN
  262. WAV(ustop/k_)
  263. ELIF nextPh(isRhotic) THEN
  264. WAV(ustop/kr)
  265. ELIF nextPh(l) THEN
  266. WAV(ustop/kl)
  267. ENDIF
  268. WAV(ustop/k_unasp, 70)
  269. endphoneme
  270. phoneme tS~
  271. vls pla afr sib
  272. voicingswitch dZ
  273. lengthmod 2
  274. IF prevPh(isVowel) AND nextPhW(isVowel) THEN
  275. ChangePhoneme(S)
  276. ENDIF
  277. Vowelin f1=0 f2=2300 200 400 f3=-100 80
  278. IF nextPh(isPause2) THEN
  279. WAV(ustop/tsh_)
  280. ENDIF
  281. WAV(ustop/tsh)
  282. endphoneme
  283. phoneme dZ~
  284. vcd pla afr sib
  285. voicingswitch S
  286. lengthmod 5
  287. IF prevPh(isVowel) AND nextPhW(isVowel) THEN
  288. ChangePhoneme(Z)
  289. ENDIF
  290. Vowelin f1=2 f2=2300 200 400 f3=100 80
  291. Vowelout f1=2 f2=2300 250 300 f3=100 80 brk
  292. IF PreVoicing THEN
  293. FMT(dzh/xdzh)
  294. ENDIF
  295. IF nextPh(isPause2) THEN
  296. FMT(dzh/dzh_) addWav(x/dzh_)
  297. ENDIF
  298. FMT(dzh/dzh) addWav(x/dzh)
  299. endphoneme
  300. phoneme g~
  301. vcd vel stp
  302. voicingswitch k
  303. lengthmod 5
  304. IF prevPh(isVowel) AND nextPhW(isVowel) THEN
  305. ChangePhoneme(Q~)
  306. ENDIF
  307. Vowelin f1=2 f2=2300 200 300 f3=-300 80
  308. Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk
  309. IF nextPh(isPause2) THEN
  310. FMT(g/g_) addWav(x/g_)
  311. ENDIF
  312. FMT(g/g) addWav(x/g2, 130)
  313. endphoneme
  314. phoneme Q~
  315. vcd vel frc
  316. voicingswitch x
  317. lengthmod 6
  318. Vowelin f1=2 f2=2300 200 400 f3=-100 80
  319. Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk
  320. IF KlattSynth THEN
  321. IF nextPh(isPause2) THEN
  322. FMT(klatt/qqh_) addWav(vocw/Q_)
  323. ENDIF
  324. FMT(klatt/qqh) addWav(vocw/Q)
  325. ENDIF
  326. IF nextPh(isPause2) THEN
  327. FMT(voc/Q_) addWav(vocw/Q_)
  328. ENDIF
  329. FMT(voc/Q) addWav(vocw/Q2, 70)
  330. endphoneme
  331. phoneme S~
  332. vls pla frc sib
  333. voicingswitch Z
  334. lengthmod 3
  335. Vowelin f1=0 f2=2100 100 300 f3=-100 80
  336. Vowelout f1=0 f2=2100 100 300 f3=-100 80
  337. IF nextPhW(isVowel) THEN
  338. ChangePhoneme(s)
  339. ENDIF
  340. WAV(ufric/sh, 85)
  341. endphoneme