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.

jp_rules 9.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397
  1. // Japanese
  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. // Replacements:
  18. // 1. Map Katakana to Hiragana.
  19. // 2. Map voiced characters to their base form and voicing combined character.
  20. .replace
  21. // U+3040 - U+309F Hiragana ----------------------------
  22. が が // ga: U+304C => U+304B U+3099
  23. ぎ ぎ // gi: U+304E => U+304D U+3099
  24. ぐ ぐ // gu: U+3050 => U+304F U+3099
  25. げ げ // ge: U+3052 => U+3051 U+3099
  26. ご ご // go: U+3054 => U+3053 U+3099
  27. ざ ざ // za: U+3056 => U+3055 U+3099
  28. じ じ // ji: U+3058 => U+3057 U+3099
  29. ず ず // zu: U+305A => U+3059 U+3099
  30. ぜ ぜ // ze: U+305C => U+305B U+3099
  31. ぞ ぞ // zo: U+305E => U+305D U+3099
  32. だ だ // da: U+3060 => U+305F U+3099
  33. ぢ ぢ // ji: U+3062 => U+3061 U+3099 (obsolete)
  34. づ づ // zu: U+3065 => U+3064 U+3099
  35. で で // de: U+3067 => U+3066 U+3099
  36. ど ど // do: U+3069 => U+3068 U+3099
  37. ば ば // ba: U+3070 => U+306F U+3099
  38. ぱ ぱ // pa: U+3071 => U+306F U+309A
  39. び び // bi: U+3073 => U+3072 U+3099
  40. ぴ ぴ // pi: U+3074 => U+3072 U+309A
  41. ぶ ぶ // bu: U+3076 => U+3075 U+3099
  42. ぷ ぷ // pu: U+3077 => U+3075 U+309A
  43. べ べ // be: U+3079 => U+3078 U+3099
  44. ぺ ぺ // pe: U+307A => U+3078 U+309A
  45. ぼ ぼ // bo: U+307C => U+307B U+3099
  46. ぽ ぽ // po: U+307D => U+307B U+309A
  47. ゔ ゔ // vu: U+3094 => U+3046 U+3099 (obsolete)
  48. ゛ ゙ // U+309B => U+3099
  49. ゜ ゚ // U+309C => U+309A
  50. ゟ より // U+309F => U+3088 U+308A (yori digraph)
  51. // U+30A0 - U+30FF Katakana ----------------------------
  52. ァ ぁ // a: U+30A1 => U+3041 (small)
  53. ア あ // a: U+30A2 => U+3042
  54. ィ ぃ // i: U+30A3 => U+3043 (small)
  55. イ い // i: U+30A4 => U+3044
  56. ゥ ぅ // u: U+30A5 => U+3045 (small)
  57. ウ う // u: U+30A6 => U+3046
  58. ェ ぇ // e: U+30A7 => U+3047 (small)
  59. エ え // e: U+30A8 => U+3048
  60. ォ ぉ // o: U+30A9 => U+3049 (small)
  61. オ お // o: U+30AA => U+304A
  62. カ か // ka: U+30AB => U+304B
  63. ガ が // ga: U+30AC => U+304B U+3099
  64. キ き // ki: U+30AD => U+304D
  65. ギ ぎ // gi: U+30AE => U+304D U+3099
  66. ク く // ku: U+30AF => U+304F
  67. グ ぐ // gu: U+30B0 => U+304F U+3099
  68. ケ け // ke: U+30B1 => U+3051
  69. ゲ げ // ge: U+30B2 => U+3051 U+3099
  70. コ こ // ko: U+30B3 => U+3053
  71. ゴ ご // go: U+30B4 => U+3053 U+3099
  72. サ さ // sa: U+30B5 => U+3055
  73. ザ ざ // za: U+30B6 => U+3055 U+3099
  74. シ し // shi: U+30B7 => U+3057
  75. ジ じ // ji: U+30B8 => U+3057 U+3099
  76. ス す // su: U+30B9 => U+3059
  77. ズ ず // zu: U+30BA => U+3059 U+3099
  78. セ せ // se: U+30BB => U+305B
  79. ゼ ぜ // ze: U+30BC => U+305B U+3099
  80. ソ そ // so: U+30BD => U+305D
  81. ゾ ぞ // zo: U+30BE => U+305D U+3099
  82. タ た // ta: U+30BF => U+305F
  83. ダ だ // da: U+30C0 => U+305F U+3099
  84. チ ち // chi: U+30C1 => U+3060
  85. ヂ ぢ // ji: U+30C2 => U+3061 U+3099 (obsolete)
  86. ッ っ // tsu: U+30C3 => U+3063 (small)
  87. ツ つ // tsu: U+30C4 => U+3064
  88. ヅ づ // zu: U+30C5 => U+3064 U+3099
  89. テ て // te: U+30C6 => U+3066
  90. デ で // de: U+30C7 => U+3066 U+3099
  91. ト と // to: U+30C8 => U+3068
  92. ド ど // do: U+30C9 => U+3068 U+3099
  93. ナ な // na: U+30CA => U+306A
  94. ニ に // ni: U+30CB => U+306B
  95. ヌ ぬ // nu: U+30CC => U+306C
  96. ネ ね // ne: U+30CD => U+306D
  97. ノ の // no: U+30CE => U+306E
  98. ハ は // ha: U+30CF => U+306F
  99. バ ば // ba: U+30D0 => U+306F U+3099
  100. パ ぱ // pa: U+30D1 => U+306F U+309A
  101. ヒ ひ // hi: U+30D2 => U+3072
  102. ビ び // bi: U+30D3 => U+3072 U+3099
  103. ピ ぴ // pi: U+30D4 => U+3072 U+309A
  104. フ ふ // fu: U+30D5 => U+3075
  105. ブ ぶ // bu: U+30D6 => U+3075 U+3099
  106. プ ぷ // pu: U+30D7 => U+3075 U+309A
  107. ヘ へ // he: U+30D8 => U+3078
  108. ベ べ // be: U+30D9 => U+3078 U+3099
  109. ペ ぺ // pe: U+30DA => U+3078 U+309A
  110. ホ ほ // ho: U+30DB => U+307B
  111. ボ ぼ // bo: U+30DC => U+307B U+3099
  112. ポ ぽ // po: U+30DD => U+307B U+309A
  113. マ ま // ma: U+30DE => U+307E
  114. ミ み // mi: U+30DF => U+307F
  115. ム む // mu: U+30E0 => U+3080
  116. メ め // me: U+30E1 => U+3081
  117. モ も // mo: U+30E2 => U+3082
  118. ャ ゃ // ya: U+30E3 => U+3083 (small)
  119. ヤ や // ya: U+30E4 => U+3084
  120. ュ ゅ // yu: U+30E5 => U+3085 (small)
  121. ユ ゆ // yu: U+30E6 => U+3086
  122. ョ ょ // yo: U+30E7 => U+3087 (small)
  123. ヨ よ // yo: U+30E8 => U+3088
  124. ラ ら // ra: U+30E9 => U+3089
  125. リ り // ri: U+30EA => U+308A
  126. ル る // ru: U+30EB => U+308B
  127. レ れ // re: U+30EC => U+308C
  128. ロ ろ // ro: U+30ED => U+308D
  129. ヮ ゎ // wa: U+30EE => U+308E (small)
  130. ワ わ // wa: U+30EF => U+308F
  131. ヰ ゐ // wi: U+30F0 => U+3090
  132. ヱ ゑ // we: U+30F1 => U+3091
  133. ヲ を // wo: U+30F2 => U+3092
  134. ン ん // n: U+30F3 => U+3093
  135. ヴ ゔ // vu: U+30F4 => U+3046 U+3099 (obsolete)
  136. ヵ ゕ // ka: U+30F5 => U+3095 (small)
  137. ヶ ゖ // ke: U+30F6 => U+3096 (small)
  138. ヷ あ゙ // va: U+30F7 => U+3042 U+3099
  139. ヸ い゙ // vi: U+30F8 => U+3044 U+3099
  140. ヹ え゙ // ve: U+30F9 => U+3048 U+3099
  141. ヺ お゙ // vo: U+30FA => U+304A U+3099
  142. ヽ ゝ // U+30FD => U+309D (iteration mark)
  143. ヾ ゞ // U+30FE => U+309E (voiced iteration mark)
  144. ヿ こと // U+30FF => U+3053 U+3068 (koto digraph)
  145. // U+1B000 - U+1B001 Kana Supplement ---------------------
  146. 𛀀 え // e: U+1B000 => U+3048 (archaic)
  147. // Hiragana
  148. .L01 か き く け こ // k
  149. .L02 が ぎ ぐ げ ご // g
  150. .L03 さ す せ そ // s
  151. .L04 し // sh
  152. .L05 ざ ず ぜ ぞ づ // z
  153. .L06 じ ぢ // j
  154. .L07 た て と // t
  155. .L08 ち // ch
  156. .L09 つ // ts
  157. .L10 だ で ど // d
  158. .L11 な に ぬ ね の // n
  159. .L12 は ひ へ ほ // h
  160. .L13 ふ // f
  161. .L14 ば び ぶ べ ぼ // b
  162. .L15 ぱ ぴ ぷ ぺ ぽ // p
  163. .L16 ま み む め も // m
  164. .L17 や ゆ よ // y
  165. .L18 ら り る れ ろ // r
  166. .L19 わ ゐ ゑ を // w
  167. .L20 あ い う え お // vowel
  168. .L21 ゃ ゅ ょ // combining vowels for i Hiragana
  169. .group ゃ
  170. ゃ a_" // ya
  171. .group ゅ
  172. ゅ M_Bo // yu
  173. .group ょ
  174. ょ o_o // yo
  175. .group あ
  176. あ a_" // a
  177. あ゙ va_" // va (Katakana)
  178. .group い
  179. い i // i
  180. い゙ vi // vi (Katakana)
  181. .group う
  182. う M_Bo // u
  183. ゔ vM_Bo // vu
  184. .group え
  185. え e_o // e
  186. え゙ ve_o // ve (Katakana)
  187. .group お
  188. お o_o // o
  189. お゙ vo_o // vo (Katakana)
  190. .group か
  191. か ka_" // ka
  192. が ga_" // ga
  193. .group き
  194. き ki // ki
  195. き (L21 k_j // ky([auo]
  196. ぎ gi // gi
  197. ぎ (L21 g_j // gy([auo]
  198. .group く
  199. く kM_Bo // ku
  200. ぐ gM_Bo // gu
  201. .group け
  202. け ke_o // ke
  203. げ ge_o // ge
  204. .group こ
  205. こ ko_o // ko
  206. ご go_o // go
  207. .group さ
  208. さ sa_" // sa
  209. ざ za_" // za
  210. .group し
  211. し s\\i // shi
  212. し (L21 s\\ // sh([auo]
  213. じ d_z\\i // ji
  214. じ (L21 d_z\\ // j([auo]
  215. .group す
  216. す sM_Bo // su
  217. ず zM_Bo // zu
  218. .group せ
  219. せ se_o // se
  220. ぜ ze_o // ze
  221. .group そ
  222. そ so_o // so
  223. ぞ zo_o // zo
  224. .group た
  225. た ta_" // ta
  226. だ da_" // da
  227. .group ち
  228. ち t_s\\i // chi
  229. ち (L21 t_s\\ // ch([auo]
  230. ぢ d_z\\i // ji (obsolete)
  231. ぢ (L21 d_z\\ // j([auo] (obsolete)
  232. .group つ
  233. つ t_sM_Bo // tsu
  234. づ zM_Bo // zu
  235. .group て
  236. て te_o // te
  237. で de_o // de
  238. .group と
  239. と to_o // to
  240. ど do_o // do
  241. .group な
  242. な na_" // na
  243. .group に
  244. に ni // ni
  245. に (L21 n_j // ny([auo]
  246. .group ぬ
  247. ぬ nM_Bo // nu
  248. .group ね
  249. ね ne_o // ne
  250. .group の
  251. の no_o // no
  252. .group は
  253. は ha_" // ha
  254. ば ba_" // ba
  255. ぱ pa_" // pa
  256. .group ひ
  257. ひ Ci // hi
  258. ひ (L21 C // hy([auo]
  259. び bi // bi
  260. び (L21 b_j // by([auo]
  261. ぴ pi // pi
  262. ぴ (L21 p_j // py([auo]
  263. .group ふ
  264. ふ p\\M_Bo // fu
  265. ぶ bM_Bo // bu
  266. ぷ pM_Bo // pu
  267. .group へ
  268. へ he_o // he
  269. べ be_o // be
  270. ぺ pe_o // pe
  271. .group ほ
  272. ほ ho_o // ho
  273. ぼ bo_o // bo
  274. ぽ po_o // po
  275. .group ま
  276. ま ma_" // ma
  277. .group み
  278. み mi // mi
  279. み (L21 m_j // my([auo]
  280. .group む
  281. む mM_Bo // mu
  282. .group め
  283. め me_o // me
  284. .group も
  285. も mo_o // mo
  286. .group や
  287. や ja_" // ya
  288. .group ゆ
  289. ゆ jM_Bo // yu
  290. .group 𛀁
  291. 𛀁 je_o // ye (archaic)
  292. .group よ
  293. よ jo_o // yo
  294. .group ら
  295. ら r`a_" // ra
  296. .group り
  297. り r`i // ri
  298. り (L21 r`_ja_" // ry([auo]
  299. .group る
  300. る rM_Bo // ru
  301. .group れ
  302. れ re_o // re
  303. .group ろ
  304. ろ ro_o // ro
  305. .group わ
  306. わ wa_" // wa
  307. .group ゐ
  308. ゐ i // wi (obsolete)
  309. .group ゑ
  310. ゑ we_o // we (obsolete)
  311. .group を
  312. を o_o // wo
  313. .group ん
  314. ん N\\ // n
  315. ん (L01 N // n (k
  316. ん (L02 N // n (g
  317. ん (L03 u~ // n (s
  318. い) ん (L03 i~ // i) n (s
  319. ん (L04 u~ // n (sh
  320. い) ん (L04 i~ // i) n (sh
  321. ん (L05 n // n (z
  322. ん (L06 n // n (j
  323. ん (L07 n // n (t
  324. ん (L08 n // n (ch
  325. ん (L09 n // n (ts
  326. ん (L10 n // n (d
  327. ん (L11 n // n (n
  328. ん (L12 u~ // n (h
  329. い) ん (L12 i~ // i) n (h
  330. ん (L13 u~ // n (f
  331. い) ん (L13 i~ // i) n (f
  332. ん (L14 m // n (b
  333. ん (L15 m // n (p
  334. ん (L16 m // n (m
  335. ん (L17 u~ // n (y
  336. い) ん (L17 i~ // i) n (y
  337. ん (L18 n // n (r
  338. ん (L19 u~ // n (w
  339. い) ん (L19 i~ // i) n (w
  340. ん (L20 u~ // n ([vowel]
  341. い) ん (L20 i~ // i) n ([vowel]