Skip to content

Instantly share code, notes, and snippets.

@jednano
Last active September 19, 2024 01:37
Show Gist options
  • Save jednano/8ab06fc6f5cb612cfc68209a97ff4f57 to your computer and use it in GitHub Desktop.
Save jednano/8ab06fc6f5cb612cfc68209a97ff4f57 to your computer and use it in GitHub Desktop.
Pinyin Syllables
const pinyinSyllablesWithToneGroups = [
// Syllables with no initial
'(a)', '(a)i', '(a)n[134]', '(a)ng[124]', '(a)o[134]', '(e)[124]', '(e)i', '(e)n[1]', '(e)r[24]', '(o)[14]', '(o)u[124]',
// Syllables with initials
'b(a)', 'b(a)i[124]', 'b(a)n[134]', 'b(a)ng[134]', 'b(a)o', 'b(e)i', 'b(e)n[134]', 'b(e)ng[134]', 'b(i)', 'bi(a)n', 'bi(a)o[124]', 'bi(e)[4]', 'b(i)n[14]', 'b(i)ng[134]', 'b(o)', 'b(u)',
'p(a)', 'p(a)i', 'p(a)n', 'p(a)ng', 'p(a)o', 'p(e)i', 'p(e)n', 'p(e)ng', 'p(i)', 'pi(a)', 'pi(an)', 'pi(ao)', 'pi(e)', 'p(i)n', 'p(i)ng', 'p(o)', 'p(u)',
'm(a)', 'm(a)i', 'm(a)n', 'm(a)ng', 'm(a)o', 'm(e)i', 'm(e)n', 'm(e)ng', 'm(i)', 'mi(a)', 'mi(an)', 'mi(ao)', 'mi(e)', 'm(i)n', 'm(i)ng', 'm(o)', 'm(ou)', 'm(u)',
'f(a)', 'f(a)n', 'f(a)ng', 'f(e)i', 'f(e)n', 'f(e)ng', 'f(o)', 'f(ou)', 'f(u)',
'd(a)', 'd(a)i', 'd(a)n', 'd(a)ng', 'd(a)o', 'd(e)', 'd(e)i', 'd(e)n', 'd(e)ng', 'd(i)', 'di(a)', 'di(an)', 'di(ao)', 'di(e)', 'd(i)n', 'd(i)ng', 'd(iu)', 'd(o)ng', 'd(o)u', 'd(u)', 'du(a)', 'du(an)', 'd(ui)', 'd(un)', 'd(uo)',
't(a)', 't(a)i', 't(a)n', 't(a)ng', 't(a)o', 't(e)', 't(e)ng', 't(i)', 'ti(a)', 'ti(an)', 'ti(ao)', 'ti(e)', 't(i)n', 't(i)ng', 't(o)ng', 't(o)u', 't(u)', 'tu(a)', 'tu(an)', 't(ui)', 't(un)', 't(uo)',
'n(a)', 'n(a)i', 'n(a)n', 'n(a)ng', 'n(a)o', 'n(e)', 'n(e)i', 'n(e)n', 'n(e)ng', 'n(i)', 'ni(a)', 'ni(an)', 'ni(ang)', 'ni(ao)', 'ni(e)', 'n(i)n', 'n(i)ng', 'n(iu)', 'n(o)ng', 'n(o)u', 'n(u)', 'n(ü)e', 'n(u)o',
'l(a)', 'l(a)i', 'l(a)n', 'l(a)ng', 'l(a)o', 'l(e)', 'l(e)i', 'l(e)ng', 'l(i)', 'li(a)', 'li(an)', 'li(ang)', 'li(ao)', 'li(e)', 'l(i)n', 'l(i)ng', 'l(iu)', 'l(o)', 'l(o)ng', 'l(o)u', 'l(u)', 'l(ü)e',
'g(a)', 'g(ai)', 'g(an)', 'g(ang)', 'g(ao)', 'g(e)', 'g(e)i', 'g(e)n', 'g(e)ng', 'g(o)ng', 'g(o)u', 'g(u)', 'gu(a)', 'gu(ai)', 'gu(an)', 'gu(ang)', 'g(ui)', 'g(un)', 'g(uo)',
'k(a)', 'k(ai)', 'k(an)', 'k(ang)', 'k(ao)', 'k(e)', 'k(e)n', 'k(e)ng', 'k(o)ng', 'k(o)u', 'k(u)', 'ku(a)', 'ku(ai)', 'ku(an)', 'ku(ang)', 'k(ui)', 'k(un)', 'k(uo)',
'h(a)', 'h(ai)', 'h(an)', 'h(ang)', 'h(ao)', 'h(e)', 'h(e)i', 'h(e)n', 'h(e)ng', 'h(o)ng', 'h(o)u', 'h(u)', 'hu(a)', 'hu(ai)', 'hu(an)', 'hu(ang)', 'h(ui)', 'h(un)', 'h(uo)',
'j(i)', 'ji(a)', 'ji(an)', 'ji(ang)', 'ji(ao)', 'ji(e)', 'j(i)n', 'j(i)ng', 'j(iong)', 'j(iu)', 'j(u)', 'ju(e)', 'ju(an)', 'j(un)',
'q(i)', 'qi(a)', 'qi(an)', 'qi(ang)', 'qi(ao)', 'qi(e)', 'q(i)n', 'q(i)ng', 'q(iong)', 'q(iu)', 'q(u)', 'qu(e)', 'qu(an)', 'q(un)',
'x(i)', 'xi(a)[123]', 'xi(a)n', 'xi(a)ng', 'xi(a)o', 'xi(e)', 'x(i)n[124]', 'x(i)ng', 'xi(o)ng[124]', 'xi(u)[134]', 'x(u)[124]', 'xu(e)[14]', 'xu(a)n', 'x(u)n',
'zh(a)', 'zh(a)i', 'zh(a)n', 'zh(a)ng', 'zh(a)o', 'zh(e)', 'zh(e)i[2]', 'zh(e)n', 'zh(e)ng', 'zh(i)', 'zh(o)ng[134]', 'zh(o)u', 'zh(u)', 'zhu(a)[1]', 'zhu(a)i[14]', 'zhu(a)n[124]', 'zhu(a)ng[14]', 'zhu(i)[14]', 'zh(u)n[1]', 'zh(u)o[124]',
'ch(a)', 'ch(a)i[124]', 'ch(a)n', 'ch(a)ng', 'ch(a)o[124]', 'ch(e)[134]', 'ch(e)n', 'ch(e)ng', 'ch(i)', 'ch(o)ng[124]', 'ch(o)u', 'ch(u)', 'chu(a)i[14]', 'chu(a)n', 'chu(a)ng[124]', 'chu(i)[124]', 'ch(u)n[124]', 'chu(o)[14]',
'sh(a)', 'sh(ai)', 'sh(an)', 'sh(ang)', 'sh(ao)', 'sh(e)', 'sh(e)n', 'sh(e)ng', 'sh(i)', 'sh(o)u', 'sh(u)', 'shu(a)', 'shu(ai)', 'shu(an)', 'shu(ang)', 'sh(ui)', 'sh(un)', 'sh(uo)',
'r(e)', 'r(e)n', 'r(e)ng', 'r(i)', 'r(o)ng', 'r(o)u', 'r(u)', 'ru(a)n', 'r(ui)', 'r(un)', 'r(uo)',
'z(a)', 'z(ai)', 'z(an)', 'z(ang)', 'z(ao)', 'z(e)', 'z(e)i', 'z(e)n', 'z(e)ng', 'z(i)', 'z(o)ng', 'z(o)u', 'z(u)', 'zu(an)', 'z(ui)', 'z(un)', 'z(uo)',
'c(a)', 'c(ai)', 'c(an)', 'c(ang)', 'c(ao)', 'c(e)', 'c(e)n', 'c(e)ng', 'c(i)', 'c(o)ng', 'c(o)u', 'c(u)', 'cu(an)', 'c(ui)', 'c(un)', 'c(uo)',
's(a)', 's(ai)', 's(an)', 's(ang)', 's(ao)', 's(e)', 's(e)n', 's(e)ng', 's(i)', 's(o)ng', 's(o)u', 's(u)', 'su(an)', 's(ui)', 's(un)', 's(uo)',
// Special cases
'y(a)', 'y(ai)', 'y(an)', 'y(a)ng', 'y(ao)', 'y(e)', 'y(i)', 'y(in)', 'y(ing)', 'y(o)', 'y(ong)', 'y(ou)', 'y(u)', 'yu(e)', 'yu(an)', 'y(un)',
'w(a)', 'w(ai)', 'w(an)', 'w(ang)', 'w(ei)', 'w(en)', 'w(eng)', 'w(o)', 'w(u)'
];
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment