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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292
  1. //====================================================
  2. // Italian, last update February 4 2017 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. FMT(vwl_it/i)
  67. endphoneme
  68. phoneme i/
  69. vwl starttype #i endtype #i
  70. unstressed
  71. length 130
  72. IfNextVowelAppend(;)
  73. FMT(vwl_it/i, 90)
  74. endphoneme
  75. phoneme i# // Used for 'gia_' where [i] is only spoken if stressed
  76. vwl starttype #i endtype #i
  77. length 145
  78. ChangeIfNotStressed(NULL)
  79. ChangePhoneme(i)
  80. endphoneme
  81. phoneme I
  82. vwl starttype #i endtype #i
  83. length 145
  84. IfNextVowelAppend(;)
  85. FMT(vowel/i_7)
  86. endphoneme
  87. phoneme o
  88. vwl starttype #o endtype #o
  89. length 170
  90. ChangeIfNotStressed(o/)
  91. FMT(vwl_it/o)
  92. endphoneme
  93. phoneme o/
  94. vwl starttype #o endtype #o
  95. length 145
  96. IF nextPhW(isNasal) OR nextPhW(isLiquid) THEN
  97. FMT(vwl_it/o_open, 80)
  98. ENDIF
  99. IF thisPh(isWordEnd) AND NOT prevPhW(a) THEN
  100. length 150
  101. FMT(vowel/o_mid, 65)
  102. ENDIF
  103. FMT(vowel/o, 90)
  104. endphoneme
  105. phoneme O
  106. vwl starttype #o endtype #o
  107. length 150
  108. ChangeIfUnstressed(o/)
  109. FMT(vwl_it/o_open)
  110. endphoneme
  111. phoneme u
  112. vwl starttype #u endtype #u
  113. length 175
  114. ChangeIfNotStressed(U)
  115. FMT(vwl_it/u)
  116. endphoneme
  117. phoneme U
  118. vwl starttype #u endtype #u
  119. length 140
  120. FMT(vowel/u_bck2)
  121. endphoneme
  122. phoneme aU
  123. vwl starttype #a endtype #u
  124. length 270
  125. FMT(vdiph/au_4)
  126. endphoneme
  127. phoneme aI
  128. vwl starttype #a endtype #i
  129. length 250
  130. FMT(vdiph/ai)
  131. endphoneme
  132. phoneme oI
  133. vwl starttype #o endtype #i
  134. length 230
  135. FMT(vdiph/oi)
  136. endphoneme
  137. // CONSONANTS
  138. //==========
  139. phoneme l
  140. liquid
  141. lengthmod 7
  142. IF nextPh(isNotVowel) THEN
  143. ChangePhoneme(l/)
  144. ENDIF
  145. NextVowelStarts
  146. VowelStart(l/l@)
  147. VowelStart(l/la, -10)
  148. VowelStart(l/le, -15)
  149. VowelStart(l/li, -15)
  150. VowelStart(l/lo, -20)
  151. VowelStart(l/lu, -17)
  152. EndSwitch
  153. IF prevPh(#@) THEN
  154. VowelEnding(l/xl, -50)
  155. ELIF prevPh(isVowel) THEN
  156. VowelEnding(l/xl, -40)
  157. ENDIF
  158. IF prevPh(isPause) THEN
  159. FMT(l/_l)
  160. ENDIF
  161. IF prevPh(t) THEN
  162. FMT(l/tl)
  163. ENDIF
  164. IF prevPh(l/) THEN
  165. FMT(l/l_long)
  166. ENDIF
  167. FMT(l/l)
  168. endphoneme
  169. phoneme l^
  170. import_phoneme base1/l^
  171. length 130
  172. endphoneme
  173. phoneme ts
  174. vls alv afr sib
  175. voicingswitch s
  176. lengthmod 2
  177. Vowelin f1=0 f2=1700 -300 300 f3=-100 60 len=60
  178. Vowelout f1=0 f2=1700 -300 250 f3=-100 70 rms=18
  179. IF nextPh(isPause2) THEN
  180. WAV(ustop/ts_)
  181. ENDIF
  182. WAV(ustop/ts)
  183. endphoneme
  184. phoneme ts2
  185. vls alv afr sib
  186. voicingswitch dz
  187. lengthmod 9
  188. Vowelin f1=2 f2=1700 -300 300 f3=-200 120 len=10
  189. Vowelout f1=0 f2=1700 -300 250 f3=-100 170 rms=20 brk
  190. IF nextPh(isStressed) THEN
  191. Vowelin f1=0 f2=1700 -300 300 f3=-100 60 len=60
  192. Vowelout f1=0 f2=1700 -300 250 f3=-100 70 rms=14
  193. WAV(ustop/ts_, 80)
  194. ENDIF
  195. WAV(ustop/ts_, 70)
  196. endphoneme
  197. phoneme dz
  198. import_phoneme consonants/dz
  199. voicingswitch z
  200. lengthmod 3
  201. endphoneme
  202. phoneme ss
  203. vls alv frc sib
  204. voicingswitch z
  205. lengthmod 6
  206. Vowelin f1=2 f2=1700 -300 300 f3=-100 80
  207. Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
  208. length 170
  209. WAV(ufric/s, 86)
  210. endphoneme
  211. phoneme v
  212. vcd lbd frc
  213. voicingswitch f
  214. lengthmod 6
  215. Vowelin f1=0 f2=1000 -300 -200 f3=-300 100
  216. Vowelout f1=0 f2=1000 -500 -300 f3=-300 60 len=50
  217. IF prevPhW(z) THEN
  218. length 70
  219. FMT(voc/v_) addWav(vocw/v, 60)
  220. ENDIF
  221. IF KlattSynth THEN
  222. Vowelout f1=1 f2=1000 -500 -300 f3=-300 60 len=50 brk
  223. IF nextPh(isPause2) THEN
  224. FMT(klatt/v_) addWav(vocw/v)
  225. ENDIF
  226. FMT(klatt/v) addWav(vocw/v, 150)
  227. ENDIF
  228. IF nextPh(isPause2) THEN
  229. FMT(voc/v_) addWav(vocw/v)
  230. ENDIF
  231. IF thisPh(isWordStart) AND nextPhW(isLiquid) THEN
  232. length 70
  233. ENDIF
  234. FMT(voc/v) addWav(vocw/v, 90)
  235. endphoneme
  236. phoneme z
  237. vcd alv frc sib
  238. voicingswitch s
  239. lengthmod 6
  240. Vowelout f1=0 f2=1700 -300 300 f3=-100 60 len=50
  241. IF KlattSynth THEN
  242. Vowelin f1=0 f2=1390 -300 300 f3=0 0
  243. Vowelout f1=1 f2=1390 -300 300 f3=-100 60 len=50 brk
  244. ENDIF
  245. IF nextPhW(v) OR nextPhW(b) THEN
  246. FMT(voc/z) addWav(ufric/s!, 60)
  247. ENDIF
  248. FMT(voc/z) addWav(ufric/s_, 85)
  249. endphoneme