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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  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. length 180
  34. // ChangeIfNotStressed(&)
  35. FMT(vnasal/a#_n)
  36. endphoneme
  37. phoneme &U~
  38. vowel starttype #@ endtype #u
  39. length 240
  40. FMT(vnasal/a#u_n)
  41. endphoneme
  42. phoneme oI~
  43. vowel starttype #o endtype #i
  44. length 260
  45. FMT(vnasal/oi_n)
  46. endphoneme
  47. phoneme &
  48. vowel starttype #@ endtype #@
  49. length 180
  50. FMT(vowel/a#_3)
  51. endphoneme
  52. phoneme &/ // Used for final "a" when next word starts with "a"
  53. vowel starttype #@ endtype #@
  54. length 180
  55. IF nextPh(isVowel) THEN
  56. ChangePhoneme(NULL)
  57. ENDIF
  58. FMT(vowel/a#_3)
  59. endphoneme
  60. phoneme A // for "al" in European Portuguese, don't reduce to [&]
  61. vowel starttype #a endtype #a
  62. length 200
  63. FMT(vowel/a_2)
  64. endphoneme
  65. phoneme E
  66. vowel starttype #e endtype #e
  67. length 170
  68. FMT(vowel/ee_3)
  69. endphoneme
  70. phoneme e
  71. vowel starttype #e endtype #e
  72. length 160
  73. FMT(vowel/e)
  74. endphoneme
  75. phoneme y // this is the same as [i] for Brazil
  76. vowel starttype #i endtype #i
  77. length 110
  78. IfNextVowelAppend(;)
  79. FMT(vowel/ii_6)
  80. endphoneme
  81. phoneme i/ // changes to [j] before a vowel
  82. vowel starttype #i endtype #i
  83. length 150
  84. IF nextPh(isVowel) THEN
  85. ChangePhoneme(j)
  86. ENDIF
  87. IfNextVowelAppend(;)
  88. FMT(vowel/ii_6)
  89. endphoneme
  90. phoneme O
  91. vowel starttype #o endtype #o
  92. length 170
  93. FMT(vowel/0)
  94. endphoneme
  95. phoneme u
  96. vowel starttype #u endtype #u
  97. length 160
  98. FMT(vowel/u_bck)
  99. endphoneme
  100. phoneme U
  101. vowel starttype #u endtype #u
  102. length 140
  103. FMT(vowel/uu_bck)
  104. endphoneme
  105. phoneme aI
  106. vowel starttype #a endtype #i
  107. length 230
  108. IfNextVowelAppend(;)
  109. FMT(vdiph/ai)
  110. endphoneme
  111. phoneme eI
  112. vowel starttype #e endtype #i
  113. length 210
  114. IfNextVowelAppend(;)
  115. FMT(vdiph/ei)
  116. endphoneme
  117. phoneme OI
  118. vowel starttype #o endtype #i
  119. length 230
  120. IfNextVowelAppend(;)
  121. FMT(vdiph/0i)
  122. endphoneme
  123. phoneme eU
  124. vowel starttype #e endtype #u
  125. length 230
  126. FMT(vdiph/eu)
  127. endphoneme
  128. phoneme EU
  129. vowel starttype #e endtype #u
  130. length 230
  131. FMT(vdiph/eeu)
  132. endphoneme
  133. phoneme l
  134. import_phoneme en/l // use 'dark' [l] after a vowel, should be [w]
  135. endphoneme
  136. phoneme x // this is [R] from Slovak/Czech
  137. liquid
  138. trill
  139. lengthmod 6
  140. Vowelin f1=0 f2=1700 -300 300 f3=-300 80
  141. Vowelout f1=2 f2=1700 -300 300 f3=-300 80 brk
  142. FMT(r3/r_trill) addWav(r3/r_trill.wav, 50)
  143. endphoneme
  144. phoneme r-
  145. import_phoneme en/r-
  146. endphoneme
  147. phoneme s# // This is [s] for Brazi;, [S] for Portugal
  148. import_phoneme base/s
  149. endphoneme
  150. phoneme *
  151. vcd alv stop
  152. lengthmod 6
  153. Vowelin f1=1 f2=1700 -300 300 f3=0 80
  154. Vowelout f1=2 f2=1700 -300 300 f3=0 80
  155. IF PreVoicing THEN
  156. FMT(d/x_tap)
  157. ENDIF
  158. FMT(d/tap2) addWav(x/d, 40)
  159. endphoneme