ph_spanish 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. //====================================================
  2. // Spanish - based on Base2
  3. //====================================================
  4. phoneme a
  5. vwl starttype #a endtype #a
  6. length 190
  7. ChangeIfNotStressed(a/)
  8. FMT(vowel/a_4)
  9. endphoneme
  10. phoneme a/
  11. vwl starttype #a endtype #a
  12. length 155
  13. IF thisPh(isWordEnd) THEN
  14. FMT(vowel/a_4, 85)
  15. ENDIF
  16. FMT(vowel/a_4, 95)
  17. endphoneme
  18. phoneme e
  19. vwl starttype #e endtype #e
  20. length 190
  21. ChangeIfNotStressed(e/)
  22. FMT(vowel/e_mid2)
  23. endphoneme
  24. phoneme e/
  25. vwl starttype #e endtype #e
  26. length 150
  27. FMT(vowel/e_mid2, 90)
  28. endphoneme
  29. phoneme E
  30. vwl starttype #e endtype #e
  31. length 175
  32. ChangeIfNotStressed(e/)
  33. FMT(vowel/e_mid2)
  34. endphoneme
  35. phoneme i
  36. vwl starttype #i endtype #i
  37. length 190
  38. IfNextVowelAppend(;)
  39. FMT(vowel/i)
  40. endphoneme
  41. phoneme o
  42. vwl starttype #o endtype #o
  43. length 195
  44. ChangeIfNotStressed(o/)
  45. IF nextPhW(n) THEN
  46. length 160
  47. FMT(vowel/o_mid2)
  48. ENDIF
  49. FMT(vowel/oo)
  50. endphoneme
  51. phoneme o/
  52. vwl starttype #o endtype #o
  53. length 155
  54. IF thisPh(isWordEnd) THEN
  55. FMT(vwl_es/oo_)
  56. ENDIF
  57. FMT(vowel/oo, 90)
  58. endphoneme
  59. phoneme u
  60. vwl starttype #u endtype #u
  61. length 200
  62. FMT(vowel/u_bck2)
  63. endphoneme
  64. phoneme oI
  65. vwl starttype #o endtype #i
  66. length 245
  67. IF thisPh(isWordEnd) OR prevPh(r) THEN
  68. length 260
  69. FMT(vwl_es/ooi_)
  70. ENDIF
  71. FMT(vwl_es/ooi)
  72. endphoneme
  73. phoneme g
  74. vcd vel stp
  75. lengthmod 5
  76. voicingswitch k
  77. Vowelin f1=2 f2=2300 200 300 f3=-300 80
  78. Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk
  79. IF nextPh(isVowel) OR nextPh(isRhotic) OR nextPh(isLiquid) THEN
  80. IF prevPh(isPause) OR prevPh(isNasal) THEN
  81. ELSE
  82. ChangePhoneme(Q)
  83. ENDIF
  84. ENDIF
  85. IF PreVoicing THEN
  86. FMT(g/xg)
  87. ENDIF
  88. IF nextPh(isPause2) THEN
  89. FMT(g/g_) addWav(x/g_)
  90. ENDIF
  91. FMT(g/g) addWav(x/g2) // weaker [g]
  92. endphoneme
  93. phoneme d
  94. vcd dnt stp
  95. IF nextPh(isVowel) OR nextPh(isRhotic) OR nextPh(j) THEN
  96. IF prevPh(isPause) OR prevPh(isNasal) OR prevPh(l) THEN
  97. ELSE
  98. ChangePhoneme(D)
  99. ENDIF
  100. ENDIF
  101. CALL base2/d
  102. endphoneme
  103. phoneme b
  104. vcd blb stp
  105. IF nextPh(isVowel) OR nextPh(isRhotic) OR nextPh(isLiquid) THEN
  106. IF prevPh(isPause) OR prevPh(isNasal) THEN
  107. ELSE
  108. ChangePhoneme(B)
  109. ENDIF
  110. ENDIF
  111. CALL base1/b
  112. endphoneme
  113. phoneme D
  114. vcd dnt frc
  115. lengthmod 6
  116. voicingswitch T
  117. CALL base1/D
  118. IF nextPh(isPause2) THEN
  119. FMT(voc/dh_) addWav(vocw/dh, 35) // weaker
  120. ENDIF
  121. endphoneme
  122. phoneme s
  123. vls alv frc sib
  124. lengthmod 3
  125. voicingswitch z
  126. Vowelin f1=0 f2=1700 -300 300 f3=-100 80
  127. Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
  128. IF nextPh(isPause) THEN
  129. WAV(ufric/s_, 60) // quieter 's' at end of word
  130. ELIF nextPh(p) OR nextPh(t) OR nextPh(k) THEN
  131. WAV(ufric/s!)
  132. ENDIF
  133. WAV(ufric/s, 80)
  134. endphoneme
  135. phoneme v# // a shorter [v], a little towards [b]
  136. vcd lbd frc
  137. ipa ʋ
  138. lengthmod 6
  139. voicingswitch f
  140. Vowelin f1=1 f2=1000 -300 -200 f3=-300 100
  141. Vowelout f1=0 f2=1000 -500 -300 f3=-300 60 len=10
  142. IF nextPh(isPause2) THEN
  143. FMT(voc/v_) addWav(vocw/v, 80)
  144. ENDIF
  145. FMT(voc/v2) addWav(vocw/v, 80)
  146. endphoneme
  147. phoneme r
  148. vcd alv flp rhotic
  149. brkafter
  150. ipa ɾ
  151. lengthmod 3
  152. IF nextPhW(isVowel) THEN
  153. ChangePhoneme(**)
  154. ENDIF
  155. CALL base1/*
  156. endphoneme