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

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