ph_japanese 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411
  1. // Japanese Phonemes
  2. //
  3. // Copyright (C) 2017 Reece H. Dunn
  4. //
  5. // This program is free software; you can redistribute it and/or modify
  6. // it under the terms of the GNU General Public License as published by
  7. // the Free Software Foundation; either version 3 of the License, or
  8. // (at your option) any later version.
  9. //
  10. // This program is distributed in the hope that it will be useful,
  11. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. // GNU General Public License for more details.
  14. //
  15. // You should have received a copy of the GNU General Public License
  16. // along with this program; if not, see: <http://www.gnu.org/licenses/>.
  17. // This is using the X-SAMPA transcriptions
  18. // (http://www.phon.ucl.ac.uk/home/sampa/x-sampa.htm).
  19. phoneme :
  20. virtual
  21. length 70
  22. endphoneme
  23. phoneme _j
  24. liquid pzd starttype #i
  25. ipa ʲ
  26. lengthmod 2
  27. NextVowelStarts
  28. VowelStart(j/j@)
  29. VowelStart(j/ja)
  30. VowelStart(j/je)
  31. VowelStart(j/ji)
  32. VowelStart(j/jo)
  33. VowelStart(j/ju)
  34. EndSwitch
  35. endphoneme
  36. // Vowels /////////////////////////////////////////////////////////////////////
  37. // Close Vowels
  38. phoneme i
  39. vwl starttype #i endtype #i
  40. length 160
  41. FMT(vowel/i)
  42. endphoneme
  43. phoneme i~
  44. vwl lng starttype #i endtype #i
  45. ipa ĩ
  46. length 220
  47. FMT(vnasal/i_n2)
  48. endphoneme
  49. phoneme u~
  50. vwl starttype #u endtype #u
  51. ipa ũ
  52. length 220
  53. FMT(vnasal/u_n)
  54. endphoneme
  55. phoneme u
  56. vwl starttype #u endtype #u
  57. ipa ɯᵝ
  58. length 160
  59. FMT(vowel/u_bck)
  60. endphoneme
  61. // Mid Vowels
  62. phoneme e
  63. vwl starttype #e endtype #e
  64. ipa e̞
  65. length 160
  66. FMT(vowel/e_8)
  67. endphoneme
  68. phoneme o
  69. vwl starttype #o endtype #o
  70. ipa o̞
  71. length 160
  72. FMT(vowel/oo_3)
  73. endphoneme
  74. // Open Vowels
  75. phoneme a
  76. vwl starttype #a endtype #a
  77. ipa ä
  78. length 160
  79. FMT(vowel/a)
  80. endphoneme
  81. // Consonants /////////////////////////////////////////////////////////////////
  82. phoneme m
  83. vcd blb nas
  84. Vowelout f1=2 f2=1000 -500 -350 f3=-200 80 brk
  85. lengthmod 4
  86. NextVowelStarts
  87. VowelStart(m/m@)
  88. VowelStart(m/ma)
  89. VowelStart(m/me)
  90. VowelStart(m/mi)
  91. VowelStart(m/mo)
  92. VowelStart(m/mu)
  93. EndSwitch
  94. IF nextPh(isNotVowel) THEN
  95. FMT(m/m_)
  96. ENDIF
  97. endphoneme
  98. phoneme n
  99. vcd alv nas
  100. Vowelout f1=2 f2=1500 -300 250 f3=-100 80 rms=20 brk
  101. lengthmod 4
  102. NextVowelStarts
  103. VowelStart(n/n@)
  104. VowelStart(n/na)
  105. VowelStart(n/ne)
  106. VowelStart(n/ni)
  107. VowelStart(n/no)
  108. VowelStart(n/nu)
  109. EndSwitch
  110. IF nextPh(isNotVowel) THEN
  111. FMT(n/n_)
  112. ENDIF
  113. endphoneme
  114. phoneme N
  115. vcd vel nas
  116. ipa ŋ
  117. Vowelout f1=3 f2=2300 300 400 f3=-200 80 len=40 rms=20 brk
  118. lengthmod 3
  119. NextVowelStarts
  120. VowelStart(nn/nn@)
  121. VowelStart(nn/nna)
  122. VowelStart(nn/nne)
  123. VowelStart(nn/nni)
  124. VowelStart(nn/nno)
  125. VowelStart(nn/nnu)
  126. EndSwitch
  127. IF prevPh(#i) THEN
  128. VowelEnding(nn/inn, -40)
  129. ENDIF
  130. IF prevPh(isNotVowel) AND nextPhW(isLiquid) THEN
  131. FMT(nn/nnj)
  132. ELIF prevPh(isPause) THEN
  133. FMT(nn/_nn)
  134. ELIF nextPh(isNotVowel) THEN
  135. FMT(nn/nn_)
  136. ENDIF
  137. endphoneme
  138. phoneme N\\
  139. vcd uvl nas
  140. ipa ɴ
  141. // FIXME: Stub phoneme.
  142. CALL ja/n
  143. endphoneme
  144. // Plosives
  145. phoneme p
  146. vls blb stp
  147. voicingswitch b
  148. lengthmod 2
  149. Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 amp=11
  150. Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=22
  151. WAV(ustop/p)
  152. endphoneme
  153. phoneme b
  154. vcd blb stp
  155. voicingswitch p
  156. Vowelout f1=2 f2=1000 -500 -300 f3=-300 80 brk
  157. lengthmod 5
  158. IF nextPh(isPause2) THEN
  159. FMT(b/b_) addWav(x/b_)
  160. ELIF nextPh(@-) THEN
  161. FMT(b/b@2) addWav(x/b)
  162. ELIF nextPh(#@) THEN
  163. FMT(b/b@) addWav(x/b)
  164. ELIF nextPh(#a) THEN
  165. FMT(b/ba) addWav(x/b)
  166. ELIF nextPh(#e) THEN
  167. FMT(b/be) addWav(x/b)
  168. ELIF nextPh(#i) THEN
  169. FMT(b/bi) addWav(x/b)
  170. ELIF nextPh(#o) THEN
  171. FMT(b/bo) addWav(x/b)
  172. ELIF nextPh(#u) THEN
  173. FMT(b/bu) addWav(x/b)
  174. ENDIF
  175. FMT(b/b) addWav(x/b)
  176. endphoneme
  177. phoneme t
  178. vls alv stp
  179. voicingswitch d
  180. lengthmod 2
  181. Vowelin f1=0 f2=1700 -300 300 f3=-100 80
  182. Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
  183. WAV(ustop/t, 90)
  184. endphoneme
  185. phoneme d
  186. vcd alv stp
  187. voicingswitch t
  188. lengthmod 5
  189. Vowelin f1=1 f2=1700 -300 300 f3=-100 80
  190. Vowelout f1=2 f2=1700 -300 300 f3=-100 80 brk
  191. FMT(d/d) addWav(x/d)
  192. endphoneme
  193. phoneme k
  194. vls vel stp
  195. voicingswitch g
  196. lengthmod 2
  197. Vowelin f1=0 f2=2300 200 300 f3=-200 80
  198. Vowelout f1=0 f2=2300 300 400 f3=-200 80 rms=20
  199. WAV(ustop/k)
  200. endphoneme
  201. phoneme g
  202. vcd vel stp
  203. voicingswitch k
  204. lengthmod 5
  205. Vowelin f1=2 f2=2300 200 300 f3=-300 80
  206. Vowelout f1=2 f2=2300 250 300 f3=-300 80 brk
  207. FMT(g/g) addWav(x/g2, 150)
  208. endphoneme
  209. phoneme ?
  210. vls glt stp
  211. lengthmod 3
  212. nolink
  213. Vowelin glstop
  214. Vowelout glstop
  215. WAV(ustop/null)
  216. endphoneme
  217. // Sibilant Affricates
  218. phoneme t_s
  219. vls alv afr sib
  220. ipa ts
  221. lengthmod 2
  222. Vowelin f1=0 f2=1700 -300 300 f3=-100 80
  223. Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
  224. WAV(ustop/ts, 70)
  225. endphoneme
  226. phoneme t_s\\
  227. vls alp sib afr
  228. voicingswitch d_z\\
  229. ipa tɕ
  230. lengthmod 2
  231. Vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70
  232. WAV(ustop/ts_pzd)
  233. endphoneme
  234. phoneme d_z\\
  235. vcd alp sib afr
  236. voicingswitch t_s\\
  237. ipa dʑ
  238. lengthmod 5
  239. Vowelin f1=2 f2=2700 400 600 f3=300 80 rate len=70
  240. Vowelout f1=2 f2=2700 400 600 f3=300 80
  241. FMT(dzh/dzh) addWav(x/dz_pzd)
  242. endphoneme
  243. // Sibilant Fricatives
  244. phoneme s
  245. vls alv frc sib
  246. voicingswitch z
  247. lengthmod 3
  248. Vowelin f1=0 f2=1700 -300 300 f3=-100 80
  249. Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20
  250. WAV(ufric/s)
  251. endphoneme
  252. phoneme z
  253. vcd alv frc sib
  254. voicingswitch s
  255. lengthmod 6
  256. Vowelout f1=0 f2=1700 -300 300 f3=-100 60 len=50
  257. FMT(voc/z) addWav(ufric/s_, 85)
  258. endphoneme
  259. phoneme s\\
  260. vls alp sib frc
  261. ipa ɕ
  262. lengthmod 3
  263. Vowelin f1=1 f2=2700 400 600 f3=200 70 rate len=70
  264. Vowelout f1=1 f2=2700 400 600 f3=200 70 rate
  265. WAV(ufric/sh_pzd)
  266. endphoneme
  267. // Fricatives
  268. phoneme p\\
  269. vls blb frc
  270. ipa ɸ
  271. Vowelout f1=0 f2=1000 -500 -350 f3=-200 80
  272. lengthmod 2
  273. WAV(ufric/f)
  274. endphoneme
  275. phoneme v
  276. vcd lbd frc
  277. lengthmod 6
  278. Vowelin f1=0 f2=1000 -300 -200 f3=-300 100
  279. Vowelout f1=0 f2=1000 -500 -300 f3=-300 60 len=50
  280. FMT(voc/v) addWav(vocw/v)
  281. endphoneme
  282. phoneme C
  283. vls pal frc
  284. ipa ç
  285. lengthmod 3
  286. Vowelin f1=0 f2=2700 400 600 f3=200 70
  287. Vowelout f1=0 f2=2700 400 600 f3=200 70 rms=20
  288. WAV(ufric/ch)
  289. endphoneme
  290. // Approximant
  291. phoneme j
  292. liquid pal starttype #i
  293. lengthmod 7
  294. NextVowelStarts
  295. VowelStart(j/j@)
  296. VowelStart(j/ja)
  297. VowelStart(j/je)
  298. VowelStart(j/ji)
  299. VowelStart(j/jo)
  300. VowelStart(j/ju)
  301. EndSwitch
  302. IF nextPh(isNotVowel) THEN
  303. Vowelout len=70
  304. FMT(j/j_)
  305. ENDIF
  306. endphoneme
  307. // Flap or Tap
  308. phoneme r`
  309. liquid rfx
  310. ipa ɽ
  311. lengthmod 3
  312. Vowelout f1=3 f2=1400 -400 300 f3=-400 80 rms=35 len=15 colr=2
  313. Vowelin f1=2 f2=1400 -400 300 f3=-400 80 len=20
  314. FMT(r3/@tap_rfx)
  315. endphoneme
  316. // Coarticulated
  317. phoneme w
  318. liquid
  319. lengthmod 7
  320. starttype #u
  321. NextVowelStarts
  322. VowelStart(w/w@)
  323. VowelStart(w/wa)
  324. VowelStart(w/we)
  325. VowelStart(w/wi)
  326. VowelStart(w/wo)
  327. VowelStart(w/wu)
  328. EndSwitch
  329. IF nextPh(isNotVowel) THEN
  330. Vowelout len=50
  331. FMT(w/w_)
  332. ENDIF
  333. endphoneme