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

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