ph_portugal 2.5 KB

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