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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. //====================================================
  2. // Spanish - based on Base2
  3. //====================================================
  4. phoneme e
  5. vowel starttype #e endtype #e
  6. length 170
  7. FMT(vowel/e_mid2)
  8. endphoneme
  9. phoneme E
  10. vowel starttype #e endtype #e
  11. length 180
  12. FMT(vowel/e_mid)
  13. endphoneme
  14. phoneme O
  15. vowel starttype #o endtype #o
  16. length 170
  17. FMT(vowel/oo)
  18. endphoneme
  19. phoneme g
  20. vcd vel stop
  21. lengthmod 5
  22. voicingswitch k
  23. Vowelin f1=2 f2=2300 200 300 f3=-300 80
  24. Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk
  25. IF thisPh(isWordStart) AND nextPh(isVowel) THEN
  26. IF prevPh(isPause) OR prevPh(isNasal) THEN
  27. ELSE
  28. ChangePhoneme(Q)
  29. ENDIF
  30. ENDIF
  31. IF PreVoicing THEN
  32. FMT(g/xg)
  33. ENDIF
  34. IF nextPh(isPause2) THEN
  35. FMT(g/g_) addWav(x/g_)
  36. ENDIF
  37. FMT(g/g) addWav(x/g2) // weaker [g]
  38. endphoneme
  39. phoneme d
  40. vcd dnt stop
  41. IF thisPh(isWordStart) AND nextPh(isVowel) THEN
  42. IF prevPh(isPause) OR prevPh(isNasal) OR prevPh(l) THEN
  43. ELSE
  44. ChangePhoneme(D)
  45. ENDIF
  46. ENDIF
  47. CALL base2/d
  48. endphoneme
  49. phoneme b
  50. vcd blb stop
  51. IF thisPh(isWordStart) AND nextPh(isVowel) THEN
  52. IF prevPh(isPause) OR prevPh(isNasal) THEN
  53. ELSE
  54. ChangePhoneme(B)
  55. ENDIF
  56. ENDIF
  57. CALL base/b
  58. endphoneme
  59. phoneme D
  60. vcd dnt frc
  61. lengthmod 6
  62. voicingswitch T
  63. CALL base/D
  64. IF nextPh(isPause2) THEN
  65. FMT(voc/dh_) addWav(vocw/dh, 40) // weaker
  66. ENDIF
  67. endphoneme
  68. phoneme s
  69. vls alv frc sibilant
  70. lengthmod 3
  71. voicingswitch z
  72. Vowelin f1=0 f2=1700 -300 300 f3=-100 80
  73. Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
  74. IF nextPh(isPause) THEN
  75. WAV(ufric/s_, 60) // quieter 's' at end of word
  76. ELIF nextPh(p) OR nextPh(t) OR nextPh(k) THEN
  77. WAV(ufric/s!)
  78. ENDIF
  79. WAV(ufric/s, 80)
  80. endphoneme
  81. phoneme v# // a shorter [v], a little towards [b]
  82. vcd lbd frc
  83. ipa ʋ
  84. lengthmod 6
  85. voicingswitch f
  86. Vowelin f1=1 f2=1000 -300 -200 f3=-300 100
  87. Vowelout f1=0 f2=1000 -500 -300 f3=-300 60 len=10
  88. IF nextPh(isPause2) THEN
  89. FMT(voc/v_) addWav(vocw/v, 80)
  90. ENDIF
  91. FMT(voc/v2) addWav(vocw/v, 80)
  92. endphoneme