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_italian 7.5KB

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