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_klingon 5.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339
  1. phoneme a
  2. vwl starttype #a endtype #a
  3. length 130
  4. FMT(vwl_lv/a, 100) // adjusted from aa_3
  5. endphoneme
  6. phoneme e
  7. vwl starttype #e endtype #e
  8. length 120
  9. FMT(vwl_lv/e, 100) // other alternative e_5
  10. endphoneme
  11. phoneme i
  12. vwl starttype #i endtype #i
  13. length 120
  14. FMT(vwl_lv/i, 110) // was i_6
  15. endphoneme
  16. phoneme o
  17. vwl starttype #o endtype #o
  18. length 120
  19. FMT(vwl_lv/o, 90)
  20. endphoneme
  21. phoneme u
  22. vwl starttype #u endtype #u
  23. length 120
  24. FMT(vwl_lv/u, 100)
  25. endphoneme
  26. phoneme ai
  27. vwl starttype #a endtype #i
  28. length 280
  29. lng
  30. FMT(vwl_lv/ai, 100)
  31. endphoneme
  32. phoneme au
  33. vwl starttype #a endtype #u
  34. length 280
  35. lng
  36. FMT(vwl_lv/au, 100)
  37. endphoneme
  38. phoneme ei
  39. vwl starttype #e endtype #i
  40. length 280
  41. lng
  42. FMT(vwl_lv/ei, 100)
  43. endphoneme
  44. phoneme ie
  45. vwl starttype #i endtype #e
  46. length 250
  47. lng
  48. FMT(vwl_lv/ie, 100)
  49. endphoneme
  50. phoneme iu
  51. vwl starttype #i endtype #u
  52. length 250
  53. lng
  54. FMT(vwl_lv/iu, 100)
  55. endphoneme
  56. phoneme ui
  57. vwl starttype #u endtype #i
  58. length 250
  59. lng
  60. FMT(vwl_lv/ui, 100)
  61. endphoneme
  62. phoneme uo
  63. vwl starttype #u endtype #a
  64. length 280
  65. lng
  66. FMT(vwl_lv/ua, 110)
  67. endphoneme
  68. phoneme oi
  69. vwl starttype #o endtype #i
  70. length 250
  71. lng
  72. FMT(vwl_lv/oi, 100)
  73. endphoneme
  74. phoneme ts
  75. vls alv afr nolink
  76. ipa t͡s
  77. voicingswitch J
  78. length 55
  79. lengthmod 1
  80. WAV(ustop/ts2, 60)
  81. endphoneme
  82. phoneme tS
  83. vls pla afr sib
  84. ipa t͡ʃ
  85. voicingswitch dZ
  86. lengthmod 2
  87. length 80
  88. WAV(ustop/tsh,40)
  89. endphoneme
  90. phoneme D // louder and shorter version of d
  91. vcd alv stp
  92. ipa d
  93. voicingswitch t
  94. length 8
  95. lengthmod 5
  96. Vowelin f1=1 f2=1700 -300 300 f3=-100 80
  97. Vowelout f1=2 f2=1700 -300 300 f3=-100 80 brk
  98. IF PreVoicing THEN
  99. FMT(d/xd, 110)
  100. ENDIF
  101. IF nextPh(isPause2) THEN
  102. FMT(d/d_, 120) addWav(x/d_,110)
  103. ENDIF
  104. FMT(d/d, 110) addWav(x/d,110)
  105. endphoneme
  106. phoneme j // **y**es
  107. liquid pal starttype #i
  108. IF nextPhW(isVowel) THEN
  109. NextVowelStarts
  110. VowelStart(j/j@)
  111. VowelStart(j/ja)
  112. VowelStart(j/je)
  113. VowelStart(j/ji)
  114. VowelStart(j/jo)
  115. VowelStart(j/ju)
  116. EndSwitch
  117. VowelEnding(j/xj, 127) // In difference with English, vowel is lengthened, not shortened
  118. ELSE
  119. Vowelout len=127 // no vowel follows
  120. FMT(j/xj)
  121. ENDIF
  122. IF prevPh(isPause) THEN
  123. FMT(j/_j)
  124. ENDIF
  125. endphoneme
  126. phoneme k
  127. vls vel stp
  128. lengthmod 2
  129. voicingswitch g
  130. Vowelin f1=0 f2=2300 200 400 f3=-100 80
  131. Vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20
  132. IF nextPh(isPause2) THEN
  133. WAV(ustop/k_)
  134. ENDIF
  135. IF nextPh(#i) OR nextPh(l^) THEN
  136. WAV(ustop/ki)
  137. ENDIF
  138. IF nextPh(l) THEN
  139. WAV(ustop/kl)
  140. ENDIF
  141. WAV(ustop/k_unasp, 60) // weaker
  142. endphoneme
  143. phoneme c
  144. vls pal stp pzd
  145. voicingswitch J
  146. WAV(ustop/c, 80)
  147. endphoneme
  148. phoneme l
  149. liquid
  150. IF nextPh(isNotVowel) THEN
  151. PrevVowelEndings
  152. VowelEnding(l/L1_@L)
  153. VowelEnding(l/L1_aL)
  154. VowelEnding(l/L1_eL)
  155. VowelEnding(l/L1_iL)
  156. VowelEnding(l/L1_oL)
  157. VowelEnding(l/L1_uL)
  158. EndSwitch
  159. FMT(l/l_)
  160. RETURN
  161. ENDIF
  162. CALL vowelstart_l
  163. IF prevPh(isPause) THEN
  164. FMT(l/_l)
  165. ENDIF
  166. IF prevPh(t) THEN
  167. FMT(l/tl)
  168. ENDIF
  169. IF prevPh(l/) THEN
  170. FMT(l/l_long) // double l, make it longer
  171. ENDIF
  172. FMT(l/l)
  173. endphoneme
  174. phoneme m // copied from standard m phoneme with rule for 'mm'
  175. vcd blb nas
  176. Vowelout f1=2 f2=1000 -500 -350 f3=-200 80 brk
  177. lengthmod 4
  178. IF KlattSynth THEN
  179. Vowelin f1=0 f2=1000 -50 -200 f3=-200 80
  180. IF nextPh(isPause2) THEN
  181. FMT(klatt/m_)
  182. ENDIF
  183. FMT(klatt/m)
  184. ENDIF
  185. NextVowelStarts
  186. VowelStart(m/m@)
  187. VowelStart(m/ma)
  188. VowelStart(m/me)
  189. VowelStart(m/mi)
  190. VowelStart(m/mo)
  191. VowelStart(m/mu)
  192. EndSwitch
  193. IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN
  194. FMT(m/mj)
  195. ELIF prevPh(isPause) THEN
  196. FMT(m/_m)
  197. ELIF nextPh(isNotVowel) THEN
  198. FMT(m/m_)
  199. ELIF nextPh(m) THEN // m/mj has no volume change, so doubled 'mm' merges better
  200. FMT(m/mj)
  201. ENDIF
  202. endphoneme
  203. phoneme p
  204. vls blb stp
  205. lengthmod 2
  206. voicingswitch b
  207. Vowelin f1=0 f2=1000 -50 -100 f3=-200 80
  208. Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=30
  209. IF nextPh(isPause2) THEN
  210. WAV(ustop/p_unasp_, 80)
  211. ENDIF
  212. IF nextPh(l) THEN
  213. WAV(ustop/pl)
  214. ENDIF
  215. WAV(ustop/p_unasp, 120)
  216. endphoneme
  217. phoneme R
  218. liquid trl
  219. ipa r
  220. lengthmod 6
  221. Vowelin f1=0 f2=1700 -300 300 f3=-300 80
  222. Vowelout f1=2 f2=1700 -300 300 f3=-300 80 brk
  223. FMT(r3/r_trill) addWav(r3/r_trill.wav, 60)
  224. endphoneme
  225. phoneme s
  226. vls alv frc sib
  227. voicingswitch z
  228. lengthmod 3
  229. Vowelin f1=0 f2=1700 -300 300 f3=-100 80
  230. Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
  231. WAV(ufric/s,60)
  232. endphoneme
  233. phoneme t
  234. vls alv stp //lengthenstop
  235. lengthmod 1
  236. voicingswitch d
  237. IF nextPh(isPause2) THEN
  238. WAV(ustop/t_dnt, 40)
  239. ENDIF
  240. WAV(ustop/t_dnt, 50)
  241. endphoneme
  242. phoneme v // from v# in standard phonemes
  243. vcd lbd frc
  244. ipa ʋ
  245. lengthmod 6
  246. voicingswitch f
  247. Vowelin f1=0 f2=1000 -300 -200 f3=-300 100
  248. Vowelout f1=0 f2=1000 -500 -300 f3=-300 60 len=50
  249. IF nextPh(isPause2) THEN
  250. FMT(voc/v#_)
  251. ENDIF
  252. FMT(voc/v#)
  253. endphoneme
  254. phoneme gH // arabic Ghain, the phoneme is derived from Q
  255. vcd vel frc
  256. voicingswitch R2
  257. ipa ɣ
  258. Vowelin f1=2 f2=2300 200 300 f3=-300 80
  259. Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk
  260. FMT(g/g) addWav(vwl_ar/dhad)
  261. endphoneme
  262. phoneme dH //arabic Dhad TODO this probably should be simple d from standard phonemes
  263. vcd alv stp
  264. ipa dˤ
  265. Vowelin f1=1 f2=1700 -300 300 f3=-100 80
  266. Vowelout f1=2 f2=1700 -300 300 f3=-100 80 brk
  267. IF PreVoicing THEN
  268. FMT(d/xd)
  269. ENDIF
  270. IF nextPh(isPause2) THEN
  271. FMT(d/d_) addWav(x/d_)
  272. ENDIF
  273. FMT(d/d) addWav(x/d)
  274. endphoneme
  275. phoneme s[
  276. vls dnt stp
  277. voicingswitch s
  278. IF nextPh(s[) THEN
  279. length 50
  280. ELSE
  281. length 160
  282. ENDIF
  283. lengthmod 7
  284. WAV(vwl_ar/shin)
  285. endphoneme
  286. phoneme X
  287. vls uvl frc
  288. voicingswitch Q
  289. lengthmod 7
  290. Vowelin f1=0 f2=2300 200 400 f3=-100 80
  291. Vowelout f1=0 f2=2300 300 400 f3=-100 80 rms=20
  292. WAV(ufric/xx, 70)
  293. endphoneme