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_ipa 9.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412
  1. // International Phonetic Alphabet phonemes using the Conlang X-SAMPA (CXS)
  2. // transcription scheme.
  3. // Consonants (Pulmonic)
  4. // =====================
  5. //
  6. // | | blb | | lbd | | dnt | | alv | | pla | | rfx | | alp | | pal | | vel | | uvl | | phr | | glt | |
  7. // | | vls | vcd | vls | vcd | vls | vcd | vls | vcd | vls | vcd | vls | vcd | vls | vcd | vls | vcd | vls | vcd | vls | vcd | vls | vcd | vls | vcd |
  8. // |---------|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|
  9. // | nas | | m | | | | | | n | | | | n` | | | | J | | N | | | | | | |
  10. // | stp | | b | | | t_d | d_d | t | d | | | | | | | | J\ | | g | | | | | | |
  11. // | sib afr | | | | | | | | | | dZ) | | | dz\)| | | | | | | | | | | |
  12. // | afr | | | | | | | | | | | | | | | | | | | | | | | | |
  13. // | lat afr | | | | | | | | | | | | | | | | | | | | | | | | |
  14. // | sib frc | | | | | | | | | | | | | | | | | | | | | | | | |
  15. // | frc | | | | | | | | | | | | | | | | | | | | | | | | |
  16. // | lat frc | | | | | | | | | | | | | | | | | | | | | | | | |
  17. // | apr | | | | | | | | r\ | | | | | | | | | | | | | | | | |
  18. // | lat apr | | | | | | | | | | | | | | | | | | | | | | | | |
  19. // | flp | | | | | | | | | | | | | | | | | | | | | | | | |
  20. // | lat flp | | | | | | | | | | | | | | | | | | | | | | | | |
  21. // | trl | | | | | | | | | | | | | | | | | | | | | | | | |
  22. // nasal
  23. phoneme m
  24. vcd blb nas
  25. ipa m
  26. Vowelout f1=2 f2=1000 -500 -350 f3=-200 80 brk
  27. lengthmod 4
  28. IF KlattSynth THEN
  29. Vowelin f1=0 f2=1000 -50 -200 f3=-200 80
  30. IF nextPh(isPause2) THEN
  31. FMT(klatt/m_)
  32. ENDIF
  33. FMT(klatt/m)
  34. ENDIF
  35. NextVowelStarts
  36. VowelStart(m/m@)
  37. VowelStart(m/ma)
  38. VowelStart(m/me)
  39. VowelStart(m/mi)
  40. VowelStart(m/mo)
  41. VowelStart(m/mu)
  42. EndSwitch
  43. IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN
  44. FMT(m/mj)
  45. ELIF prevPh(isPause) THEN
  46. FMT(m/_m)
  47. ELIF nextPh(isNotVowel) THEN
  48. FMT(m/m_)
  49. ENDIF
  50. endphoneme
  51. phoneme n
  52. vcd alv nas
  53. ipa n
  54. Vowelout f1=2 f2=1500 -300 250 f3=-100 80 rms=20 brk
  55. lengthmod 4
  56. IF KlattSynth THEN
  57. Vowelin f1=0 f2=1500 -200 200 f3=0 80
  58. FMT(klatt/n)
  59. ENDIF
  60. NextVowelStarts
  61. VowelStart(n/n@)
  62. VowelStart(n/na)
  63. VowelStart(n/ne)
  64. VowelStart(n/ni)
  65. VowelStart(n/no)
  66. VowelStart(n/nu)
  67. EndSwitch
  68. IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN
  69. FMT(n/nj)
  70. ELIF prevPh(isPause) OR prevPh(n) THEN
  71. FMT(n/_n)
  72. ELIF nextPh(isNotVowel) THEN
  73. FMT(n/n_)
  74. ENDIF
  75. endphoneme
  76. phoneme n`
  77. vcd rfx nas
  78. ipa ɳ
  79. starttype n endtype n
  80. Vowelin f1=2 f2=1700 -300 300 f3=-500 80 rms=20 colr=2
  81. Vowelout f1=2 f2=1700 -300 300 f3=-500 80 rms=20 brk colr=2
  82. lengthmod 4
  83. IF KlattSynth THEN
  84. FMT(klatt/nr)
  85. ENDIF
  86. NextVowelStarts
  87. VowelStart(n/nr@)
  88. VowelStart(n/nra)
  89. VowelStart(n/nre)
  90. VowelStart(n/nri)
  91. VowelStart(n/nro)
  92. VowelStart(n/nru)
  93. EndSwitch
  94. IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN
  95. FMT(n/nj)
  96. ELIF prevPh(isPause) OR prevPh(n`) THEN
  97. FMT(n/_nr)
  98. ELIF nextPh(isNotVowel) THEN
  99. FMT(n/nr_)
  100. ENDIF
  101. endphoneme
  102. phoneme J
  103. vcd pal nas
  104. ipa ɲ
  105. Vowelout f1=3 f2=2500 300 500 f3=100 80 len=45 brk rate
  106. lengthmod 4
  107. IF KlattSynth THEN
  108. VowelStart(klatt/n^@)
  109. FMT(klatt/n^)
  110. ENDIF
  111. NextVowelStarts
  112. VowelStart(n^/n^@)
  113. VowelStart(n^/n^a)
  114. VowelStart(n^/n^e)
  115. VowelStart(n^/n^i)
  116. VowelStart(n^/n^o)
  117. VowelStart(n^/n^u)
  118. EndSwitch
  119. IF prevPh(isPause) THEN
  120. FMT(n^/_n^)
  121. ELIF nextPh(isNotVowel) THEN
  122. IF nextPhW(J) THEN
  123. length 75
  124. ELIF prevPhW(J) THEN
  125. length 100
  126. ENDIF
  127. FMT(n^/n^_)
  128. ENDIF
  129. endphoneme
  130. phoneme N
  131. vcd vel nas
  132. ipa ŋ
  133. Vowelout f1=3 f2=2300 300 400 f3=-200 80 len=40 rms=20 brk
  134. lengthmod 8 // longer than 'n'
  135. IF KlattSynth THEN
  136. Vowelin f1=0 f2=2100 50 300 f3=0 80
  137. IF nextPh(isPause2) THEN
  138. FMT(klatt/nn_)
  139. ENDIF
  140. FMT(klatt/nn)
  141. ENDIF
  142. NextVowelStarts
  143. VowelStart(nn/nn@)
  144. VowelStart(nn/nna)
  145. VowelStart(nn/nne)
  146. VowelStart(nn/nni)
  147. VowelStart(nn/nno)
  148. VowelStart(nn/nnu)
  149. EndSwitch
  150. IF prevPh(#i) THEN
  151. VowelEnding(nn/inn, -40)
  152. ENDIF
  153. IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN
  154. FMT(nn/nnj)
  155. ELIF prevPh(isPause) THEN
  156. FMT(nn/_nn)
  157. ELIF nextPh(isNotVowel) THEN
  158. FMT(nn/nn_)
  159. ENDIF
  160. endphoneme
  161. // stop
  162. phoneme b
  163. vcd blb stp
  164. Vowelout f1=2 f2=1000 -500 -300 f3=-300 80 brk
  165. lengthmod 5
  166. IF PreVoicing THEN
  167. FMT(b/xb)
  168. ENDIF
  169. IF KlattSynth THEN
  170. Vowelin f1=1 f2=1000 -500 -300 f3=-300 80
  171. IF nextPh(isPause2) THEN
  172. FMT(klatt/b) addWav(x/b_)
  173. ENDIF
  174. FMT(klatt/b) addWav(x/b)
  175. ENDIF
  176. IF nextPh(isPause2) THEN
  177. FMT(b/b_) addWav(x/b_)
  178. ELIF nextPh(#@) THEN
  179. FMT(b/b@) addWav(x/b)
  180. ELIF nextPh(#a) THEN
  181. FMT(b/ba) addWav(x/b)
  182. ELIF nextPh(#e) THEN
  183. FMT(b/be) addWav(x/b)
  184. ELIF nextPh(#i) THEN
  185. FMT(b/bi) addWav(x/b)
  186. ELIF nextPh(#o) THEN
  187. FMT(b/bo) addWav(x/b)
  188. ELIF nextPh(#u) THEN
  189. FMT(b/bu) addWav(x/b)
  190. ENDIF
  191. FMT(b/b) addWav(x/b)
  192. endphoneme
  193. phoneme t_d
  194. vls dnt stp
  195. ipa t̪
  196. lengthmod 2
  197. Vowelin f1=1 f2=1500 -250 250 f3=-100 80 amp=16
  198. Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20
  199. IF nextPh(isPause2) THEN
  200. WAV(ustop/t_dnt, 35)
  201. ENDIF
  202. WAV(ustop/t_hi, 70)
  203. endphoneme
  204. phoneme d_d
  205. vcd dnt stp
  206. ipa d̪
  207. lengthmod 5
  208. Vowelin f1=2 f2=1500 -300 300 f3=-150 80
  209. Vowelout f1=2 f2=1500 -300 300 f3=-150 80
  210. IF PreVoicing THEN
  211. FMT(d/xd)
  212. ENDIF
  213. IF nextPh(isPause2) THEN
  214. FMT(d/d_) addWav(x/d_)
  215. ELIF nextPh(isRhotic) THEN
  216. FMT(d/dr) addWav(x/d_dnt, 100)
  217. ENDIF
  218. FMT(d/d) addWav(x/d_dnt, 100)
  219. endphoneme
  220. phoneme t
  221. vls alv stp
  222. ipa t
  223. lengthmod 2
  224. Vowelin f1=0 f2=1700 -300 300 f3=-100 80
  225. Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
  226. IF nextPh(isPause2) THEN
  227. WAV(ustop/t_)
  228. ELIF nextPh(isRhotic) THEN
  229. WAV(ustop/tr)
  230. ENDIF
  231. WAV(ustop/t, 90)
  232. endphoneme
  233. phoneme d
  234. vcd alv stp
  235. ipa d
  236. lengthmod 5
  237. Vowelin f1=1 f2=1700 -300 300 f3=-100 80
  238. Vowelout f1=2 f2=1700 -300 300 f3=-100 80 brk
  239. IF PreVoicing THEN
  240. FMT(d/xd)
  241. ENDIF
  242. IF nextPh(isPause2) THEN
  243. FMT(d/d_) addWav(x/d_)
  244. ENDIF
  245. FMT(d/d) addWav(x/d)
  246. endphoneme
  247. phoneme J\\
  248. vcd pal stp
  249. ipa ɟ
  250. lengthmod 5
  251. Vowelin f1=2 f2=2700 400 600 f3=300 80 rate len=70
  252. Vowelout f1=2 f2=2700 400 600 f3=300 80 colr=1
  253. IF PreVoicing THEN
  254. FMT(dzh/xdz_pzd)
  255. ENDIF
  256. IF KlattSynth THEN
  257. IF nextPh(isPause2) THEN
  258. FMT(klatt/dz_pzd_) addWav(x/dzh, 35)
  259. ENDIF
  260. FMT(klatt/dz_pzd) addWav(x/dzh, 45)
  261. ENDIF
  262. IF nextPh(isPause2) THEN
  263. FMT(dzh/dz_pzd_) addWav(x/dzh, 35)
  264. ENDIF
  265. FMT(dzh/dz_pzd) addWav(x/dzh, 45)
  266. endphoneme
  267. phoneme g
  268. vcd vel stp
  269. ipa ɡ
  270. lengthmod 5
  271. Vowelin f1=2 f2=2300 200 300 f3=-300 80
  272. Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk
  273. IF PreVoicing THEN
  274. FMT(g/xg)
  275. ENDIF
  276. IF nextPh(isPause2) THEN
  277. FMT(g/g_) addWav(x/g_)
  278. ENDIF
  279. FMT(g/g) addWav(x/g2, 150)
  280. endphoneme
  281. // affricate
  282. phoneme dZ\)
  283. vcd pla sib afr
  284. ipa d͡ʒ
  285. lengthmod 5
  286. Vowelin f1=2 f2=2300 200 400 f3=100 80
  287. Vowelout f1=2 f2=2300 250 300 f3=100 80 brk
  288. IF PreVoicing THEN
  289. FMT(dzh/xdzh)
  290. ENDIF
  291. IF nextPh(isPause2) THEN
  292. FMT(dzh/dzh_) addWav(x/dzh_)
  293. ENDIF
  294. FMT(dzh/dzh) addWav(x/dzh)
  295. endphoneme
  296. phoneme dz\\\)
  297. vcd alp sib afr
  298. ipa d͡ʑ
  299. lengthmod 5
  300. Vowelin f1=2 f2=2700 400 600 f3=300 80 rate len=70
  301. Vowelout f1=2 f2=2700 400 600 f3=300 80
  302. IF PreVoicing THEN
  303. FMT(dzh/xdzh)
  304. ENDIF
  305. IF KlattSynth THEN
  306. IF nextPh(isPause2) THEN
  307. FMT(dzh/dzh_) addWav(x/dzh_)
  308. ENDIF
  309. FMT(dzh/dzh) addWav(x/dz_pzd)
  310. ENDIF
  311. IF nextPh(isPause2) THEN
  312. FMT(dzh/dzh_) addWav(x/dzh_)
  313. ENDIF
  314. FMT(dzh/dzh) addWav(x/dz_pzd)
  315. endphoneme
  316. // approximant
  317. phoneme r\\
  318. vcd alv apr liquid rhotic
  319. ipa ɹ
  320. lengthmod 7
  321. IF nextPh(isNotVowel) THEN
  322. lengthmod 2
  323. IF nextPh(n) THEN
  324. FMT(r3/r_n) addWav(r3/rx)
  325. ELIF prevPh(isUStop) THEN
  326. FMT(r/trr)
  327. ELIF prevPh(isNotVowel) THEN
  328. FMT(r/rr)
  329. ENDIF
  330. FMT(r3/r_) addWav(r3/rx)
  331. ENDIF
  332. NextVowelStarts
  333. VowelStart(r/r@, -15)
  334. VowelStart(r/ra, -15)
  335. VowelStart(r/re, -15)
  336. VowelStart(r/ri, -15)
  337. VowelStart(r/ro, -15)
  338. VowelStart(r/ru, -15)
  339. EndSwitch
  340. IF prevPh(isVowel) THEN
  341. VowelEnding(r/xr, -50)
  342. ELIF prevPh(isPause) THEN
  343. FMT(r/_r)
  344. ELIF prevPh(isUStop) THEN
  345. FMT(r/tr)
  346. ENDIF
  347. FMT(r/r)
  348. endphoneme