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_basque 3.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. //====================================================
  2. // Basque - 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 a2 // delete if the next vowel is 'a'. Used for numbers.
  10. vowel starttype #a endtype #a
  11. length 200
  12. IF nextPh(#a) THEN
  13. ChangePhoneme(NULL) // merge consecutive 'a'
  14. ELSE
  15. ChangePhoneme(a)
  16. ENDIF
  17. endphoneme
  18. phoneme e
  19. vowel starttype #e endtype #e
  20. length 200
  21. FMT(vowel/e_mid2)
  22. endphoneme
  23. phoneme i
  24. vowel starttype #i endtype #i
  25. length 190
  26. IfNextVowelAppend(;)
  27. FMT(vowel/i)
  28. endphoneme
  29. phoneme o
  30. vowel starttype #o endtype #o
  31. length 200
  32. FMT(vowel/oo)
  33. endphoneme
  34. phoneme u
  35. vowel starttype #u endtype #u
  36. length 200
  37. FMT(vowel/u_bck2)
  38. endphoneme
  39. phoneme Y
  40. vowel starttype #@ endtype #@
  41. length 200
  42. FMT(vowel/y#)
  43. endphoneme
  44. // Note: I have made [s] and [z] the same, and similarly [ts] and [tz]
  45. // These should be changed to the correct "s", "z", "ts" and "tz" sounds fo Basque.
  46. phoneme s
  47. vls alv frc sibilant
  48. ipa ʂ
  49. lengthmod 3
  50. Vowelin f1=0 f2=1700 -300 300 f3=-100 80
  51. Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
  52. IF nextPh(isPause) THEN
  53. WAV(ufric/sh_rfx, 60)
  54. ENDIF
  55. WAV(ufric/sh_rfx, 90) // different from s but probably not correct
  56. endphoneme
  57. phoneme z
  58. vls alv frc sibilant
  59. ipa s
  60. lengthmod 3
  61. Vowelin f1=0 f2=1700 -300 300 f3=-100 80
  62. Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
  63. // z+z=tz, z+g=zk, z+g=zt, z+b=zp
  64. IF nextPh(z) THEN
  65. ChangeNextPhoneme(tz)
  66. ChangePhoneme(NULL)
  67. ELSEIF nextPh(g) THEN
  68. ChangeNextPhoneme(k)
  69. ELSEIF nextPh(d) THEN
  70. ChangeNextPhoneme(t)
  71. ELSEIF nextPh(b) THEN
  72. ChangeNextPhoneme(p)
  73. ENDIF
  74. IF nextPh(isPause) THEN
  75. WAV(ufric/s_, 60)
  76. ENDIF
  77. WAV(ufric/s, 80)
  78. endphoneme
  79. phoneme ts
  80. vls alv afr sibilant
  81. ipa tʂ
  82. lengthmod 2
  83. Vowelin f1=0 f2=1700 -300 300 f3=-100 80
  84. Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
  85. IF nextPh(isPause2) THEN
  86. WAV(ustop/ts_)
  87. ENDIF
  88. WAV(ustop/ts)
  89. endphoneme
  90. phoneme tz
  91. vls alv afr sibilant
  92. ipa ts
  93. lengthmod 2
  94. Vowelin f1=0 f2=1700 -300 300 f3=-100 80
  95. Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
  96. IF nextPh(isPause2) THEN
  97. WAV(ustop/ts_)
  98. ENDIF
  99. WAV(ustop/ts)
  100. endphoneme
  101. phoneme t
  102. vls dnt stop
  103. lengthmod 2
  104. // t+g=k, t+d=t, t+z=tz
  105. IF nextPh(g) THEN
  106. ChangeNextPhoneme(k)
  107. ChangePhoneme(NULL)
  108. ELSEIF nextPh(d) THEN
  109. ChangeNextPhoneme(t)
  110. ChangePhoneme(NULL)
  111. ELSEIF nextPh(z) THEN
  112. ChangeNextPhoneme(tz)
  113. ChangePhoneme(NULL)
  114. ENDIF
  115. CALL base2/t
  116. endphoneme
  117. phoneme r
  118. vcd alv flp rhotic
  119. brkafter
  120. ipa ɾ
  121. lengthmod 3
  122. IF nextPhW(isVowel) THEN
  123. ChangePhoneme(**)
  124. ENDIF
  125. CALL base/*
  126. endphoneme
  127. phoneme b
  128. import_phoneme es/b
  129. endphoneme
  130. phoneme d
  131. import_phoneme es/d
  132. endphoneme
  133. phoneme g
  134. import_phoneme es/g
  135. endphoneme
  136. phoneme n
  137. vcd alv nasal
  138. lengthmod 4
  139. IF prevPhW(i) AND nextPhW(isVowel) THEN
  140. ChangePhoneme(n^)
  141. ENDIF
  142. CALL base/n
  143. endphoneme