open_jtalk的训练包中,qst文件的前半段(上下文定义区)是这样的:
QS "LL-Phone_Yuuseion" {a^*,i^*,u^*,e^*,o^*,v^*,b^*,by^*,m^*,my^*,w^*,z^*,j^*,d^*,dy^*,n^*,ny^*,N^*,r^*,ry^*,g^*,gy^*,y^*}
QS "LL-Phone_Museion" {A^*,I^*,U^*,E^*,O^*,f^*,p^*,py^*,s^*,sh^*,ts^*,ch^*,t^*,ty^*,k^*,ky^*,h^*,hy^*}
QS "LL-Phone_Muon" {sil^*,pau^*}
QS "LL-Phone_Boin" {a^*,i^*,u^*,e^*,o^*,A^*,I^*,U^*,E^*,O^*}
QS "LL-Phone_Yuusei_Boin" {a^*,i^*,u^*,e^*,o^*}
QS "LL-Phone_Museika_Boin" {A^*,I^*,U^*,E^*,O^*}
QS "LL-Phone_Maejita_Boin" {i^*,e^*,I^*,E^*}
QS "LL-Phone_Yuusei_Maejita_Boin" {i^*,e^*}
QS "LL-Phone_Museika_Maejita_Boin" {I^*,E^*}
QS "LL-Phone_Atojita_Boin" {a^*,u^*,o^*,A^*,U^*,O^*}
QS "LL-Phone_Yuusei_Atojita_Boin" {a^*,u^*,o^*}
QS "LL-Phone_Museika_Atojita_Boin" {A^*,U^*,O^*}
QS "LL-Phone_Sema_Boin" {i^*,u^*,I^*,U^*}
QS "LL-Phone_Yuusei_Sema_Boin" {i^*,u^*}
QS "LL-Phone_Museika_Sema_Boin" {I^*,U^*}
QS "LL-Phone_Han_Sema_Boin" {e^*,o^*,E^*,O^*}
QS "LL-Phone_Yuusei_Han_Sema_Boin" {e^*,o^*}
QS "LL-Phone_Museika_Han_Sema_Boin" {E^*,O^*}
QS "LL-Phone_Hiro_Boin" {a^*,A^*}
QS "LL-Phone_Yuusei_Hiro_Boin" {a^*}
QS "LL-Phone_Museika_Hiro_Boin" {A^*}
QS "LL-Phone_Boin_A" {a^*,A^*}
QS "LL-Phone_Boin_I" {i^*,I^*}
QS "LL-Phone_Boin_U" {u^*,U^*}
QS "LL-Phone_Boin_E" {e^*,E^*}
QS "LL-Phone_Boin_O" {o^*,O^*}
QS "LL-Phone_Yuusei_Shiin" {v^*,b^*,by^*,m^*,my^*,w^*,z^*,j^*,d^*,dy^*,n^*,ny^*,N^*,r^*,ry^*,g^*,gy^*,y^*}
QS "LL-Phone_Musei_Shiin" {f^*,p^*,py^*,s^*,sh^*,ts^*,ch^*,t^*,ty^*,k^*,ky^*,h^*,hy^*}
QS "LL-Phone_Kuchibiruon" {v^*,b^*,by^*,m^*,my^*,w^*,f^*,p^*,py^*}
QS "LL-Phone_Hagukion" {z^*,j^*,d^*,dy^*,n^*,ny^*,N^*,r^*,ry^*,s^*,sh^*,ts^*,ch^*,t^*,ty^*}
QS "LL-Phone_Kougaion" {g^*,gy^*,y^*,k^*,ky^*}
QS "LL-Phone_Seimonon" {h^*,hy^*}
QS "LL-Phone_Masatsuon" {v^*,z^*,j^*,f^*,s^*,sh^*,h^*,hy^*}
QS "LL-Phone_Hasatsuon" {ts^*,ch^*}
QS "LL-Phone_Haretsuon" {b^*,by^*,d^*,dy^*,g^*,gy^*,p^*,py^*,t^*,ty^*,k^*,ky^*}
QS "LL-Phone_Bion" {m^*,my^*,n^*,ny^*,N^*}
QS "LL-Phone_Han_Boin" {w^*,r^*,ry^*,y^*}
QS "LL-Phone_Yuusei_Kuchibiru_Haretsuon" {b^*,by^*}
QS "LL-Phone_Yuusei_Kuchibiru_Bion" {m^*,my^*}
QS "LL-Phone_Yuusei_Haguki_Masatsuon" {z^*,j^*}
QS "LL-Phone_Yuusei_Haguki_Haretsuon" {d^*,dy^*}
QS "LL-Phone_Yuusei_Haguki_Bion" {n^*,ny^*,N^*}
QS "LL-Phone_Yuusei_Haguki_Han_Boin" {r^*,ry^*}
QS "LL-Phone_Yuusei_Kougai_Haretsuon" {g^*,gy^*}
QS "LL-Phone_Musei_Kuchibiru_Haretsuon" {p^*,py^*}
QS "LL-Phone_Musei_Haguki_Masatsuon" {s^*,sh^*}
QS "LL-Phone_Musei_Haguki_Hasatsuon" {ts^*,ch^*}
QS "LL-Phone_Musei_Haguki_Haretsuon" {t^*,ty^*}
QS "LL-Phone_Musei_Kougai_Haretsuon" {k^*,ky^*}
QS "LL-Phone_Musei_Seimon_Masatsuon" {h^*,hy^*}
QS "LL-Phone_Youon" {by^*,my^*,j^*,dy^*,ny^*,ry^*,gy^*,py^*,sh^*,ch^*,ty^*,ky^*,hy^*}
QS "LL-Phone_A" {A^*}
QS "LL-Phone_E" {E^*}
QS "LL-Phone_I" {I^*}
QS "LL-Phone_N" {N^*}
QS "LL-Phone_O" {O^*}
QS "LL-Phone_U" {U^*}
QS "LL-Phone_a" {a^*}
QS "LL-Phone_b" {b^*}
QS "LL-Phone_by" {by^*}
QS "LL-Phone_ch" {ch^*}
QS "LL-Phone_cl" {cl^*}
QS "LL-Phone_d" {d^*}
QS "LL-Phone_dy" {dy^*}
QS "LL-Phone_e" {e^*}
QS "LL-Phone_f" {f^*}
QS "LL-Phone_g" {g^*}
QS "LL-Phone_gy" {gy^*}
QS "LL-Phone_h" {h^*}
QS "LL-Phone_hy" {hy^*}
QS "LL-Phone_i" {i^*}
QS "LL-Phone_j" {j^*}
QS "LL-Phone_k" {k^*}
QS "LL-Phone_ky" {ky^*}
QS "LL-Phone_m" {m^*}
QS "LL-Phone_my" {my^*}
QS "LL-Phone_n" {n^*}
QS "LL-Phone_ny" {ny^*}
QS "LL-Phone_o" {o^*}
QS "LL-Phone_p" {p^*}
QS "LL-Phone_pau" {pau^*}
QS "LL-Phone_py" {py^*}
QS "LL-Phone_r" {r^*}
QS "LL-Phone_ry" {ry^*}
QS "LL-Phone_s" {s^*}
QS "LL-Phone_sh" {sh^*}
QS "LL-Phone_sil" {sil^*}
QS "LL-Phone_t" {t^*}
QS "LL-Phone_ts" {ts^*}
QS "LL-Phone_ty" {ty^*}
QS "LL-Phone_u" {u^*}
QS "LL-Phone_v" {v^*}
QS "LL-Phone_w" {w^*}
QS "LL-Phone_y" {y^*}
QS "LL-Phone_z" {z^*}
QS "L-Phone_Yuuseion" {*^a-*,*^i-*,*^u-*,*^e-*,*^o-*,*^v-*,*^b-*,*^by-*,*^m-*,*^my-*,*^w-*,*^z-*,*^j-*,*^d-*,*^dy-*,*^n-*,*^ny-*,*^N-*,*^r-*,*^ry-*,*^g-*,*^gy-*,*^y-*}
QS "L-Phone_Museion" {*^A-*,*^I-*,*^U-*,*^E-*,*^O-*,*^f-*,*^p-*,*^py-*,*^s-*,*^sh-*,*^ts-*,*^ch-*,*^t-*,*^ty-*,*^k-*,*^ky-*,*^h-*,*^hy-*}
QS "L-Phone_Muon" {*^sil-*,*^pau-*}
QS "L-Phone_Boin" {*^a-*,*^i-*,*^u-*,*^e-*,*^o-*,*^A-*,*^I-*,*^U-*,*^E-*,*^O-*}
QS "L-Phone_Yuusei_Boin" {*^a-*,*^i-*,*^u-*,*^e-*,*^o-*}
QS "L-Phone_Museika_Boin" {*^A-*,*^I-*,*^U-*,*^E-*,*^O-*}
QS "L-Phone_Maejita_Boin" {*^i-*,*^e-*,*^I-*,*^E-*}
QS "L-Phone_Yuusei_Maejita_Boin" {*^i-*,*^e-*}
QS "L-Phone_Museika_Maejita_Boin" {*^I-*,*^E-*}
QS "L-Phone_Atojita_Boin" {*^a-*,*^u-*,*^o-*,*^A-*,*^U-*,*^O-*}
QS "L-Phone_Yuusei_Atojita_Boin" {*^a-*,*^u-*,*^o-*}
QS "L-Phone_Museika_Atojita_Boin" {*^A-*,*^U-*,*^O-*}
QS "L-Phone_Sema_Boin" {*^i-*,*^u-*,*^I-*,*^U-*}
QS "L-Phone_Yuusei_Sema_Boin" {*^i-*,*^u-*}
QS "L-Phone_Museika_Sema_Boin" {*^I-*,*^U-*}
QS "L-Phone_Han_Sema_Boin" {*^e-*,*^o-*,*^E-*,*^O-*}
QS "L-Phone_Yuusei_Han_Sema_Boin" {*^e-*,*^o-*}
QS "L-Phone_Museika_Han_Sema_Boin" {*^E-*,*^O-*}
QS "L-Phone_Hiro_Boin" {*^a-*,*^A-*}
QS "L-Phone_Yuusei_Hiro_Boin" {*^a-*}
QS "L-Phone_Museika_Hiro_Boin" {*^A-*}
QS "L-Phone_Boin_A" {*^a-*,*^A-*}
QS "L-Phone_Boin_I" {*^i-*,*^I-*}
QS "L-Phone_Boin_U" {*^u-*,*^U-*}
QS "L-Phone_Boin_E" {*^e-*,*^E-*}
QS "L-Phone_Boin_O" {*^o-*,*^O-*}
QS "L-Phone_Yuusei_Shiin" {*^v-*,*^b-*,*^by-*,*^m-*,*^my-*,*^w-*,*^z-*,*^j-*,*^d-*,*^dy-*,*^n-*,*^ny-*,*^N-*,*^r-*,*^ry-*,*^g-*,*^gy-*,*^y-*}
QS "L-Phone_Musei_Shiin" {*^f-*,*^p-*,*^py-*,*^s-*,*^sh-*,*^ts-*,*^ch-*,*^t-*,*^ty-*,*^k-*,*^ky-*,*^h-*,*^hy-*}
QS "L-Phone_Kuchibiruon" {*^v-*,*^b-*,*^by-*,*^m-*,*^my-*,*^w-*,*^f-*,*^p-*,*^py-*}
QS "L-Phone_Hagukion" {*^z-*,*^j-*,*^d-*,*^dy-*,*^n-*,*^ny-*,*^N-*,*^r-*,*^ry-*,*^s-*,*^sh-*,*^ts-*,*^ch-*,*^t-*,*^ty-*}
QS "L-Phone_Kougaion" {*^g-*,*^gy-*,*^y-*,*^k-*,*^ky-*}
QS "L-Phone_Seimonon" {*^h-*,*^hy-*}
QS "L-Phone_Masatsuon" {*^v-*,*^z-*,*^j-*,*^f-*,*^s-*,*^sh-*,*^h-*,*^hy-*}
QS "L-Phone_Hasatsuon" {*^ts-*,*^ch-*}
QS "L-Phone_Haretsuon" {*^b-*,*^by-*,*^d-*,*^dy-*,*^g-*,*^gy-*,*^p-*,*^py-*,*^t-*,*^ty-*,*^k-*,*^ky-*}
QS "L-Phone_Bion" {*^m-*,*^my-*,*^n-*,*^ny-*,*^N-*}
QS "L-Phone_Han_Boin" {*^w-*,*^r-*,*^ry-*,*^y-*}
QS "L-Phone_Yuusei_Kuchibiru_Haretsuon" {*^b-*,*^by-*}
QS "L-Phone_Yuusei_Kuchibiru_Bion" {*^m-*,*^my-*}
QS "L-Phone_Yuusei_Haguki_Masatsuon" {*^z-*,*^j-*}
QS "L-Phone_Yuusei_Haguki_Haretsuon" {*^d-*,*^dy-*}
QS "L-Phone_Yuusei_Haguki_Bion" {*^n-*,*^ny-*,*^N-*}
QS "L-Phone_Yuusei_Haguki_Han_Boin" {*^r-*,*^ry-*}
QS "L-Phone_Yuusei_Kougai_Haretsuon" {*^g-*,*^gy-*}
QS "L-Phone_Musei_Kuchibiru_Haretsuon" {*^p-*,*^py-*}
QS "L-Phone_Musei_Haguki_Masatsuon" {*^s-*,*^sh-*}
QS "L-Phone_Musei_Haguki_Hasatsuon" {*^ts-*,*^ch-*}
QS "L-Phone_Musei_Haguki_Haretsuon" {*^t-*,*^ty-*}
QS "L-Phone_Musei_Kougai_Haretsuon" {*^k-*,*^ky-*}
QS "L-Phone_Musei_Seimon_Masatsuon" {*^h-*,*^hy-*}
QS "L-Phone_Youon" {*^by-*,*^my-*,*^j-*,*^dy-*,*^ny-*,*^ry-*,*^gy-*,*^py-*,*^sh-*,*^ch-*,*^ty-*,*^ky-*,*^hy-*}
QS "L-Phone_A" {*^A-*}
QS "L-Phone_E" {*^E-*}
QS "L-Phone_I" {*^I-*}
QS "L-Phone_N" {*^N-*}
QS "L-Phone_O" {*^O-*}
QS "L-Phone_U" {*^U-*}
QS "L-Phone_a" {*^a-*}
QS "L-Phone_b" {*^b-*}
QS "L-Phone_by" {*^by-*}
QS "L-Phone_ch" {*^ch-*}
QS "L-Phone_cl" {*^cl-*}
QS "L-Phone_d" {*^d-*}
QS "L-Phone_dy" {*^dy-*}
QS "L-Phone_e" {*^e-*}
QS "L-Phone_f" {*^f-*}
QS "L-Phone_g" {*^g-*}
QS "L-Phone_gy" {*^gy-*}
QS "L-Phone_h" {*^h-*}
QS "L-Phone_hy" {*^hy-*}
QS "L-Phone_i" {*^i-*}
QS "L-Phone_j" {*^j-*}
QS "L-Phone_k" {*^k-*}
QS "L-Phone_ky" {*^ky-*}
QS "L-Phone_m" {*^m-*}
QS "L-Phone_my" {*^my-*}
QS "L-Phone_n" {*^n-*}
QS "L-Phone_ny" {*^ny-*}
QS "L-Phone_o" {*^o-*}
QS "L-Phone_p" {*^p-*}
QS "L-Phone_pau" {*^pau-*}
QS "L-Phone_py" {*^py-*}
QS "L-Phone_r" {*^r-*}
QS "L-Phone_ry" {*^ry-*}
QS "L-Phone_s" {*^s-*}
QS "L-Phone_sh" {*^sh-*}
QS "L-Phone_sil" {*^sil-*}
QS "L-Phone_t" {*^t-*}
QS "L-Phone_ts" {*^ts-*}
QS "L-Phone_ty" {*^ty-*}
QS "L-Phone_u" {*^u-*}
QS "L-Phone_v" {*^v-*}
QS "L-Phone_w" {*^w-*}
QS "L-Phone_y" {*^y-*}
QS "L-Phone_z" {*^z-*}
QS "C-Phone_Yuuseion" {*-a+*,*-i+*,*-u+*,*-e+*,*-o+*,*-v+*,*-b+*,*-by+*,*-m+*,*-my+*,*-w+*,*-z+*,*-j+*,*-d+*,*-dy+*,*-n+*,*-ny+*,*-N+*,*-r+*,*-ry+*,*-g+*,*-gy+*,*-y+*}
QS "C-Phone_Museion" {*-A+*,*-I+*,*-U+*,*-E+*,*-O+*,*-f+*,*-p+*,*-py+*,*-s+*,*-sh+*,*-ts+*,*-ch+*,*-t+*,*-ty+*,*-k+*,*-ky+*,*-h+*,*-hy+*}
QS "C-Phone_Muon" {*-sil+*,*-pau+*}
QS "C-Phone_Boin" {*-a+*,*-i+*,*-u+*,*-e+*,*-o+*,*-A+*,*-I+*,*-U+*,*-E+*,*-O+*}
QS "C-Phone_Yuusei_Boin" {*-a+*,*-i+*,*-u+*,*-e+*,*-o+*}
QS "C-Phone_Museika_Boin" {*-A+*,*-I+*,*-U+*,*-E+*,*-O+*}
QS "C-Phone_Maejita_Boin" {*-i+*,*-e+*,*-I+*,*-E+*}
QS "C-Phone_Yuusei_Maejita_Boin" {*-i+*,*-e+*}
QS "C-Phone_Museika_Maejita_Boin" {*-I+*,*-E+*}
QS "C-Phone_Atojita_Boin" {*-a+*,*-u+*,*-o+*,*-A+*,*-U+*,*-O+*}
QS "C-Phone_Yuusei_Atojita_Boin" {*-a+*,*-u+*,*-o+*}
QS "C-Phone_Museika_Atojita_Boin" {*-A+*,*-U+*,*-O+*}
QS "C-Phone_Sema_Boin" {*-i+*,*-u+*,*-I+*,*-U+*}
QS "C-Phone_Yuusei_Sema_Boin" {*-i+*,*-u+*}
QS "C-Phone_Museika_Sema_Boin" {*-I+*,*-U+*}
QS "C-Phone_Han_Sema_Boin" {*-e+*,*-o+*,*-E+*,*-O+*}
QS "C-Phone_Yuusei_Han_Sema_Boin" {*-e+*,*-o+*}
QS "C-Phone_Museika_Han_Sema_Boin" {*-E+*,*-O+*}
QS "C-Phone_Hiro_Boin" {*-a+*,*-A+*}
QS "C-Phone_Yuusei_Hiro_Boin" {*-a+*}
QS "C-Phone_Museika_Hiro_Boin" {*-A+*}
QS "C-Phone_Boin_A" {*-a+*,*-A+*}
QS "C-Phone_Boin_I" {*-i+*,*-I+*}
QS "C-Phone_Boin_U" {*-u+*,*-U+*}
QS "C-Phone_Boin_E" {*-e+*,*-E+*}
QS "C-Phone_Boin_O" {*-o+*,*-O+*}
QS "C-Phone_Yuusei_Shiin" {*-v+*,*-b+*,*-by+*,*-m+*,*-my+*,*-w+*,*-z+*,*-j+*,*-d+*,*-dy+*,*-n+*,*-ny+*,*-N+*,*-r+*,*-ry+*,*-g+*,*-gy+*,*-y+*}
QS "C-Phone_Musei_Shiin" {*-f+*,*-p+*,*-py+*,*-s+*,*-sh+*,*-ts+*,*-ch+*,*-t+*,*-ty+*,*-k+*,*-ky+*,*-h+*,*-hy+*}
QS "C-Phone_Kuchibiruon" {*-v+*,*-b+*,*-by+*,*-m+*,*-my+*,*-w+*,*-f+*,*-p+*,*-py+*}
QS "C-Phone_Hagukion" {*-z+*,*-j+*,*-d+*,*-dy+*,*-n+*,*-ny+*,*-N+*,*-r+*,*-ry+*,*-s+*,*-sh+*,*-ts+*,*-ch+*,*-t+*,*-ty+*}
QS "C-Phone_Kougaion" {*-g+*,*-gy+*,*-y+*,*-k+*,*-ky+*}
QS "C-Phone_Seimonon" {*-h+*,*-hy+*}
QS "C-Phone_Masatsuon" {*-v+*,*-z+*,*-j+*,*-f+*,*-s+*,*-sh+*,*-h+*,*-hy+*}
QS "C-Phone_Hasatsuon" {*-ts+*,*-ch+*}
QS "C-Phone_Haretsuon" {*-b+*,*-by+*,*-d+*,*-dy+*,*-g+*,*-gy+*,*-p+*,*-py+*,*-t+*,*-ty+*,*-k+*,*-ky+*}
QS "C-Phone_Bion" {*-m+*,*-my+*,*-n+*,*-ny+*,*-N+*}
QS "C-Phone_Han_Boin" {*-w+*,*-r+*,*-ry+*,*-y+*}
QS "C-Phone_Yuusei_Kuchibiru_Haretsuon" {*-b+*,*-by+*}
QS "C-Phone_Yuusei_Kuchibiru_Bion" {*-m+*,*-my+*}
QS "C-Phone_Yuusei_Haguki_Masatsuon" {*-z+*,*-j+*}
QS "C-Phone_Yuusei_Haguki_Haretsuon" {*-d+*,*-dy+*}
QS "C-Phone_Yuusei_Haguki_Bion" {*-n+*,*-ny+*,*-N+*}
QS "C-Phone_Yuusei_Haguki_Han_Boin" {*-r+*,*-ry+*}
QS "C-Phone_Yuusei_Kougai_Haretsuon" {*-g+*,*-gy+*}
QS "C-Phone_Musei_Kuchibiru_Haretsuon" {*-p+*,*-py+*}
QS "C-Phone_Musei_Haguki_Masatsuon" {*-s+*,*-sh+*}
QS "C-Phone_Musei_Haguki_Hasatsuon" {*-ts+*,*-ch+*}
QS "C-Phone_Musei_Haguki_Haretsuon" {*-t+*,*-ty+*}
QS "C-Phone_Musei_Kougai_Haretsuon" {*-k+*,*-ky+*}
QS "C-Phone_Musei_Seimon_Masatsuon" {*-h+*,*-hy+*}
QS "C-Phone_Youon" {*-by+*,*-my+*,*-j+*,*-dy+*,*-ny+*,*-ry+*,*-gy+*,*-py+*,*-sh+*,*-ch+*,*-ty+*,*-ky+*,*-hy+*}
QS "C-Phone_A" {*-A+*}
QS "C-Phone_E" {*-E+*}
QS "C-Phone_I" {*-I+*}
QS "C-Phone_N" {*-N+*}
QS "C-Phone_O" {*-O+*}
QS "C-Phone_U" {*-U+*}
QS "C-Phone_a" {*-a+*}
QS "C-Phone_b" {*-b+*}
QS "C-Phone_by" {*-by+*}
QS "C-Phone_ch" {*-ch+*}
QS "C-Phone_cl" {*-cl+*}
QS "C-Phone_d" {*-d+*}
QS "C-Phone_dy" {*-dy+*}
QS "C-Phone_e" {*-e+*}
QS "C-Phone_f" {*-f+*}
QS "C-Phone_g" {*-g+*}
QS "C-Phone_gy" {*-gy+*}
QS "C-Phone_h" {*-h+*}
QS "C-Phone_hy" {*-hy+*}
QS "C-Phone_i" {*-i+*}
QS "C-Phone_j" {*-j+*}
QS "C-Phone_k" {*-k+*}
QS "C-Phone_ky" {*-ky+*}
QS "C-Phone_m" {*-m+*}
QS "C-Phone_my" {*-my+*}
QS "C-Phone_n" {*-n+*}
QS "C-Phone_ny" {*-ny+*}
QS "C-Phone_o" {*-o+*}
QS "C-Phone_p" {*-p+*}
QS "C-Phone_pau" {*-pau+*}
QS "C-Phone_py" {*-py+*}
QS "C-Phone_r" {*-r+*}
QS "C-Phone_ry" {*-ry+*}
QS "C-Phone_s" {*-s+*}
QS "C-Phone_sh" {*-sh+*}
QS "C-Phone_sil" {*-sil+*}
QS "C-Phone_t" {*-t+*}
QS "C-Phone_ts" {*-ts+*}
QS "C-Phone_ty" {*-ty+*}
QS "C-Phone_u" {*-u+*}
QS "C-Phone_v" {*-v+*}
QS "C-Phone_w" {*-w+*}
QS "C-Phone_y" {*-y+*}
QS "C-Phone_z" {*-z+*}
QS "R-Phone_Yuuseion" {*+a=*,*+i=*,*+u=*,*+e=*,*+o=*,*+v=*,*+b=*,*+by=*,*+m=*,*+my=*,*+w=*,*+z=*,*+j=*,*+d=*,*+dy=*,*+n=*,*+ny=*,*+N=*,*+r=*,*+ry=*,*+g=*,*+gy=*,*+y=*}
QS "R-Phone_Museion" {*+A=*,*+I=*,*+U=*,*+E=*,*+O=*,*+f=*,*+p=*,*+py=*,*+s=*,*+sh=*,*+ts=*,*+ch=*,*+t=*,*+ty=*,*+k=*,*+ky=*,*+h=*,*+hy=*}
QS "R-Phone_Muon" {*+sil=*,*+pau=*}
QS "R-Phone_Boin" {*+a=*,*+i=*,*+u=*,*+e=*,*+o=*,*+A=*,*+I=*,*+U=*,*+E=*,*+O=*}
QS "R-Phone_Yuusei_Boin" {*+a=*,*+i=*,*+u=*,*+e=*,*+o=*}
QS "R-Phone_Museika_Boin" {*+A=*,*+I=*,*+U=*,*+E=*,*+O=*}
QS "R-Phone_Maejita_Boin" {*+i=*,*+e=*,*+I=*,*+E=*}
QS "R-Phone_Yuusei_Maejita_Boin" {*+i=*,*+e=*}
QS "R-Phone_Museika_Maejita_Boin" {*+I=*,*+E=*}
QS "R-Phone_Atojita_Boin" {*+a=*,*+u=*,*+o=*,*+A=*,*+U=*,*+O=*}
QS "R-Phone_Yuusei_Atojita_Boin" {*+a=*,*+u=*,*+o=*}
QS "R-Phone_Museika_Atojita_Boin" {*+A=*,*+U=*,*+O=*}
QS "R-Phone_Sema_Boin" {*+i=*,*+u=*,*+I=*,*+U=*}
QS "R-Phone_Yuusei_Sema_Boin" {*+i=*,*+u=*}
QS "R-Phone_Museika_Sema_Boin" {*+I=*,*+U=*}
QS "R-Phone_Han_Sema_Boin" {*+e=*,*+o=*,*+E=*,*+O=*}
QS "R-Phone_Yuusei_Han_Sema_Boin" {*+e=*,*+o=*}
QS "R-Phone_Museika_Han_Sema_Boin" {*+E=*,*+O=*}
QS "R-Phone_Hiro_Boin" {*+a=*,*+A=*}
QS "R-Phone_Yuusei_Hiro_Boin" {*+a=*}
QS "R-Phone_Museika_Hiro_Boin" {*+A=*}
QS "R-Phone_Boin_A" {*+a=*,*+A=*}
QS "R-Phone_Boin_I" {*+i=*,*+I=*}
QS "R-Phone_Boin_U" {*+u=*,*+U=*}
QS "R-Phone_Boin_E" {*+e=*,*+E=*}
QS "R-Phone_Boin_O" {*+o=*,*+O=*}
QS "R-Phone_Yuusei_Shiin" {*+v=*,*+b=*,*+by=*,*+m=*,*+my=*,*+w=*,*+z=*,*+j=*,*+d=*,*+dy=*,*+n=*,*+ny=*,*+N=*,*+r=*,*+ry=*,*+g=*,*+gy=*,*+y=*}
QS "R-Phone_Musei_Shiin" {*+f=*,*+p=*,*+py=*,*+s=*,*+sh=*,*+ts=*,*+ch=*,*+t=*,*+ty=*,*+k=*,*+ky=*,*+h=*,*+hy=*}
QS "R-Phone_Kuchibiruon" {*+v=*,*+b=*,*+by=*,*+m=*,*+my=*,*+w=*,*+f=*,*+p=*,*+py=*}
QS "R-Phone_Hagukion" {*+z=*,*+j=*,*+d=*,*+dy=*,*+n=*,*+ny=*,*+N=*,*+r=*,*+ry=*,*+s=*,*+sh=*,*+ts=*,*+ch=*,*+t=*,*+ty=*}
QS "R-Phone_Kougaion" {*+g=*,*+gy=*,*+y=*,*+k=*,*+ky=*}
QS "R-Phone_Seimonon" {*+h=*,*+hy=*}
QS "R-Phone_Masatsuon" {*+v=*,*+z=*,*+j=*,*+f=*,*+s=*,*+sh=*,*+h=*,*+hy=*}
QS "R-Phone_Hasatsuon" {*+ts=*,*+ch=*}
QS "R-Phone_Haretsuon" {*+b=*,*+by=*,*+d=*,*+dy=*,*+g=*,*+gy=*,*+p=*,*+py=*,*+t=*,*+ty=*,*+k=*,*+ky=*}
QS "R-Phone_Bion" {*+m=*,*+my=*,*+n=*,*+ny=*,*+N=*}
QS "R-Phone_Han_Boin" {*+w=*,*+r=*,*+ry=*,*+y=*}
QS "R-Phone_Yuusei_Kuchibiru_Haretsuon" {*+b=*,*+by=*}
QS "R-Phone_Yuusei_Kuchibiru_Bion" {*+m=*,*+my=*}
QS "R-Phone_Yuusei_Haguki_Masatsuon" {*+z=*,*+j=*}
QS "R-Phone_Yuusei_Haguki_Haretsuon" {*+d=*,*+dy=*}
QS "R-Phone_Yuusei_Haguki_Bion" {*+n=*,*+ny=*,*+N=*}
QS "R-Phone_Yuusei_Haguki_Han_Boin" {*+r=*,*+ry=*}
QS "R-Phone_Yuusei_Kougai_Haretsuon" {*+g=*,*+gy=*}
QS "R-Phone_Musei_Kuchibiru_Haretsuon" {*+p=*,*+py=*}
QS "R-Phone_Musei_Haguki_Masatsuon" {*+s=*,*+sh=*}
QS "R-Phone_Musei_Haguki_Hasatsuon" {*+ts=*,*+ch=*}
QS "R-Phone_Musei_Haguki_Haretsuon" {*+t=*,*+ty=*}
QS "R-Phone_Musei_Kougai_Haretsuon" {*+k=*,*+ky=*}
QS "R-Phone_Musei_Seimon_Masatsuon" {*+h=*,*+hy=*}
QS "R-Phone_Youon" {*+by=*,*+my=*,*+j=*,*+dy=*,*+ny=*,*+ry=*,*+gy=*,*+py=*,*+sh=*,*+ch=*,*+ty=*,*+ky=*,*+hy=*}
QS "R-Phone_A" {*+A=*}
QS "R-Phone_E" {*+E=*}
QS "R-Phone_I" {*+I=*}
QS "R-Phone_N" {*+N=*}
QS "R-Phone_O" {*+O=*}
QS "R-Phone_U" {*+U=*}
QS "R-Phone_a" {*+a=*}
QS "R-Phone_b" {*+b=*}
QS "R-Phone_by" {*+by=*}
QS "R-Phone_ch" {*+ch=*}
QS "R-Phone_cl" {*+cl=*}
QS "R-Phone_d" {*+d=*}
QS "R-Phone_dy" {*+dy=*}
QS "R-Phone_e" {*+e=*}
QS "R-Phone_f" {*+f=*}
QS "R-Phone_g" {*+g=*}
QS "R-Phone_gy" {*+gy=*}
QS "R-Phone_h" {*+h=*}
QS "R-Phone_hy" {*+hy=*}
QS "R-Phone_i" {*+i=*}
QS "R-Phone_j" {*+j=*}
QS "R-Phone_k" {*+k=*}
QS "R-Phone_ky" {*+ky=*}
QS "R-Phone_m" {*+m=*}
QS "R-Phone_my" {*+my=*}
QS "R-Phone_n" {*+n=*}
QS "R-Phone_ny" {*+ny=*}
QS "R-Phone_o" {*+o=*}
QS "R-Phone_p" {*+p=*}
QS "R-Phone_pau" {*+pau=*}
QS "R-Phone_py" {*+py=*}
QS "R-Phone_r" {*+r=*}
QS "R-Phone_ry" {*+ry=*}
QS "R-Phone_s" {*+s=*}
QS "R-Phone_sh" {*+sh=*}
QS "R-Phone_sil" {*+sil=*}
QS "R-Phone_t" {*+t=*}
QS "R-Phone_ts" {*+ts=*}
QS "R-Phone_ty" {*+ty=*}
QS "R-Phone_u" {*+u=*}
QS "R-Phone_v" {*+v=*}
QS "R-Phone_w" {*+w=*}
QS "R-Phone_y" {*+y=*}
QS "R-Phone_z" {*+z=*}
QS "RR-Phone_Yuuseion" {*=a/A:*,*=i/A:*,*=u/A:*,*=e/A:*,*=o/A:*,*=v/A:*,*=b/A:*,*=by/A:*,*=m/A:*,*=my/A:*,*=w/A:*,*=z/A:*,*=j/A:*,*=d/A:*,*=dy/A:*,*=n/A:*,*=ny/A:*,*=N/A:*,*=r/A:*,*=ry/A:*,*=g/A:*,*=gy/A:*,*=y/A:*}
QS "RR-Phone_Museion" {*=A/A:*,*=I/A:*,*=U/A:*,*=E/A:*,*=O/A:*,*=f/A:*,*=p/A:*,*=py/A:*,*=s/A:*,*=sh/A:*,*=ts/A:*,*=ch/A:*,*=t/A:*,*=ty/A:*,*=k/A:*,*=ky/A:*,*=h/A:*,*=hy/A:*}
QS "RR-Phone_Muon" {*=sil/A:*,*=pau/A:*}
QS "RR-Phone_Boin" {*=a/A:*,*=i/A:*,*=u/A:*,*=e/A:*,*=o/A:*,*=A/A:*,*=I/A:*,*=U/A:*,*=E/A:*,*=O/A:*}
QS "RR-Phone_Yuusei_Boin" {*=a/A:*,*=i/A:*,*=u/A:*,*=e/A:*,*=o/A:*}
QS "RR-Phone_Museika_Boin" {*=A/A:*,*=I/A:*,*=U/A:*,*=E/A:*,*=O/A:*}
QS "RR-Phone_Maejita_Boin" {*=i/A:*,*=e/A:*,*=I/A:*,*=E/A:*}
QS "RR-Phone_Yuusei_Maejita_Boin" {*=i/A:*,*=e/A:*}
QS "RR-Phone_Museika_Maejita_Boin" {*=I/A:*,*=E/A:*}
QS "RR-Phone_Atojita_Boin" {*=a/A:*,*=u/A:*,*=o/A:*,*=A/A:*,*=U/A:*,*=O/A:*}
QS "RR-Phone_Yuusei_Atojita_Boin" {*=a/A:*,*=u/A:*,*=o/A:*}
QS "RR-Phone_Museika_Atojita_Boin" {*=A/A:*,*=U/A:*,*=O/A:*}
QS "RR-Phone_Sema_Boin" {*=i/A:*,*=u/A:*,*=I/A:*,*=U/A:*}
QS "RR-Phone_Yuusei_Sema_Boin" {*=i/A:*,*=u/A:*}
QS "RR-Phone_Museika_Sema_Boin" {*=I/A:*,*=U/A:*}
QS "RR-Phone_Han_Sema_Boin" {*=e/A:*,*=o/A:*,*=E/A:*,*=O/A:*}
QS "RR-Phone_Yuusei_Han_Sema_Boin" {*=e/A:*,*=o/A:*}
QS "RR-Phone_Museika_Han_Sema_Boin" {*=E/A:*,*=O/A:*}
QS "RR-Phone_Hiro_Boin" {*=a/A:*,*=A/A:*}
QS "RR-Phone_Yuusei_Hiro_Boin" {*=a/A:*}
QS "RR-Phone_Museika_Hiro_Boin" {*=A/A:*}
QS "RR-Phone_Boin_A" {*=a/A:*,*=A/A:*}
QS "RR-Phone_Boin_I" {*=i/A:*,*=I/A:*}
QS "RR-Phone_Boin_U" {*=u/A:*,*=U/A:*}
QS "RR-Phone_Boin_E" {*=e/A:*,*=E/A:*}
QS "RR-Phone_Boin_O" {*=o/A:*,*=O/A:*}
QS "RR-Phone_Yuusei_Shiin" {*=v/A:*,*=b/A:*,*=by/A:*,*=m/A:*,*=my/A:*,*=w/A:*,*=z/A:*,*=j/A:*,*=d/A:*,*=dy/A:*,*=n/A:*,*=ny/A:*,*=N/A:*,*=r/A:*,*=ry/A:*,*=g/A:*,*=gy/A:*,*=y/A:*}
QS "RR-Phone_Musei_Shiin" {*=f/A:*,*=p/A:*,*=py/A:*,*=s/A:*,*=sh/A:*,*=ts/A:*,*=ch/A:*,*=t/A:*,*=ty/A:*,*=k/A:*,*=ky/A:*,*=h/A:*,*=hy/A:*}
QS "RR-Phone_Kuchibiruon" {*=v/A:*,*=b/A:*,*=by/A:*,*=m/A:*,*=my/A:*,*=w/A:*,*=f/A:*,*=p/A:*,*=py/A:*}
QS "RR-Phone_Hagukion" {*=z/A:*,*=j/A:*,*=d/A:*,*=dy/A:*,*=n/A:*,*=ny/A:*,*=N/A:*,*=r/A:*,*=ry/A:*,*=s/A:*,*=sh/A:*,*=ts/A:*,*=ch/A:*,*=t/A:*,*=ty/A:*}
QS "RR-Phone_Kougaion" {*=g/A:*,*=gy/A:*,*=y/A:*,*=k/A:*,*=ky/A:*}
QS "RR-Phone_Seimonon" {*=h/A:*,*=hy/A:*}
QS "RR-Phone_Masatsuon" {*=v/A:*,*=z/A:*,*=j/A:*,*=f/A:*,*=s/A:*,*=sh/A:*,*=h/A:*,*=hy/A:*}
QS "RR-Phone_Hasatsuon" {*=ts/A:*,*=ch/A:*}
QS "RR-Phone_Haretsuon" {*=b/A:*,*=by/A:*,*=d/A:*,*=dy/A:*,*=g/A:*,*=gy/A:*,*=p/A:*,*=py/A:*,*=t/A:*,*=ty/A:*,*=k/A:*,*=ky/A:*}
QS "RR-Phone_Bion" {*=m/A:*,*=my/A:*,*=n/A:*,*=ny/A:*,*=N/A:*}
QS "RR-Phone_Han_Boin" {*=w/A:*,*=r/A:*,*=ry/A:*,*=y/A:*}
QS "RR-Phone_Yuusei_Kuchibiru_Haretsuon" {*=b/A:*,*=by/A:*}
QS "RR-Phone_Yuusei_Kuchibiru_Bion" {*=m/A:*,*=my/A:*}
QS "RR-Phone_Yuusei_Haguki_Masatsuon" {*=z/A:*,*=j/A:*}
QS "RR-Phone_Yuusei_Haguki_Haretsuon" {*=d/A:*,*=dy/A:*}
QS "RR-Phone_Yuusei_Haguki_Bion" {*=n/A:*,*=ny/A:*,*=N/A:*}
QS "RR-Phone_Yuusei_Haguki_Han_Boin" {*=r/A:*,*=ry/A:*}
QS "RR-Phone_Yuusei_Kougai_Haretsuon" {*=g/A:*,*=gy/A:*}
QS "RR-Phone_Musei_Kuchibiru_Haretsuon" {*=p/A:*,*=py/A:*}
QS "RR-Phone_Musei_Haguki_Masatsuon" {*=s/A:*,*=sh/A:*}
QS "RR-Phone_Musei_Haguki_Hasatsuon" {*=ts/A:*,*=ch/A:*}
QS "RR-Phone_Musei_Haguki_Haretsuon" {*=t/A:*,*=ty/A:*}
QS "RR-Phone_Musei_Kougai_Haretsuon" {*=k/A:*,*=ky/A:*}
QS "RR-Phone_Musei_Seimon_Masatsuon" {*=h/A:*,*=hy/A:*}
QS "RR-Phone_Youon" {*=by/A:*,*=my/A:*,*=j/A:*,*=dy/A:*,*=ny/A:*,*=ry/A:*,*=gy/A:*,*=py/A:*,*=sh/A:*,*=ch/A:*,*=ty/A:*,*=ky/A:*,*=hy/A:*}
QS "RR-Phone_A" {*=A/A:*}
QS "RR-Phone_E" {*=E/A:*}
QS "RR-Phone_I" {*=I/A:*}
QS "RR-Phone_N" {*=N/A:*}
QS "RR-Phone_O" {*=O/A:*}
QS "RR-Phone_U" {*=U/A:*}
QS "RR-Phone_a" {*=a/A:*}
QS "RR-Phone_b" {*=b/A:*}
QS "RR-Phone_by" {*=by/A:*}
QS "RR-Phone_ch" {*=ch/A:*}
QS "RR-Phone_cl" {*=cl/A:*}
QS "RR-Phone_d" {*=d/A:*}
QS "RR-Phone_dy" {*=dy/A:*}
QS "RR-Phone_e" {*=e/A:*}
QS "RR-Phone_f" {*=f/A:*}
QS "RR-Phone_g" {*=g/A:*}
QS "RR-Phone_gy" {*=gy/A:*}
QS "RR-Phone_h" {*=h/A:*}
QS "RR-Phone_hy" {*=hy/A:*}
QS "RR-Phone_i" {*=i/A:*}
QS "RR-Phone_j" {*=j/A:*}
QS "RR-Phone_k" {*=k/A:*}
QS "RR-Phone_ky" {*=ky/A:*}
QS "RR-Phone_m" {*=m/A:*}
QS "RR-Phone_my" {*=my/A:*}
QS "RR-Phone_n" {*=n/A:*}
QS "RR-Phone_ny" {*=ny/A:*}
QS "RR-Phone_o" {*=o/A:*}
QS "RR-Phone_p" {*=p/A:*}
QS "RR-Phone_pau" {*=pau/A:*}
QS "RR-Phone_py" {*=py/A:*}
QS "RR-Phone_r" {*=r/A:*}
QS "RR-Phone_ry" {*=ry/A:*}
QS "RR-Phone_s" {*=s/A:*}
QS "RR-Phone_sh" {*=sh/A:*}
QS "RR-Phone_sil" {*=sil/A:*}
QS "RR-Phone_t" {*=t/A:*}
QS "RR-Phone_ts" {*=ts/A:*}
QS "RR-Phone_ty" {*=ty/A:*}
QS "RR-Phone_u" {*=u/A:*}
QS "RR-Phone_v" {*=v/A:*}
QS "RR-Phone_w" {*=w/A:*}
QS "RR-Phone_y" {*=y/A:*}
QS "RR-Phone_z" {*=z/A:*}
(吐槽一下,这个QST标记末尾很多都是日语罗马音,如Boin是指的母音,可以下个百度日语输入法输出来翻译)
根据我的推测,问题集的作用是通过正则表达式匹配label中的内容,为每个发音打上标记
所以问题集的格式就是这样的
QS "标签名" {正则1,正则2,正则3,...,正则n}
通过php写了个生成中文音素部分的question的程序:
<?php
function getArrayString($format, $array){
$temp = [];
foreach($array as $one){
$temp[] = sprintf($format, $one);
}
return '{' . implode(',', $temp) . '}';
}
function generatePhones($prefix, $format, $map){
$txt = '';
foreach($map as $key => $one){
$txt .= sprintf('QS "%s-Phone_%s" %s', $prefix, $key, getArrayString($format, $one)) . "\n";
}
return $txt;
}
function generatePhoneList($prefix, $format, $map){
$txt = '';
foreach($map as $one){
$txt .= sprintf('QS "%s-Phone_%s" %s', $prefix, $one, getArrayString($format, [$one])) . "\n";
}
return $txt;
}
$phoneMap = [
'Voiced_Sounds' => ['a', 'o', 'e', 'e2', 'i', 'u', 'v', 'i', 'i2', 'i3', 'er', 'ai', 'ei', 'ao', 'ou', 'ia', 'ie', 'ua', 'uo', 've', 'iao', 'iou', 'uai', 'uei', 'an', 'en', 'in', 'vn', 'ian', 'uan', 'uen', 'van', 'ang', 'eng', 'ing', 'ong', 'iang', 'iong', 'uang', 'ueng', 'b', 'd', 'g', 'm', 'n', 'l', 'j', 'zh', 'z', 'w', 'y', 'r'],
'Unvoiced_Sounds' => ['p', 't', 'k', 'f', 'h', 'x', 'ch', 'sh', 'c', 's'],
'Vowels' => ['a', 'o', 'e', 'e2', 'i', 'u', 'v', 'i', 'i2', 'i3', 'er', 'ai', 'ei', 'ao', 'ou', 'ia', 'ie', 'ua', 'uo', 've', 'iao', 'iou', 'uai', 'uei', 'an', 'en', 'in', 'vn', 'ian', 'uan', 'uen', 'van', 'ang', 'eng', 'ing', 'ong', 'iang', 'iong', 'uang', 'ueng'],
'Voiced_Consonants' => ['b', 'd', 'g', 'm', 'n', 'l', 'j', 'zh', 'z', 'w', 'y', 'r'],
'Unvoiced_Consonantss' => ['p', 't', 'k', 'f', 'h', 'x', 'ch', 'sh', 'c', 's'],
'Plosive_Consonant' => ['b', 'd', 'p', 't', 'k'],
'Spirant_Consonants' => ['x', 'ch', 'sh', 'c', 's'],
'Vowel_Consonants' => ['w', 'y'],
'Lateral_Consonants' => ['g', 'f', 'h'],
'Semivowel_Consonants' => ['m', 'n', 'j', 'zh', 'z', 'r'],
'Slient' => ['sil', 'pau'],
];
$genMap = ['a', 'o', 'e', 'e2', 'i', 'u', 'v', 'i', 'i2', 'i3', 'er', 'ai', 'ei', 'ao', 'ou', 'ia', 'ie', 'ua', 'uo', 've', 'iao', 'iou', 'uai', 'uei', 'an', 'en', 'in', 'vn', 'ian', 'uan', 'uen', 'van', 'ang', 'eng', 'ing', 'ong', 'iang', 'iong', 'uang', 'ueng', 'b', 'd', 'g', 'm', 'n', 'l', 'j', 'zh', 'z', 'w', 'y', 'r', 'p', 't', 'k', 'f', 'h', 'x', 'ch', 'sh', 'c', 's'];
$ret = '';
$ret .= generatePhones('LL', '%s^*', $phoneMap) . "\n";
$ret .= generatePhoneList('LL', '%s^*', $genMap) . "\n\n";
$ret .= generatePhones('L', '*^%s-*', $phoneMap) . "\n";
$ret .= generatePhoneList('L', '*^%s-*', $genMap) . "\n\n";
$ret .= generatePhones('C', '*-%s+*', $phoneMap) . "\n";
$ret .= generatePhoneList('C', '*-%s+*', $genMap) . "\n\n";
$ret .= generatePhones('R', '*+%s=*', $phoneMap) . "\n";
$ret .= generatePhoneList('R', '*+%s=*', $genMap) . "\n\n";
$ret .= generatePhones('RR', '*=%s_*', $phoneMap) . "\n";
$ret .= generatePhoneList('RR', '*_%s/A:*', $genMap);
echo $ret;
有兴趣可以到 https://tool.lu/coderunner/ 运行看看
下一篇:解析question文件里对于其他标记的段落(未完成)