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_spanish 2.9KB

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