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.2KB

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