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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308
  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 | | | | | | | | | | | | | | | | |
  11. // | sib afr | | | | | | | | | | 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. lengthmod 5
  176. Vowelin f1=2 f2=1500 -300 300 f3=-150 80
  177. Vowelout f1=2 f2=1500 -300 300 f3=-150 80
  178. IF PreVoicing THEN
  179. FMT(d/xd)
  180. ENDIF
  181. IF nextPh(isPause2) THEN
  182. FMT(d/d_) addWav(x/d_)
  183. ELIF nextPh(isRhotic) THEN
  184. FMT(d/dr) addWav(x/d_dnt, 100)
  185. ENDIF
  186. FMT(d/d) addWav(x/d_dnt, 100)
  187. endphoneme
  188. phoneme t
  189. vls alv stp
  190. ipa t
  191. lengthmod 2
  192. Vowelin f1=0 f2=1700 -300 300 f3=-100 80
  193. Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
  194. IF nextPh(isPause2) THEN
  195. WAV(ustop/t_)
  196. ELIF nextPh(isRhotic) THEN
  197. WAV(ustop/tr)
  198. ENDIF
  199. WAV(ustop/t, 90)
  200. endphoneme
  201. phoneme d
  202. vcd alv stp
  203. lengthmod 5
  204. Vowelin f1=1 f2=1700 -300 300 f3=-100 80
  205. Vowelout f1=2 f2=1700 -300 300 f3=-100 80 brk
  206. IF PreVoicing THEN
  207. FMT(d/xd)
  208. ENDIF
  209. IF nextPh(isPause2) THEN
  210. FMT(d/d_) addWav(x/d_)
  211. ENDIF
  212. FMT(d/d) addWav(x/d)
  213. endphoneme
  214. // affricate
  215. phoneme dZ\)
  216. vcd pla sib afr
  217. lengthmod 5
  218. Vowelin f1=2 f2=2300 200 400 f3=100 80
  219. Vowelout f1=2 f2=2300 250 300 f3=100 80 brk
  220. IF PreVoicing THEN
  221. FMT(dzh/xdzh)
  222. ENDIF
  223. IF nextPh(isPause2) THEN
  224. FMT(dzh/dzh_) addWav(x/dzh_)
  225. ENDIF
  226. FMT(dzh/dzh) addWav(x/dzh)
  227. endphoneme
  228. // approximant
  229. phoneme r\\
  230. vcd alv apr liquid rhotic
  231. ipa ɹ
  232. lengthmod 7
  233. IF nextPh(isNotVowel) THEN
  234. lengthmod 2
  235. IF nextPh(n) THEN
  236. FMT(r3/r_n) addWav(r3/rx)
  237. ELIF prevPh(isUStop) THEN
  238. FMT(r/trr)
  239. ELIF prevPh(isNotVowel) THEN
  240. FMT(r/rr)
  241. ENDIF
  242. FMT(r3/r_) addWav(r3/rx)
  243. ENDIF
  244. NextVowelStarts
  245. VowelStart(r/r@, -15)
  246. VowelStart(r/ra, -15)
  247. VowelStart(r/re, -15)
  248. VowelStart(r/ri, -15)
  249. VowelStart(r/ro, -15)
  250. VowelStart(r/ru, -15)
  251. EndSwitch
  252. IF prevPh(isVowel) THEN
  253. VowelEnding(r/xr, -50)
  254. ELIF prevPh(isPause) THEN
  255. FMT(r/_r)
  256. ELIF prevPh(isUStop) THEN
  257. FMT(r/tr)
  258. ENDIF
  259. FMT(r/r)
  260. endphoneme