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_catalan_nw 3.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. //====================================================
  2. // Catalan valencian - based on Catalan (and Spanish and Base2)
  3. //====================================================
  4. // vowels
  5. //=============
  6. phoneme a
  7. vwl starttype #a endtype #a
  8. length 180
  9. IF thisPh(isWordEnd) AND thisPh(isUnstressed) THEN
  10. ChangePhoneme(E)
  11. ENDIF
  12. FMT(vowel/a_6)
  13. endphoneme
  14. phoneme a2 // does not change in central accent
  15. vwl starttype #a endtype #a
  16. length 180
  17. FMT(vowel/a_6)
  18. endphoneme
  19. phoneme e
  20. vwl starttype #e endtype #e
  21. length 170
  22. IF thisPh(isUnstressed) THEN
  23. IF thisPh(isWordStart) THEN
  24. IF nextPh(s) OR nextPh(n) OR nextPh(m) OR nextPh(**) OR nextPh(R) THEN
  25. ChangePhoneme(a)
  26. ELIF nextPh(j) AND next2Ph(S) THEN
  27. ChangePhoneme(a)
  28. ENDIF
  29. ENDIF
  30. ENDIF
  31. FMT(vowel/e)
  32. endphoneme
  33. phoneme e2 // don't reduce: "aeri", "aeròdrom".
  34. vwl starttype #e endtype #e
  35. length 170
  36. FMT(vowel/e)
  37. endphoneme
  38. phoneme E
  39. vwl starttype #e endtype #e
  40. length 180
  41. IF thisPh(isUnstressed) THEN
  42. IF thisPh(isWordStart) THEN
  43. IF nextPh(s) OR nextPh(n) OR nextPh(m) OR nextPh(**) OR nextPh(R) THEN
  44. ChangePhoneme(a)
  45. ELIF nextPh(j) AND next2Ph(S) THEN
  46. ChangePhoneme(a)
  47. ELSE
  48. ChangePhoneme(e)
  49. ENDIF
  50. ELSE
  51. ChangePhoneme(e)
  52. ENDIF
  53. ENDIF
  54. FMT(vowel/e_mid)
  55. endphoneme
  56. phoneme E2 // don't reduce
  57. vwl starttype #e endtype #e
  58. length 180
  59. ChangeIfUnstressed(e2)
  60. FMT(vowel/e_mid)
  61. endphoneme
  62. phoneme O
  63. vwl starttype #o endtype #o
  64. length 170
  65. IF thisPh(isUnstressed) THEN
  66. ChangePhoneme(o)
  67. ENDIF
  68. FMT(vowel/oo)
  69. endphoneme
  70. phoneme o
  71. vwl starttype #o endtype #o
  72. length 170
  73. FMT(vowel/o)
  74. endphoneme
  75. phoneme o2
  76. vwl starttype #o endtype #o
  77. length 170
  78. ChangeIfStressed(o)
  79. FMT(vowel/o)
  80. endphoneme
  81. phoneme i
  82. vwl starttype #i endtype #i
  83. length 170
  84. IF thisPh(isUnstressed) AND nextPh(isVowel) THEN
  85. ChangePhoneme(j)
  86. ENDIF
  87. FMT(vowel/i)
  88. endphoneme
  89. // affricates
  90. //================
  91. phoneme Z
  92. vcd pla frc sib
  93. voicingswitch S
  94. lengthmod 6
  95. Vowelin f1=0 f2=2000 0 300 f3=-200 80
  96. Vowelout f1=2 f2=2000 0 300 f3=-200 80 brk
  97. IF thisPh(isWordStart) OR prevPh(isNotVowel) THEN
  98. IF prevPh(d) THEN
  99. ELSE
  100. ChangePhoneme(dZ)
  101. ENDIF
  102. ENDIF
  103. endphoneme
  104. phoneme S
  105. vls pla frc sib
  106. voicingswitch Z
  107. lengthmod 3
  108. Vowelin f1=0 f2=2100 100 300 f3=-100 80
  109. Vowelout f1=0 f2=2100 100 300 f3=-100 80
  110. IF thisPh(isWordStart) THEN // initial or post-consonant position
  111. ChangePhoneme(tS)
  112. ELIF prevPh(isNotVowel) THEN
  113. IF prevPh(j) THEN
  114. IF thisPh(isWordEnd) AND nextPh(isVoiced) THEN
  115. ChangePhoneme(Z)
  116. ENDIF
  117. ELSE
  118. ChangePhoneme(tS)
  119. ENDIF
  120. ENDIF
  121. WAV(ufric/sh)
  122. endphoneme
  123. phoneme v
  124. vcd lbd frc
  125. voicingswitch f
  126. lengthmod 6
  127. Vowelin f1=0 f2=1000 -300 -200 f3=-300 100
  128. Vowelout f1=0 f2=1000 -500 -300 f3=-300 60 len=50
  129. IF KlattSynth THEN
  130. Vowelout f1=1 f2=1000 -500 -300 f3=-300 60 len=50 brk
  131. IF nextPh(isPause2) THEN
  132. FMT(klatt/v_) addWav(vocw/v)
  133. ENDIF
  134. FMT(klatt/v) addWav(vocw/v, 150)
  135. ENDIF
  136. IF nextPh(isPause2) THEN
  137. FMT(voc/v_) addWav(vocw/v)
  138. ENDIF
  139. IF thisPh(isWordStart) AND nextPhW(isLiquid) THEN
  140. length 70
  141. ENDIF
  142. FMT(voc/v) addWav(vocw/v)
  143. endphoneme