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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. //====================================================
  2. // Italian, last update 4 june 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/) THEN
  16. FMT(vowel/a_2)
  17. ENDIF
  18. IF prevPhW(isVowel) OR prevPhW(j) THEN
  19. FMT(vowel/a, 90)
  20. ENDIF
  21. FMT(vwl_it/a)
  22. endphoneme
  23. phoneme a/
  24. vowel starttype #a endtype #a
  25. length 145
  26. IF thisPh(isWordEnd) THEN
  27. FMT(vowel/a_7, 75)
  28. ENDIF
  29. FMT(vowel/a_8)
  30. endphoneme
  31. phoneme e
  32. vowel starttype #e endtype #e
  33. length 155
  34. ChangeIfNotStressed(e/)
  35. FMT(vowel/e_2, 80)
  36. endphoneme
  37. phoneme e/
  38. vowel starttype #e endtype #e
  39. length 140
  40. IF nextPhW(isNasal) OR nextPhW(isLiquid) THEN
  41. FMT(vowel/e_mid2)
  42. ELIF thisPh(isWordEnd) THEN
  43. FMT(vowel/e, 65)
  44. ENDIF
  45. FMT(vowel/e)
  46. endphoneme
  47. phoneme E
  48. vowel starttype #e endtype #e
  49. length 150
  50. ChangeIfUnstressed(e/)
  51. FMT(vwl_it/e_open)
  52. endphoneme
  53. phoneme i
  54. vowel starttype #i endtype #i
  55. length 145
  56. IfNextVowelAppend(;)
  57. IF thisPh(isWordEnd) AND thisPh(isNotStressed) AND NOT prevPhW(E) THEN
  58. ChangePhoneme(I)
  59. ENDIF
  60. FMT(vwl_it/i)
  61. endphoneme
  62. phoneme i# // Used for 'gia_' where [i] is only spoken if stressed
  63. vowel starttype #i endtype #i
  64. length 145
  65. ChangeIfNotStressed(NULL)
  66. ChangePhoneme(i)
  67. endphoneme
  68. phoneme I
  69. vowel starttype #i endtype #i
  70. length 140
  71. IfNextVowelAppend(;)
  72. FMT(vowel/i_4)
  73. endphoneme
  74. phoneme o
  75. vowel starttype #o endtype #o
  76. length 160
  77. ChangeIfNotStressed(o/)
  78. FMT(vwl_it/o)
  79. endphoneme
  80. phoneme o/
  81. vowel starttype #o endtype #o
  82. length 145
  83. IF nextPhW(isNasal) OR nextPhW(isLiquid) THEN
  84. FMT(vwl_it/o_open, 80)
  85. ENDIF
  86. IF thisPh(isWordEnd) THEN
  87. FMT(vwl_it/o, 65)
  88. ENDIF
  89. FMT(vowel/o)
  90. endphoneme
  91. phoneme O
  92. vowel starttype #o endtype #o
  93. length 150
  94. ChangeIfUnstressed(o/)
  95. FMT(vwl_it/o_open)
  96. endphoneme
  97. phoneme u
  98. vowel starttype #u endtype #u
  99. length 160
  100. ChangeIfNotStressed(U)
  101. FMT(vwl_it/u)
  102. endphoneme
  103. phoneme U
  104. vowel starttype #u endtype #u
  105. length 140
  106. FMT(vowel/u_bck2)
  107. endphoneme
  108. phoneme aU
  109. vowel starttype #a endtype #u
  110. length 270
  111. FMT(vdiph/au_4)
  112. endphoneme
  113. phoneme aI
  114. vowel starttype #a endtype #i
  115. length 250
  116. FMT(vdiph/ai)
  117. endphoneme
  118. phoneme oI
  119. vowel starttype #o endtype #i
  120. length 230
  121. FMT(vdiph/oi)
  122. endphoneme
  123. // CONSONANTS
  124. //==========
  125. phoneme l
  126. liquid
  127. lengthmod 7
  128. IF nextPh(isNotVowel) THEN
  129. ChangePhoneme(l/)
  130. ENDIF
  131. NextVowelStarts
  132. VowelStart(l/l@)
  133. VowelStart(l/la, -10)
  134. VowelStart(l/le, -15)
  135. VowelStart(l/li, -15)
  136. VowelStart(l/lo, -20)
  137. VowelStart(l/lu, -17)
  138. EndSwitch
  139. IF prevPh(#@) THEN
  140. VowelEnding(l/xl, -50)
  141. ELIF prevPh(isVowel) THEN
  142. VowelEnding(l/xl, -40)
  143. ENDIF
  144. IF prevPh(isPause) THEN
  145. FMT(l/_l)
  146. ENDIF
  147. IF prevPh(t) THEN
  148. FMT(l/tl)
  149. ENDIF
  150. IF prevPh(l/) THEN
  151. FMT(l/l_long)
  152. ENDIF
  153. FMT(l/l)
  154. endphoneme
  155. phoneme l^
  156. import_phoneme base/l^
  157. Length 130
  158. endphoneme
  159. phoneme ts
  160. vls alv afr sibilant
  161. voicingswitch s
  162. lengthmod 9
  163. Vowelin f1=0 f2=1700 -300 300 f3=-100 60 len=60
  164. Vowelout f1=0 f2=1700 -300 250 f3=-100 70 rms=14
  165. IF nextPh(isNotVowel) THEN
  166. WAV(ustop/ts_, 80)
  167. ENDIF
  168. IF prevPhW(isNotVowel) THEN
  169. WAV(ustop/ts_, 70)
  170. ENDIF
  171. WAV(ustop/ts)
  172. endphoneme
  173. phoneme dz
  174. import_phoneme consonants/dz
  175. voicingswitch z
  176. lengthmod 3
  177. endphoneme
  178. phoneme ss
  179. vls alv frc sibilant
  180. voicingswitch z
  181. lengthmod 6
  182. Vowelin f1=2 f2=1700 -300 300 f3=-100 80
  183. Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
  184. length 170
  185. WAV(ufric/s, 86)
  186. endphoneme