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_portugal 2.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. //====================================================
  2. // Portuguese/Portugal - based on Portuguese/Brazil
  3. //====================================================
  4. phoneme &
  5. vowel starttype #@ endtype #@
  6. length 180
  7. FMT(vowel/a#_3)
  8. unstressed
  9. endphoneme
  10. phoneme &/ // Used for final "a" when next word starts with "a"
  11. vowel starttype #@ endtype #@
  12. length 180
  13. IF nextPh(isVowel) THEN
  14. ChangePhoneme(NULL)
  15. ENDIF
  16. FMT(vowel/a#_3)
  17. endphoneme
  18. phoneme a
  19. vowel starttype #a endtype #a
  20. length 180
  21. ChangeIfNotStressed(&)
  22. FMT(vowel/a_2)
  23. endphoneme
  24. phoneme &~
  25. vowel starttype #e endtype #@
  26. length 240
  27. FMT(vnasal/ee_n2)
  28. endphoneme
  29. phoneme &U~
  30. vowel starttype #@ endtype #u
  31. length 240
  32. FMT(vnasal/a#u_n)
  33. endphoneme
  34. phoneme E
  35. vowel starttype #e endtype #e
  36. length 170
  37. ChangeIfUnstressed(y)
  38. FMT(vowel/e_mid)
  39. endphoneme
  40. phoneme e
  41. vowel starttype #e endtype #e
  42. length 160
  43. ChangeIfUnstressed(y)
  44. FMT(vowel/e)
  45. endphoneme
  46. phoneme y
  47. vowel starttype #@ endtype #@
  48. length 110
  49. FMT(vowel/i#_5)
  50. endphoneme
  51. phoneme i
  52. vowel starttype #i endtype #i
  53. length 150
  54. IfNextVowelAppend(;)
  55. FMT(vowel/i)
  56. endphoneme
  57. phoneme i/ // changes to NULL before a vowel
  58. vowel starttype #i endtype #i
  59. length 100
  60. IF nextPh(isVowel) THEN
  61. ChangePhoneme(NULL)
  62. ENDIF
  63. IfNextVowelAppend(;)
  64. FMT(vowel/i#_5)
  65. endphoneme
  66. phoneme O
  67. vowel starttype #o endtype #o
  68. length 170
  69. // ChangeIfNotStressed(o)
  70. FMT(vowel/0_2)
  71. endphoneme
  72. phoneme o
  73. vowel starttype #o endtype #o
  74. length 170
  75. ChangeIfNotStressed(u)
  76. FMT(vowel/o)
  77. endphoneme
  78. phoneme u
  79. vowel starttype #u endtype #u
  80. length 160
  81. FMT(vowel/u_6)
  82. endphoneme
  83. phoneme U
  84. vowel starttype #u endtype #u
  85. length 110
  86. IF nextPh(isVowel) THEN
  87. ChangePhoneme(w)
  88. ENDIF
  89. FMT(vowel/u_6)
  90. endphoneme
  91. phoneme EU
  92. vowel starttype #e endtype #u
  93. length 220
  94. FMT(vdiph/eeu_2)
  95. endphoneme
  96. phoneme w
  97. import_phoneme base2/w2
  98. endphoneme
  99. phoneme x // [r] for Portugal
  100. liquid
  101. trill
  102. lengthmod 7
  103. Vowelin f1=0 f2=1500 -400 400 f3=-400 80
  104. IF nextPh(isNotVowel) THEN
  105. ChangePhoneme(r/)
  106. ENDIF
  107. FMT(vwl_fr/@R) addWav(r3/rx, 120)
  108. endphoneme
  109. phoneme R // for Portugal this is same the as [r]
  110. import_phoneme pt/r
  111. endphoneme
  112. phoneme s# // This is [s] for Brazi;, [S] for Portugal
  113. import_phoneme base/S
  114. endphoneme