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 2.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  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. ENDIF
  15. FMT(vowel/a_4)
  16. endphoneme
  17. phoneme e
  18. vowel starttype #e endtype #e
  19. length 200
  20. FMT(vowel/e_mid2)
  21. endphoneme
  22. phoneme i
  23. vowel starttype #i endtype #i
  24. length 190
  25. IfNextVowelAppend(;)
  26. FMT(vowel/i)
  27. endphoneme
  28. phoneme o
  29. vowel starttype #o endtype #o
  30. length 200
  31. FMT(vowel/oo)
  32. endphoneme
  33. phoneme u
  34. vowel starttype #u endtype #u
  35. length 200
  36. FMT(vowel/u_bck2)
  37. endphoneme
  38. phoneme Y
  39. vowel starttype #@ endtype #@
  40. length 200
  41. FMT(vowel/y#)
  42. endphoneme
  43. phoneme s
  44. import_phoneme es/s
  45. endphoneme
  46. phoneme z
  47. vls alv frc sibilant
  48. ipa s
  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/z_eu, 60)
  54. ENDIF
  55. WAV(ufric/z_eu, 90)
  56. endphoneme
  57. phoneme ts
  58. vls alv afr sibilant
  59. ipa t?
  60. lengthmod 2
  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. IF nextPh(isPause2) THEN
  64. WAV(ufric/ts_eu, 60)
  65. ENDIF
  66. WAV(ufric/ts_eu, 90)
  67. endphoneme
  68. phoneme tz
  69. vls alv afr sibilant
  70. ipa ts
  71. lengthmod 2
  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(isPause2) THEN
  75. WAV(ufric/tz_eu, 90)
  76. ENDIF
  77. WAV(ufric/tz_eu, 60)
  78. endphoneme
  79. phoneme t
  80. vls dnt stop
  81. lengthmod 2
  82. CALL base2/t
  83. endphoneme
  84. phoneme r
  85. vcd alv flp rhotic
  86. brkafter
  87. ipa ?
  88. lengthmod 3
  89. IF nextPhW(isVowel) THEN
  90. ChangePhoneme(**)
  91. ENDIF
  92. CALL base/*
  93. endphoneme
  94. phoneme b
  95. import_phoneme es/b
  96. endphoneme
  97. phoneme d
  98. import_phoneme es/d
  99. endphoneme
  100. phoneme g
  101. import_phoneme es/g
  102. endphoneme
  103. phoneme n
  104. vcd alv nasal
  105. lengthmod 4
  106. IF prevPhW(#i) AND nextPhW(isVowel) THEN
  107. ChangePhoneme(n^)
  108. ENDIF
  109. CALL base/n
  110. endphoneme
  111. phoneme n2 // doesn't palatalise, used for exceptions
  112. vcd alv nasal
  113. lengthmod 4
  114. CALL base/n
  115. endphoneme
  116. phoneme l
  117. liquid
  118. IF prevPhW(#i) AND nextPhW(isVowel) THEN
  119. ChangePhoneme(l^)
  120. ENDIF
  121. CALL base/l
  122. endphoneme
  123. phoneme l2 // same as l2
  124. liquid
  125. CALL base/l
  126. endphoneme