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_pt_brazil 3.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  1. //====================================================
  2. // Portuguese - based on Base2
  3. //====================================================
  4. phoneme I // epenthetic i
  5. vowel starttype #i endtype #i
  6. unstressed
  7. length 90
  8. FMT(vowel/ii_6)
  9. endphoneme
  10. phoneme e~
  11. vowel starttype #e endtype #e
  12. length 240
  13. FMT(vnasal/e_n)
  14. endphoneme
  15. phoneme i~
  16. vowel starttype #i endtype #i
  17. length 240
  18. IfNextVowelAppend(;)
  19. FMT(vnasal/i_n)
  20. endphoneme
  21. phoneme o~
  22. vowel starttype #o endtype #o
  23. length 240
  24. FMT(vnasal/o_n)
  25. endphoneme
  26. phoneme u~
  27. vowel starttype #u endtype #u
  28. length 180
  29. FMT(vnasal/u_n)
  30. endphoneme
  31. phoneme &~
  32. vowel starttype #@ endtype #@
  33. ipa ɐU+0303
  34. length 180
  35. FMT(vnasal/a#_n)
  36. endphoneme
  37. phoneme &U~
  38. vowel starttype #@ endtype #u
  39. ipa ɐU+0303ʊU+0303
  40. length 240
  41. FMT(vnasal/a#u_n)
  42. endphoneme
  43. phoneme oI~
  44. vowel starttype #o endtype #i
  45. ipa oU+0303ɪU+0303
  46. length 260
  47. FMT(vnasal/oi_n)
  48. endphoneme
  49. phoneme &
  50. vowel starttype #@ endtype #@
  51. length 180
  52. FMT(vowel/a#_3)
  53. endphoneme
  54. phoneme &/ // Used for final "a" when next word starts with "a"
  55. vowel starttype #@ endtype #@
  56. length 180
  57. IF nextPh(isVowel) THEN
  58. ChangePhoneme(NULL)
  59. ENDIF
  60. FMT(vowel/a#_3)
  61. endphoneme
  62. phoneme A // for "al" in European Portuguese, don't reduce to [&]
  63. vowel starttype #a endtype #a
  64. length 200
  65. FMT(vowel/a_2)
  66. endphoneme
  67. phoneme E
  68. vowel starttype #e endtype #e
  69. length 170
  70. FMT(vowel/ee_3)
  71. endphoneme
  72. phoneme e
  73. vowel starttype #e endtype #e
  74. length 160
  75. FMT(vowel/e)
  76. endphoneme
  77. phoneme y // this is the same as [i] for Brazil
  78. vowel starttype #i endtype #i
  79. length 110
  80. IfNextVowelAppend(;)
  81. FMT(vowel/ii_6)
  82. endphoneme
  83. phoneme i/ // changes to [j] before a vowel
  84. vowel starttype #i endtype #i
  85. length 150
  86. IF nextPh(isVowel) THEN
  87. ChangePhoneme(j)
  88. ENDIF
  89. IfNextVowelAppend(;)
  90. FMT(vowel/ii_6)
  91. endphoneme
  92. phoneme O
  93. vowel starttype #o endtype #o
  94. length 170
  95. FMT(vowel/0)
  96. endphoneme
  97. phoneme u
  98. vowel starttype #u endtype #u
  99. length 160
  100. FMT(vowel/u_bck)
  101. endphoneme
  102. phoneme U
  103. vowel starttype #u endtype #u
  104. length 140
  105. IF thisPh(isWordEnd) AND nextPh(isVowel) THEN
  106. ChangePhoneme(w)
  107. ENDIF
  108. FMT(vowel/uu_bck)
  109. endphoneme
  110. phoneme aI
  111. vowel starttype #a endtype #i
  112. length 230
  113. IfNextVowelAppend(;)
  114. FMT(vdiph/ai)
  115. endphoneme
  116. phoneme eI
  117. vowel starttype #e endtype #i
  118. length 210
  119. IfNextVowelAppend(;)
  120. FMT(vdiph/ei)
  121. endphoneme
  122. phoneme OI
  123. vowel starttype #o endtype #i
  124. length 230
  125. IfNextVowelAppend(;)
  126. FMT(vdiph/0i)
  127. endphoneme
  128. phoneme eU
  129. vowel starttype #e endtype #u
  130. length 230
  131. FMT(vdiph/eu)
  132. endphoneme
  133. phoneme EU
  134. vowel starttype #e endtype #u
  135. length 230
  136. FMT(vdiph/eeu)
  137. endphoneme
  138. phoneme l
  139. import_phoneme en/l // use 'dark' [l] after a vowel, should be [w]
  140. endphoneme
  141. phoneme x // this is [R] from Slovak/Czech
  142. liquid
  143. trill
  144. ipa ʁ
  145. lengthmod 6
  146. IF thisPh(isWordStart) THEN
  147. ChangePhoneme(h) // Change by Cleverson 22.09.2012
  148. ENDIF
  149. Vowelin f1=0 f2=1700 -300 300 f3=-300 80
  150. Vowelout f1=2 f2=1700 -300 300 f3=-300 80 brk
  151. FMT(r3/r_trill) addWav(r3/r_trill.wav, 50)
  152. endphoneme
  153. phoneme r-
  154. import_phoneme en/r-
  155. endphoneme
  156. phoneme s# // This is [s] for Brazi;, [S] for Portugal
  157. CALL base/s
  158. ipa s
  159. endphoneme
  160. phoneme *
  161. vcd alv stop
  162. lengthmod 6
  163. ipa ɾ
  164. Vowelin f1=1 f2=1700 -300 300 f3=0 80
  165. Vowelout f1=2 f2=1700 -300 300 f3=0 80
  166. IF PreVoicing THEN
  167. FMT(d/x_tap)
  168. ENDIF
  169. FMT(d/tap2) addWav(x/d, 40)
  170. endphoneme
  171. // TESTING
  172. phoneme &2~
  173. vowel starttype #@ endtype #@
  174. ipa ɐU+0303
  175. length 200
  176. FMT(vnasal/W_n)
  177. endphoneme