Files
espeak-ng/dictsource/jp_rules
T

719 lines
18 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// Japanese
//
// Copyright (C) 2017 Reece H. Dunn
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, see: <http://www.gnu.org/licenses/>.
// Replacements:
// 1. Map Katakana to Hiragana.
// 2. Map voiced characters to their base form and voicing combined character.
.replace
// U+3040 - U+309F Hiragana ----------------------------
が が // ga: U+304C => U+304B U+3099
ぎ ぎ // gi: U+304E => U+304D U+3099
ぐ ぐ // gu: U+3050 => U+304F U+3099
げ げ // ge: U+3052 => U+3051 U+3099
ご ご // go: U+3054 => U+3053 U+3099
ざ ざ // za: U+3056 => U+3055 U+3099
じ じ // ji: U+3058 => U+3057 U+3099
ず ず // zu: U+305A => U+3059 U+3099
ぜ ぜ // ze: U+305C => U+305B U+3099
ぞ ぞ // zo: U+305E => U+305D U+3099
だ だ // da: U+3060 => U+305F U+3099
ぢ ぢ // ji: U+3062 => U+3061 U+3099 (obsolete)
づ づ // zu: U+3065 => U+3064 U+3099
で で // de: U+3067 => U+3066 U+3099
ど ど // do: U+3069 => U+3068 U+3099
ば ば // ba: U+3070 => U+306F U+3099
ぱ ぱ // pa: U+3071 => U+306F U+309A
び び // bi: U+3073 => U+3072 U+3099
ぴ ぴ // pi: U+3074 => U+3072 U+309A
ぶ ぶ // bu: U+3076 => U+3075 U+3099
ぷ ぷ // pu: U+3077 => U+3075 U+309A
べ べ // be: U+3079 => U+3078 U+3099
ぺ ぺ // pe: U+307A => U+3078 U+309A
ぼ ぼ // bo: U+307C => U+307B U+3099
ぽ ぽ // po: U+307D => U+307B U+309A
ゔ ゔ // vu: U+3094 => U+3046 U+3099 (obsolete)
゛ ゙ // U+309B => U+3099
゜ ゚ // U+309C => U+309A
ゟ より // U+309F => U+3088 U+308A (yori digraph)
// U+30A0 - U+30FF Katakana ----------------------------
ァ ぁ // a: U+30A1 => U+3041 (small)
ア あ // a: U+30A2 => U+3042
ィ ぃ // i: U+30A3 => U+3043 (small)
イ い // i: U+30A4 => U+3044
ゥ ぅ // u: U+30A5 => U+3045 (small)
ウ う // u: U+30A6 => U+3046
ェ ぇ // e: U+30A7 => U+3047 (small)
エ え // e: U+30A8 => U+3048
ォ ぉ // o: U+30A9 => U+3049 (small)
オ お // o: U+30AA => U+304A
カ か // ka: U+30AB => U+304B
ガ が // ga: U+30AC => U+304B U+3099
キ き // ki: U+30AD => U+304D
ギ ぎ // gi: U+30AE => U+304D U+3099
ク く // ku: U+30AF => U+304F
グ ぐ // gu: U+30B0 => U+304F U+3099
ケ け // ke: U+30B1 => U+3051
ゲ げ // ge: U+30B2 => U+3051 U+3099
コ こ // ko: U+30B3 => U+3053
ゴ ご // go: U+30B4 => U+3053 U+3099
サ さ // sa: U+30B5 => U+3055
ザ ざ // za: U+30B6 => U+3055 U+3099
シ し // shi: U+30B7 => U+3057
ジ じ // ji: U+30B8 => U+3057 U+3099
ス す // su: U+30B9 => U+3059
ズ ず // zu: U+30BA => U+3059 U+3099
セ せ // se: U+30BB => U+305B
ゼ ぜ // ze: U+30BC => U+305B U+3099
ソ そ // so: U+30BD => U+305D
ゾ ぞ // zo: U+30BE => U+305D U+3099
タ た // ta: U+30BF => U+305F
ダ だ // da: U+30C0 => U+305F U+3099
チ ち // chi: U+30C1 => U+3061
ヂ ぢ // ji: U+30C2 => U+3061 U+3099 (obsolete)
ッ っ // tsu: U+30C3 => U+3063 (small)
ツ つ // tsu: U+30C4 => U+3064
ヅ づ // zu: U+30C5 => U+3064 U+3099
テ て // te: U+30C6 => U+3066
デ で // de: U+30C7 => U+3066 U+3099
ト と // to: U+30C8 => U+3068
ド ど // do: U+30C9 => U+3068 U+3099
ナ な // na: U+30CA => U+306A
ニ に // ni: U+30CB => U+306B
ヌ ぬ // nu: U+30CC => U+306C
ネ ね // ne: U+30CD => U+306D
ノ の // no: U+30CE => U+306E
ハ は // ha: U+30CF => U+306F
バ ば // ba: U+30D0 => U+306F U+3099
パ ぱ // pa: U+30D1 => U+306F U+309A
ヒ ひ // hi: U+30D2 => U+3072
ビ び // bi: U+30D3 => U+3072 U+3099
ピ ぴ // pi: U+30D4 => U+3072 U+309A
フ ふ // fu: U+30D5 => U+3075
ブ ぶ // bu: U+30D6 => U+3075 U+3099
プ ぷ // pu: U+30D7 => U+3075 U+309A
ヘ へ // he: U+30D8 => U+3078
ベ べ // be: U+30D9 => U+3078 U+3099
ペ ぺ // pe: U+30DA => U+3078 U+309A
ホ ほ // ho: U+30DB => U+307B
ボ ぼ // bo: U+30DC => U+307B U+3099
ポ ぽ // po: U+30DD => U+307B U+309A
マ ま // ma: U+30DE => U+307E
ミ み // mi: U+30DF => U+307F
ム む // mu: U+30E0 => U+3080
メ め // me: U+30E1 => U+3081
モ も // mo: U+30E2 => U+3082
ャ ゃ // ya: U+30E3 => U+3083 (small)
ヤ や // ya: U+30E4 => U+3084
ュ ゅ // yu: U+30E5 => U+3085 (small)
ユ ゆ // yu: U+30E6 => U+3086
ョ ょ // yo: U+30E7 => U+3087 (small)
ヨ よ // yo: U+30E8 => U+3088
ラ ら // ra: U+30E9 => U+3089
リ り // ri: U+30EA => U+308A
ル る // ru: U+30EB => U+308B
レ れ // re: U+30EC => U+308C
ロ ろ // ro: U+30ED => U+308D
ヮ ゎ // wa: U+30EE => U+308E (small)
ワ わ // wa: U+30EF => U+308F
ヰ ゐ // wi: U+30F0 => U+3090
ヱ ゑ // we: U+30F1 => U+3091
ヲ を // wo: U+30F2 => U+3092
ン ん // n: U+30F3 => U+3093
ヴ ゔ // vu: U+30F4 => U+3046 U+3099 (obsolete)
ヵ ゕ // ka: U+30F5 => U+3095 (small)
ヶ ゖ // ke: U+30F6 => U+3096 (small)
ヷ あ゙ // va: U+30F7 => U+3042 U+3099
ヸ い゙ // vi: U+30F8 => U+3044 U+3099
ヹ え゙ // ve: U+30F9 => U+3048 U+3099
ヺ お゙ // vo: U+30FA => U+304A U+3099
ヽ ゝ // U+30FD => U+309D (iteration mark)
ヾ ゞ // U+30FE => U+309E (voiced iteration mark)
ヿ こと // U+30FF => U+3053 U+3068 (koto digraph)
// U+FF65 - U+FF9F Halfwidth Katakana
ヲ を // wo: U+FF66 => U+3092
ァ ぁ // a: U+FF67 => U+3041 (small)
ィ ぃ // i: U+FF68 => U+3043 (small)
ゥ ぅ // u: U+FF69 => U+3045 (small)
ェ ぇ // e: U+FF6A => U+3047 (small)
ォ ぉ // o: U+FF6B => U+3049 (small)
ャ ゃ // ya: U+FF6C => U+3083 (small)
ュ ゅ // yu: U+FF6D => U+3085 (small)
ョ ょ // yo: U+FF6E => U+3087 (small)
ッ っ // tsu: U+FF6F => U+3063 (small)
ー ー // U+FF70 => U+30FC
ア あ // a: U+FF71 => U+3042
イ い // i: U+FF72 => U+3044
ウ う // u: U+FF73 => U+3046
エ え // e: U+FF74 => U+3048
オ お // o: U+FF75 => U+304A
カ か // ka: U+FF76 => U+304B
キ き // ki: U+FF77 => U+304D
ク く // ku: U+FF78 => U+304F
ケ け // ke: U+FF79 => U+3051
コ こ // ko: U+FF7A => U+3053
サ さ // sa: U+FF7B => U+3055
シ し // shi: U+FF7C => U+3057
ス す // su: U+FF7D => U+3059
セ せ // se: U+FF7E => U+305B
ソ そ // so: U+FF7F => U+305D
タ た // ta: U+FF80 => U+305F
チ ち // chi: U+FF81 => U+3061
ツ つ // tsu: U+FF82 => U+3064
テ て // te: U+FF83 => U+3066
ト と // to: U+FF84 => U+3068
ナ な // na: U+FF85 => U+306A
ニ に // ni: U+FF86 => U+306B
ヌ ぬ // nu: U+FF87 => U+306C
ネ ね // ne: U+FF88 => U+306D
ノ の // no: U+FF89 => U+306E
ハ は // ha: U+FF8A => U+306F
ヒ ひ // hi: U+FF8B => U+3072
フ ふ // fu: U+FF8C => U+3075
ヘ へ // he: U+FF8D => U+3078
ホ ほ // ho: U+FF8E => U+307B
マ ま // ma: U+FF8F => U+307E
ミ み // mi: U+FF90 => U+307F
ム む // mu: U+FF91 => U+3080
メ め // me: U+FF92 => U+3081
モ も // mo: U+FF93 => U+3082
ヤ や // ya: U+FF94 => U+3084
ユ ゆ // yu: U+FF95 => U+3086
ヨ よ // yo: U+FF96 => U+3088
ラ ら // ra: U+FF97 => U+3089
リ り // ri: U+FF98 => U+308A
ル る // ru: U+FF99 => U+308B
レ れ // re: U+FF9A => U+308C
ロ ろ // ro: U+FF9B => U+308D
ワ わ // wa: U+FF9C => U+308F
ン ん // n: U+FF9D => U+3093
゙ ゙ // U+FF9E => U+3099
゚ ゚ // U+FF9F => U+309A
// U+1B000 - U+1B001 Kana Supplement ---------------------
𛀀 え // e: U+1B000 => U+3048 (archaic)
// Hiragana Groups -- By Starting Consonant
// a i u e o *
.L01 か き く け こ // k
.L02 が ぎ ぐ げ ご // g
.L03 さ す せ そ // s
.L04 し // sh
.L05 ざ ず ぜ ぞ づ // z
.L06 じ ぢ // j
.L07 た て と // t
.L08 ち // ch
.L09 つ // ts
.L10 だ で ど // d
.L11 な に ぬ ね の // n
.L12 は ひ へ ほ // h
.L13 ふ // f
.L14 ば び ぶ べ ぼ // b
.L15 ぱ ぴ ぷ ぺ ぽ // p
.L16 ま み む め も // m
.L17 や ゆ よ // y
.L18 ら り る れ ろ // r
.L19 わ ゐ ゑ を // w
.L20 あ い う え お // none (vowels)
.L21 ゃ ゅ ょ // y (small)
// Hiragana Combining Characters
.group ゃ
ゃ a_" // ya
ゃぁ a_": // yā
ゃー a_": // yā
.group ゅ
ゅ M_Bo // yu
ゅぅ M_Bo: // yū
ゅー M_Bo: // yū
.group ょ
ょ o_o // yo
ょぉ o_o: // yō
ょー o_o: // yō
// Hiragana
.group あ
あ a_" // a
ああ a_": // ā
あぁ a_": // ā
あー a_": // ā
あ゙ va_" // va (Katakana)
あ゙あ va_": // vā (Katakana)
あ゙ぁ va_": // vā (Katakana)
あ゙ー va_": // vā (Katakana)
.group い
い i // i
いい i: // ī
いぃ i: // ī
いー i: // ī
い゙ vi // vi (Katakana)
い゙い vi: // vī (Katakana)
い゙ぃ vi: // vī (Katakana)
い゙ー vi: // vī (Katakana)
.group う
う M_Bo // u
うう M_Bo: // ū
うぅ M_Bo: // ū
うー M_Bo: // ū
ゔ vM_Bo // vu
ゔう vM_Bo: // vū
ゔぅ vM_Bo: // vū
ゔー vM_Bo: // vū
.group え
え e_o // e
ええ e_o: // ē
えぇ e_o: // ē
えー e_o: // ē
え゙ ve_o // ve (Katakana)
え゙え ve_o: // vē (Katakana)
え゙ぇ ve_o: // vē (Katakana)
え゙ー ve_o: // vē (Katakana)
.group お
お o_o // o
おお o_o: // ō
おぉ o_o: // ō
おー o_o: // ō
お゙ vo_o // vo (Katakana)
お゙お vo_o: // vō (Katakana)
お゙ぉ vo_o: // vō (Katakana)
お゙ー vo_o: // vō (Katakana)
.group か
か ka_" // ka
かあ ka_": // kā
かぁ ka_": // kā
かー ka_": // kā
が ga_" // ga
があ ga_": // gā
がぁ ga_": // gā
がー ga_": // gā
.group き
き ki // ki
きい ki: // kī
きぃ ki: // kī
きー ki: // kī
き (L21 k_j // ky([auo]
ぎ gi // gi
ぎい gi: // gī
ぎぃ gi: // gī
ぎー gi: // gī
ぎ (L21 g_j // gy([auo]
.group く
く kM_Bo // ku
くう kM_Bo: // kū
くぅ kM_Bo: // kū
くー kM_Bo: // kū
ぐ gM_Bo // gu
ぐう gM_Bo: // gū
ぐぅ gM_Bo: // gū
ぐー gM_Bo: // gū
.group け
け ke_o // ke
けえ ke_o: // kē
けぇ ke_o: // kē
けー ke_o: // kē
げ ge_o // ge
げえ ge_o: // gē
げぇ ge_o: // gē
げー ge_o: // gē
.group こ
こ ko_o // ko
こお ko_o: // kō
こぉ ko_o: // kō
こー ko_o: // kō
ご go_o // go
ごお go_o: // gō
ごぉ go_o: // gō
ごー go_o: // gō
.group さ
さ sa_" // sa
さあ sa_": // sā
さぁ sa_": // sā
さー sa_": // sā
ざ za_" // za
ざあ za_": // zā
ざぁ za_": // zā
ざー za_": // zā
.group し
し s\\i // shi
しい s\\i: // shī
しぃ s\\i: // shī
しー s\\i: // shī
し (L21 s\\ // sh([auo]
じ d_z\\i // ji
じい d_z\\i: // jī
じぃ d_z\\i: // jī
じー d_z\\i: // jī
じ (L21 d_z\\ // j([auo]
.group す
す sM_Bo // su
すう sM_Bo: // sū
すぅ sM_Bo: // sū
すー sM_Bo: // sū
ず zM_Bo // zu
ずう zM_Bo: // zū
ずぅ zM_Bo: // zū
ずー zM_Bo: // zū
.group せ
せ se_o // se
せえ se_o: // sē
せぇ se_o: // sē
せー se_o: // sē
ぜ ze_o // ze
ぜえ ze_o: // zē
ぜぇ ze_o: // zē
ぜー ze_o: // zē
.group そ
そ so_o // so
そお so_o: // sō
そぉ so_o: // sō
そー so_o: // sō
ぞ zo_o // zo
ぞお zo_o: // zō
ぞぉ zo_o: // zō
ぞー zo_o: // zō
.group た
た ta_" // ta
たあ ta_": // tā
たぁ ta_": // tā
たー ta_": // tā
だ da_" // da
だあ da_": // dā
だぁ da_": // dā
だー da_": // dā
.group ち
ち t_s\\i // chi
ちい t_s\\i: // chī
ちぃ t_s\\i: // chī
ちー t_s\\i: // chī
ち (L21 t_s\\ // ch([auo]
ぢ d_z\\i // ji (obsolete)
ぢい d_z\\i: // jī (obsolete)
ぢぃ d_z\\i: // jī (obsolete)
ぢー d_z\\i: // jī (obsolete)
ぢ (L21 d_z\\ // j([auo] (obsolete)
.group つ
つ t_sM_Bo // tsu
つう t_sM_Bo: // tsū
つぅ t_sM_Bo: // tsū
つー t_sM_Bo: // tsū
づ zM_Bo // zu
づう zM_Bo: // zū
づぅ zM_Bo: // zū
づー zM_Bo: // zū
.group て
て te_o // te
てえ te_o: // tē
てぇ te_o: // tē
てー te_o: // tē
で de_o // de
でえ de_o: // dē
でぇ de_o: // dē
でー de_o: // dē
.group と
と to_o // to
とお to_o: // tō
とぉ to_o: // tō
とー to_o: // tō
ど do_o // do
どお do_o: // dō
どぉ do_o: // dō
どー do_o: // dō
.group な
な na_" // na
なあ na_": // nā
なぁ na_": // nā
なー na_": // nā
.group に
に ni // ni
にい ni: // nī
にぃ ni: // nī
にー ni: // nī
に (L21 n_j // ny([auo]
.group ぬ
ぬ nM_Bo // nu
ぬう nM_Bo: // nū
ぬぅ nM_Bo: // nū
ぬー nM_Bo: // nū
.group ね
ね ne_o // ne
ねえ ne_o: // nē
ねぇ ne_o: // nē
ねー ne_o: // nē
.group の
の no_o // no
のお no_o: // nō
のぉ no_o: // nō
のー no_o: // nō
.group は
は ha_" // ha
はあ ha_": // hā
はぁ ha_": // hā
はー ha_": // hā
ば ba_" // ba
ばあ ba_": // bā
ばぁ ba_": // bā
ばー ba_": // bā
ぱ pa_" // pa
ぱあ pa_": // pā
ぱぁ pa_": // pā
ぱー pa_": // pā
.group ひ
ひ Ci // hi
ひい Ci: // hī
ひぃ Ci: // hī
ひー Ci: // hī
ひ (L21 C // hy([auo]
び bi // bi
びい bi: // bī
びぃ bi: // bī
びー bi: // bī
び (L21 b_j // by([auo]
ぴ pi // pi
ぴい pi: // pī
ぴぃ pi: // pī
ぴー pi: // pī
ぴ (L21 p_j // py([auo]
.group ふ
ふ p\\M_Bo // fu
ふう p\\M_Bo: // fū
ふぅ p\\M_Bo: // fū
ふー p\\M_Bo: // fū
ぶ bM_Bo // bu
ぶう bM_Bo: // bū
ぶぅ bM_Bo: // bū
ぶー bM_Bo: // bū
ぷ pM_Bo // pu
ぷう pM_Bo: // pū
ぷぅ pM_Bo: // pū
ぷー pM_Bo: // pū
.group へ
へ he_o // he
へえ he_o: // hē
へぇ he_o: // hē
へー he_o: // hē
べ be_o // be
べえ be_o: // bē
べぇ be_o: // bē
べー be_o: // bē
ぺ pe_o // pe
ぺえ pe_o: // pē
ぺぇ pe_o: // pē
ぺー pe_o: // pē
.group ほ
ほ ho_o // ho
ほお ho_o: // hō
ほぉ ho_o: // hō
ほー ho_o: // hō
ぼ bo_o // bo
ぼお bo_o: // bō
ぼぉ bo_o: // bō
ぼー bo_o: // bō
ぽ po_o // po
ぽお po_o: // pō
ぽぉ po_o: // pō
ぽー po_o: // pō
.group ま
ま ma_" // ma
まあ ma_": // mā
まぁ ma_": // mā
まー ma_": // mā
.group み
み mi // mi
みい mi: // mī
みぃ mi: // mī
みー mi: // mī
み (L21 m_j // my([auo]
.group む
む mM_Bo // mu
むう mM_Bo: // mū
むぅ mM_Bo: // mū
むー mM_Bo: // mū
.group め
め me_o // me
めえ me_o: // mē
めぇ me_o: // mē
めー me_o: // mē
.group も
も mo_o // mo
もお mo_o: // mō
もぉ mo_o: // mō
もー mo_o: // mō
.group や
や ja_" // ya
やあ ja_": // yā
やぁ ja_": // yā
やー ja_": // yā
.group ゆ
ゆ jM_Bo // yu
ゆう jM_Bo: // yū
ゆぅ jM_Bo: // yū
ゆー jM_Bo: // yū
.group 𛀁
𛀁 je_o // ye (archaic)
𛀁え je_o: // yē (archaic)
𛀁ぇ je_o: // yē (archaic)
𛀁ー je_o: // yē (archaic)
.group よ
よ jo_o // yo
よお jo_o: // yō
よぉ jo_o: // yō
よー jo_o: // yō
.group ら
ら r`a_" // ra
らあ r`a_": // rā
らぁ r`a_": // rā
らー r`a_": // rā
.group り
り r`i // ri
りい r`i: // rī
りぃ r`i: // rī
りー r`i: // rī
り (L21 r`_ja_" // ry([auo]
.group る
る r`M_Bo // ru
るう r`M_Bo: // rū
るぅ r`M_Bo: // rū
るー r`M_Bo: // rū
.group れ
れ r`e_o // re
れえ r`e_o: // rē
れぇ r`e_o: // rē
れー r`e_o: // rē
.group ろ
ろ r`o_o // ro
ろお r`o_o: // rō
ろぉ r`o_o: // rō
ろー r`o_o: // rō
.group わ
わ wa_" // wa
わあ wa_": // wā
わぁ wa_": // wā
わー wa_": // wā
.group ゐ
ゐ i // wi (obsolete)
ゐい i: // wī (obsolete)
ゐぃ i: // wī (obsolete)
ゐー i: // wī (obsolete)
.group ゑ
ゑ we_o // we (obsolete)
ゑえ we_o: // wē (obsolete)
ゑぇ we_o: // wē (obsolete)
ゑー we_o: // wē (obsolete)
.group を
を o_o // wo
をお o_o: // wō
をぉ o_o: // wō
をー o_o: // wō
.group ん
ん N\\ // n
ん (L01 N // n (k
ん (L02 N // n (g
ん (L03 u~ // n (s
い) ん (L03 i~ // i) n (s
ん (L04 u~ // n (sh
い) ん (L04 i~ // i) n (sh
ん (L05 n // n (z
ん (L06 n // n (j
ん (L07 n // n (t
ん (L08 n // n (ch
ん (L09 n // n (ts
ん (L10 n // n (d
ん (L11 n // n (n
ん (L12 u~ // n (h
い) ん (L12 i~ // i) n (h
ん (L13 u~ // n (f
い) ん (L13 i~ // i) n (f
ん (L14 m // n (b
ん (L15 m // n (p
ん (L16 m // n (m
ん (L17 u~ // n (y
い) ん (L17 i~ // i) n (y
ん (L18 n // n (r
ん (L19 u~ // n (w
い) ん (L19 i~ // i) n (w
ん (L20 u~ // n ([vowel]
い) ん (L20 i~ // i) n ([vowel]
.group っ
っ (_ ?
っ (L01 k // k.k
っ (L02 g // g.g
っ (L03 s // s.s
っ (L04 s\\ // s.sh
っ (L05 z // z.z
っ (L06 d // d.j
っ (L07 t // t.t
っ (L08 t // t.ch
っ (L09 t // t.ts
っ (L10 d // d.d
っ (L14 b // b.b
っ (L15 p // p.p
っ (L16 m // m.m
っ (L18 r // r.r