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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359
  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 | | | | | t_d | d_d | t | d | | | | | | | | J\ | | | | | | | | |
  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 t_d
  163. vls dnt stp
  164. ipa t̪
  165. lengthmod 2
  166. Vowelin f1=1 f2=1500 -250 250 f3=-100 80 amp=16
  167. Vowelout f1=0 f2=1500 -300 250 f3=-100 80 rms=20
  168. IF nextPh(isPause2) THEN
  169. WAV(ustop/t_dnt, 35)
  170. ENDIF
  171. WAV(ustop/t_hi, 70)
  172. endphoneme
  173. phoneme d_d
  174. vcd dnt stp
  175. ipa d̪
  176. lengthmod 5
  177. Vowelin f1=2 f2=1500 -300 300 f3=-150 80
  178. Vowelout f1=2 f2=1500 -300 300 f3=-150 80
  179. IF PreVoicing THEN
  180. FMT(d/xd)
  181. ENDIF
  182. IF nextPh(isPause2) THEN
  183. FMT(d/d_) addWav(x/d_)
  184. ELIF nextPh(isRhotic) THEN
  185. FMT(d/dr) addWav(x/d_dnt, 100)
  186. ENDIF
  187. FMT(d/d) addWav(x/d_dnt, 100)
  188. endphoneme
  189. phoneme t
  190. vls alv stp
  191. ipa t
  192. lengthmod 2
  193. Vowelin f1=0 f2=1700 -300 300 f3=-100 80
  194. Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
  195. IF nextPh(isPause2) THEN
  196. WAV(ustop/t_)
  197. ELIF nextPh(isRhotic) THEN
  198. WAV(ustop/tr)
  199. ENDIF
  200. WAV(ustop/t, 90)
  201. endphoneme
  202. phoneme d
  203. vcd alv stp
  204. ipa d
  205. lengthmod 5
  206. Vowelin f1=1 f2=1700 -300 300 f3=-100 80
  207. Vowelout f1=2 f2=1700 -300 300 f3=-100 80 brk
  208. IF PreVoicing THEN
  209. FMT(d/xd)
  210. ENDIF
  211. IF nextPh(isPause2) THEN
  212. FMT(d/d_) addWav(x/d_)
  213. ENDIF
  214. FMT(d/d) addWav(x/d)
  215. endphoneme
  216. phoneme J\\
  217. vcd pal stp
  218. ipa ɟ
  219. lengthmod 5
  220. Vowelin f1=2 f2=2700 400 600 f3=300 80 rate len=70
  221. Vowelout f1=2 f2=2700 400 600 f3=300 80 colr=1
  222. IF PreVoicing THEN
  223. FMT(dzh/xdz_pzd)
  224. ENDIF
  225. IF KlattSynth THEN
  226. IF nextPh(isPause2) THEN
  227. FMT(klatt/dz_pzd_) addWav(x/dzh, 35)
  228. ENDIF
  229. FMT(klatt/dz_pzd) addWav(x/dzh, 45)
  230. ENDIF
  231. IF nextPh(isPause2) THEN
  232. FMT(dzh/dz_pzd_) addWav(x/dzh, 35)
  233. ENDIF
  234. FMT(dzh/dz_pzd) addWav(x/dzh, 45)
  235. endphoneme
  236. // affricate
  237. phoneme dZ\)
  238. vcd pla sib afr
  239. ipa d͡ʒ
  240. lengthmod 5
  241. Vowelin f1=2 f2=2300 200 400 f3=100 80
  242. Vowelout f1=2 f2=2300 250 300 f3=100 80 brk
  243. IF PreVoicing THEN
  244. FMT(dzh/xdzh)
  245. ENDIF
  246. IF nextPh(isPause2) THEN
  247. FMT(dzh/dzh_) addWav(x/dzh_)
  248. ENDIF
  249. FMT(dzh/dzh) addWav(x/dzh)
  250. endphoneme
  251. phoneme dz\\\)
  252. vcd alp sib afr
  253. ipa d͡ʑ
  254. lengthmod 5
  255. Vowelin f1=2 f2=2700 400 600 f3=300 80 rate len=70
  256. Vowelout f1=2 f2=2700 400 600 f3=300 80
  257. IF PreVoicing THEN
  258. FMT(dzh/xdzh)
  259. ENDIF
  260. IF KlattSynth THEN
  261. IF nextPh(isPause2) THEN
  262. FMT(dzh/dzh_) addWav(x/dzh_)
  263. ENDIF
  264. FMT(dzh/dzh) addWav(x/dz_pzd)
  265. ENDIF
  266. IF nextPh(isPause2) THEN
  267. FMT(dzh/dzh_) addWav(x/dzh_)
  268. ENDIF
  269. FMT(dzh/dzh) addWav(x/dz_pzd)
  270. endphoneme
  271. // approximant
  272. phoneme r\\
  273. vcd alv apr liquid rhotic
  274. ipa ɹ
  275. lengthmod 7
  276. IF nextPh(isNotVowel) THEN
  277. lengthmod 2
  278. IF nextPh(n) THEN
  279. FMT(r3/r_n) addWav(r3/rx)
  280. ELIF prevPh(isUStop) THEN
  281. FMT(r/trr)
  282. ELIF prevPh(isNotVowel) THEN
  283. FMT(r/rr)
  284. ENDIF
  285. FMT(r3/r_) addWav(r3/rx)
  286. ENDIF
  287. NextVowelStarts
  288. VowelStart(r/r@, -15)
  289. VowelStart(r/ra, -15)
  290. VowelStart(r/re, -15)
  291. VowelStart(r/ri, -15)
  292. VowelStart(r/ro, -15)
  293. VowelStart(r/ru, -15)
  294. EndSwitch
  295. IF prevPh(isVowel) THEN
  296. VowelEnding(r/xr, -50)
  297. ELIF prevPh(isPause) THEN
  298. FMT(r/_r)
  299. ELIF prevPh(isUStop) THEN
  300. FMT(r/tr)
  301. ENDIF
  302. FMT(r/r)
  303. endphoneme