Commit e8ded254 authored by Sylvain Coulange's avatar Sylvain Coulange
Browse files

ajout pinyin en cours

parent 002e99c2
......@@ -243,6 +243,7 @@
<button class="nav-link" id="nav-grammaire-tab" data-bs-toggle="tab" data-bs-target="#nav-grammaire" type="button" role="tab" aria-controls="nav-grammaire" aria-selected="false">Réglettes</button>
<button class="nav-link" id="nav-parametres-tab" data-bs-toggle="tab" data-bs-target="#nav-parametres" type="button" role="tab" aria-controls="nav-parametres" aria-selected="false">Paramètres</button>
<button class="nav-link ms-auto" style="display:none" id="nav-zi-tab" data-bs-toggle="tab" data-bs-target="#nav-zi" type="button" role="tab" aria-controls="nav-zi" aria-selected="false"><span style="font-size: large"></span></button>
<button class="nav-link ms-auto" style="display:none" id="nav-pinyin-tab" data-bs-toggle="tab" data-bs-target="#nav-pinyin" type="button" role="tab" aria-controls="nav-pinyin" aria-selected="false"><span style="font-size: large"></span></button>
<button class="nav-link ms-auto active" id="nav-aide-tab" data-bs-toggle="tab" data-bs-target="#nav-aide" type="button" role="tab" aria-controls="nav-aide" aria-selected="true">Aide</button>
</div>
</nav>
......@@ -345,6 +346,14 @@
</tr>
</table>
</div>
<div class="tab-pane fade d-flex flex-column justify-content-center align-items-center" id="nav-pinyin" role="tabpanel" aria-labelledby="nav-pinyin-tab">
<!-- PINYIN -->
<div style="text-align: center;">
<div id="pinyinLabAPI"></div>
<div id="pinyinLab" class="contours" style="font-size: 6em;"></div>
</div>
<button type="button" class="btn-bckspPinyin" onclick="erasePinyin()">重置</button>
</div>
<div class="tab-pane fade show active" id="nav-aide" role="tabpanel" aria-labelledby="nav-aide-tab">
<strong>Bienvenue dans la nouvelle version du PhonoDrop !</strong>
......@@ -395,6 +404,10 @@
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/js/bootstrap.bundle.min.js" integrity="sha384-b5kHyXgcpbZJO/tY9Ul7kGkf1S0CWuKcCD38l8YkeH8z8QjE0GmW1gYU5S9FOnJ0" crossorigin="anonymous"></script>
<script type="text/javascript" src="scripts/cartes.js"></script>
<script type="text/javascript" src="scripts/phon2api.js"></script>
<script type="text/javascript" src="scripts/syllons.js"></script>
<script type="text/javascript" src="scripts/api2class.js"></script>
<script type="text/javascript" src="scripts/api2pinyin_phon.js"></script>
<script type="text/javascript" src="scripts/syllonAPI2pinyin.js"></script>
<script type="text/javascript" src="scripts/popupAide.js"></script>
<script type="text/javascript" src="scripts/selectPanneau.js"></script>
<script type="text/javascript" src="scripts/script.js"></script>
......
var api2class = {
"ɨ":"phon_1",
"ø":"phon_2",
"ɜ":"phon_3",
"ɞ":"phon_3_slash",
"ɜː":"phon_3_long",
"ɝ":"phon_3_rho",
"ɾ":"phon_4",
"ɫ":"phon_5",
"":"phon_5",
"ɐ":"phon_6",
"ɤ":"phon_7",
"ɵ":"phon_8",
"œ":"phon_9",
"ɶ":"phon_9_maj",
"œ̃":"phon_9_nas",
"a":"phon_a",
"ä":"phon_a_centr",
"ɑ":"phon_a_maj",
"ɑː":"phon_a_maj_long",
"ɑ̃":"phon_a_maj_nas",
"ə":"phon_arobase",
"ɚ":"phon_schwarho",
"":"phon_arho",
"ɤ˞":"phon_7rho",
"ɘ":"phon_arobase_slash",
"b":"phon_b",
"ɓ":"phon_b_chev",
"β":"phon_b_maj",
"ʙ":"phon_b_maj_slash",
"c":"phon_c",
"ç":"phon_c_maj",
"æ":"phon_cbrack",
"ʉ":"phon_cbrack2",
"ʢ":"phon_chevron_slash",
"ʡ":"phon_chevron2_slash",
"d":"phon_d",
"ɗ":"phon_d_chev",
"ð":"phon_d_maj",
"ɖ":"phon_d_retr",
"e":"phon_e",
"ɛ":"phon_e_maj",
"ɛ̃":"phon_e_maj_nas",
"ǂ":"phon_egal_slash",
"ǃ":"phon_exclam_slash",
"f":"phon_f",
"ɱ":"phon_f_maj",
"ɡ":"phon_g",
"ɠ":"phon_g_chev",
"ɣ":"phon_g_maj",
"ɢ":"phon_g_maj_slash",
"ʛ":"phon_g_maj_slash_chev",
"ʔ":"phon_glottstop",
"ʕ":"phon_glottstop_slash",
"h":"phon_h",
"ɥ":"phon_h_maj",
"ʜ":"phon_h_maj_slash",
"ɦ":"phon_h_slash",
"i":"phon_i",
"":"phon_i_long",
"ɪ":"phon_i_maj",
"j":"phon_j",
"ʝ":"phon_j_slash",
"ɟ":"phon_j_maj_slash",
"ʄ":"phon_j_maj_slash_chev",
"k":"phon_k",
"":"phon_k_chev2",
"":"phon_k_h",
"ɬ":"phon_k_maj",
"ɮ":"phon_k_maj_slash",
"l":"phon_l",
"ʎ":"phon_l_maj",
"ʟ":"phon_l_maj_slash",
"ɭ":"phon_l_retr",
"m":"phon_m",
"ɯ":"phon_m_maj",
"ɰ":"phon_m_maj_slash",
"n":"phon_n",
"ŋ":"phon_n_maj",
"ɴ":"phon_n_maj_slash",
"ɳ":"phon_n_retr",
"o":"phon_o",
"ɔ":"phon_o_maj",
"ɔː":"phon_o_maj_long",
"ɔ̃":"phon_o_maj_nas",
"ʘ":"phon_o_maj_slash",
"p":"phon_p",
"":"phon_p_chev2",
"":"phon_p_d",
"":"phon_p_h",
"ʋ":"phon_p_maj",
"ɸ":"phon_p_slash",
"ǀ":"phon_pipe_slash",
"ǁ":"phon_pipe_slashpipe_slash",
"q":"phon_q",
"":"phon_q_chev2",
"ɒ":"phon_q_maj",
"r":"phon_r",
"":"phon_r_0",
"ʁ":"phon_r_maj",
"ʀ":"phon_r_maj_slash",
"ɽ":"phon_r_retr",
"ɹ":"phon_r_slash",
"ɻ":"phon_r_slash_retr",
"s":"phon_s",
"":"phon_s_chev2",
"ʃ":"phon_s_maj",
"ʃʼ":"phon_s_maj_chev2",
"ʂ":"phon_s_retr",
"ɕ":"phon_s_slash",
"t":"phon_t",
"":"phon_t_chev2",
"":"phon_t_h",
"θ":"phon_t_maj",
"ʈ":"phon_t_retr",
"ʈʼ":"phon_t_retr_chev2",
"u":"phon_u",
"":"phon_u_long",
"ʊ":"phon_u_maj",
"v":"phon_v",
"":"phon_v_flap",
"ʌ":"phon_v_maj",
"w":"phon_w",
"ʍ":"phon_w_maj",
"x":"phon_x",
"":"phon_x_chev2",
"χ":"phon_x_maj",
"ħ":"phon_x_maj_slash",
"ɧ":"phon_x_slash",
"y":"phon_y",
"ʏ":"phon_y_maj",
"z":"phon_z",
"ʒ":"phon_z_maj",
"ʐ":"phon_z_retr",
"ʑ":"phon_z_slash",
"!i":"phon_schwi",
"":"phon_schwi",
"":"phon_schwa",
"":"phon_schwu",
"!u":"phon_schwu",
"!jʊ":"phon_jschwu",
"!ju":"phon_jschwu",
"":"phon_schwarho",
"ɪz":"phon_schwiz",
"əz":"phon_schwaz",
"ɑɹ":"phon_a_majr",
"":"phon_aschwi",
"aɪə":"phon_ai_majschwa",
"":"phon_aschwu",
"aʊwə":"phon_au_majwschwa",
"əl":"phon_schwal",
"əm":"phon_schwam",
"ən":"phon_schwan",
"əʊ":"phon_arobaseschwu",
"ef":"phon_ef",
"":"phon_eschwi",
"":"phon_eschwa",
"":"phon_er",
"ɪə":"phon_i_majschwa",
"jʊə":"phon_ju_majschwa",
"ɥi":"phon_h_maj_i",
"ij":"phon_ij",
"ɪɹ":"phon_i_majr",
"":"phon_jschwa",
"juː":"phon_ju_long",
"ju":"phon_ju",
"jʊɹ":"phon_ju_majr",
"":"phon_oschwu",
"ɔɪ":"phon_o_majschwi",
"ɔɹ":"phon_o_majr",
"ʊə":"phon_u_majschwa",
"ʊɹ":"phon_u_majr",
"wa":"phon_wa",
"waɹ":"phon_war",
"":"phon_wa_maj",
"wɑː":"phon_wa_maj_long",
"waɪ":"phon_waschwi",
"wɛ̃":"phon_we_maj_nas",
"":"phon_wv_maj",
"":"phon_j3_rho",
"əɹ":"phon_schwar",
"":"phon_jschwu",
"ɯɤ":"phon_m_maj7",
"":"phon_w7",
"wo":"phon_wo",
"ow":"phon_ow",
"wu":"phon_wu",
"ji":"phon_ji",
"ɛj":"phon_e_majj",
"ej":"phon_ej",
"d͡z":"phon_dz",
"dz":"phon_dz",
"d͡ʒ":"phon_dz_maj",
"":"phon_dz_maj",
"d͡ʐ":"phon_dz_retr",
"":"phon_dz_retr",
"d͡ʑ":"phon_dz_slash",
"":"phon_dz_slash",
"ɡ͡b":"phon_gb",
"ɡb":"phon_gb",
"ɡz":"phon_gz",
"ɡʒ":"phon_gz_maj",
"ɲ":"phon_j_maj",
"k͡p":"phon_kp",
"kp":"phon_kp",
"k͡s":"phon_ks",
"ks":"phon_ks",
"":"phon_ks_maj",
"k͡x":"phon_kx",
"kx":"phon_kx",
"":"phon_kw",
"kw":"phon_kw",
"lj":"phon_lj",
"nj":"phon_nj",
"p͡f":"phon_pf",
"pf":"phon_pf",
"sz":"phon_sz",
"t͡sʰ":"phon_t_hs",
"tsʰ":"phon_t_hs",
"t͡ʂʰ":"phon_t_hs_retr",
"tʂʰ":"phon_t_hs_retr",
"t͡ɕʰ":"phon_t_hs_slash",
"tɕʰ":"phon_t_hs_slash",
"t͡ɬ":"phon_tk_maj",
"":"phon_tk_maj",
"d͡ɮ":"phon_tk_maj_slash",
"":"phon_tk_maj_slash",
"t͡s":"phon_ts",
"ts":"phon_ts",
"t͡sʼ":"phon_ts_chev2",
"tsʼ":"phon_ts_chev2",
"t͡ʃ":"phon_ts_maj",
"":"phon_ts_maj",
"t͡ʃʼ":"phon_ts_maj_chev2",
"tʃʼ":"phon_ts_maj_chev2",
"t͡ʂ":"phon_ts_retr",
"":"phon_ts_retr",
"t͡ɕ":"phon_ts_slash",
"":"phon_ts_slash",
"t͡θ":"phon_tt_maj",
"":"phon_tt_maj",
"m͡p":"phon_mp",
"m͡b":"phon_mb",
"n͡t̪":"phon_nt_d",
"n͡d̪":"phon_nd_d",
"n͡t":"phon_nt",
"n͡d":"phon_nd",
"ɳ͡ʈ":"phon_n_retrt",
"ɳ͡ɖ":"phon_n_retrd_retr",
"ɲ͡c":"phon_j_majc",
"ɲ͡ɟ":"phon_j_majj_maj_slash",
"ŋ͡k":"phon_n_majk",
"ŋ͡ɡ":"phon_n_majg",
"ɴ͡q":"phon_n_maj_slashq",
"ɴ͡ɢ":"phon_n_maj_slashg_maj_slash",
"ŋ͡m":"phon_n_majm",
"p͡ɸ":"phon_pp_slash",
"b͡β":"phon_bb_maj",
"b͡v":"phon_bv",
"d͡ð":"phon_dd_maj",
"ʈ͡ʂ":"phon_t_slashs_retr",
"ɖ͡ʐ":"phon_d_slashz_retr",
"c͡ç":"phon_cc_maj",
"ɟ͡ʝ":"phon_j_maj_slashj_slash",
"ɡ͡ɣ":"phon_gg_maj",
"q͡χ":"phon_qx_maj",
"ɢ͡ʁ":"phon_g_maj_slashr_maj",
"ʔ͡h":"phon_glottstoph",
"m͡ɸ":"phon_mp_slash",
"m͡β":"phon_mb_maj",
"n͡θ":"phon_nt_maj",
"n͡ð":"phon_nd_maj",
"n͡s":"phon_ns",
"n͡z":"phon_nz",
"n͡ʃ":"phon_ns_maj",
"n͡ʒ":"phon_nz_maj",
"mp":"phon_mp",
"mb":"phon_mb",
"nt̪":"phon_nt_d",
"nd̪":"phon_nd_d",
"nt":"phon_nt",
"nd":"phon_nd",
"ɳʈ":"phon_n_retrt",
"ɳɖ":"phon_n_retrd_retr",
"ɲc":"phon_j_majc",
"ɲɟ":"phon_j_majj_maj_slash",
"ŋk":"phon_n_majk",
"ŋɡ":"phon_n_majg",
"ɴq":"phon_n_maj_slashq",
"ɴɢ":"phon_n_maj_slashg_maj_slash",
"ŋm":"phon_n_majm",
"":"phon_pp_slash",
"":"phon_bb_maj",
"bv":"phon_bv",
"":"phon_dd_maj",
"ʈʂ":"phon_t_slashs_retr",
"ɖʐ":"phon_d_slashz_retr",
"":"phon_cc_maj",
"ɟʝ":"phon_j_maj_slashj_slash",
"ɡɣ":"phon_gg_maj",
"":"phon_qx_maj",
"ɢʁ":"phon_g_maj_slashr_maj",
"ʔh":"phon_glottstoph",
"":"phon_mp_slash",
"":"phon_mb_maj",
"":"phon_nt_maj",
"":"phon_nd_maj",
"ns":"phon_ns",
"nz":"phon_nz",
"":"phon_ns_maj",
"":"phon_nz_maj",
"ŋʷ":"phon_n_majw",
"ɡʷ":"phon_gw",
"":"phon_xw",
"ɣʷ":"phon_g_majw",
"ŋw":"phon_n_majw",
"ɡw":"phon_gw",
"xw":"phon_xw",
"ɣw":"phon_g_majw"
}
\ No newline at end of file
var api2pinyin = {
"j":["i","y"],
"w":["w","u","o"],
"ɥ":["u","ü","y","yu"],
"a":["a"],
"e":["e","i"],
"ɛ":["e","a","i"],
"ɤ":["e","u"],
"i":["i","yi"],
"ɨ":["i"],
"o":["o","u","ou","e"],
"u":["u","wu","o"],
"y":["u","ü","yu"],
"ŋ":["ng"],
"":["er"],
"ɤ˞":["er"],
"ow":["u"],
"ɯɤ":["e"],
"":["o","u"],
"wo":["o"],
"wu":["u"],
"ij":["i"],
"ji":["i"],
"ɛj":["i"],
"ej":["i"],
"p":["b"],
"":["p"],
"m":["m"],
"f":["f"],
"t":["d"],
"":["t"],
"n":["n"],
"l":["l"],
"k":["g"],
"":["k"],
"x":["h"],
"":["j"],
"tɕʰ":["q"],
"ɕ":["x"],
"":["zh"],
"tʂʰ":["ch"],
"ʂ":["sh"],
"ɻ":["r"],
"ʐ":["r"],
"ts":["z"],
"tsʰ":["c"],
"s":["s"]
}
\ No newline at end of file
......@@ -305,5 +305,7 @@ var phon2api = {
"phon_schwar":"əɹ",
"phon_schwiz":"ɪz",
"phon_schwju":"",
"phon_schwju":"ju"
"phon_schwju":"ju",
"phon_m_maj7":"ɯɤ",
"phon_wo":"wo",
}
\ No newline at end of file
......@@ -60,6 +60,7 @@ function selectPanneau(p){
// ZH P7
svgZhP7.style.display = 'none';
document.getElementById('nav-zi-tab').style.display = 'none'
document.getElementById('nav-pinyin-tab').style.display = 'none'
document.getElementById('nav-aide-tab').click()
} else if (p == 'svgFrKinephones') {
......@@ -96,6 +97,7 @@ function selectPanneau(p){
// ZH P7
svgZhP7.style.display = 'none';
document.getElementById('nav-zi-tab').style.display = 'none'
document.getElementById('nav-pinyin-tab').style.display = 'none'
document.getElementById('nav-aide-tab').click()
} else if (p == 'svgFrGattegno') {
......@@ -132,6 +134,7 @@ function selectPanneau(p){
// ZH P7
svgZhP7.style.display = 'none';
document.getElementById('nav-zi-tab').style.display = 'none'
document.getElementById('nav-pinyin-tab').style.display = 'none'
document.getElementById('nav-aide-tab').click()
} else if (p == 'phonoEnAlem') {
......@@ -168,6 +171,7 @@ function selectPanneau(p){
// ZH P7
svgZhP7.style.display = 'none';
document.getElementById('nav-zi-tab').style.display = 'none'
document.getElementById('nav-pinyin-tab').style.display = 'none'
document.getElementById('nav-aide-tab').click()
} else if (p == 'phonoEnPronSciBr') {
......@@ -205,12 +209,14 @@ function selectPanneau(p){
// ZH P7
svgZhP7.style.display = 'none';
document.getElementById('nav-zi-tab').style.display = 'none'
document.getElementById('nav-pinyin-tab').style.display = 'none'
document.getElementById('nav-aide-tab').click()
} else if (p == 'phonoZhLy') {
famille = "zhly"
lang="zh"
document.getElementById('nav-zi-tab').style.display = 'block'
document.getElementById('nav-pinyin-tab').style.display = 'block'
document.getElementById('nav-zi-tab').click()
// ZH Lyssenko
......@@ -251,6 +257,7 @@ function selectPanneau(p){
famille = "zhma"
lang="zh"
document.getElementById('nav-zi-tab').style.display = 'block'
document.getElementById('nav-pinyin-tab').style.display = 'block'
document.getElementById('nav-zi-tab').click()
// ZH A. Mariscalchi
......@@ -290,6 +297,7 @@ function selectPanneau(p){
famille = "zhji"
lang="zh"
document.getElementById('nav-zi-tab').style.display = 'block'
document.getElementById('nav-pinyin-tab').style.display = 'block'
document.getElementById('nav-zi-tab').click()
// ZH S. Jiao
......@@ -329,6 +337,7 @@ function selectPanneau(p){
famille = "zhp7"
lang="zh"
document.getElementById('nav-zi-tab').style.display = 'block'
document.getElementById('nav-pinyin-tab').style.display = 'block'
document.getElementById('nav-zi-tab').click()
// ZH S. Jiao
......
......@@ -183,8 +183,8 @@ let listvoyelles = [
'rect_e_maj',
'rect_wo',
'rect_m_maj7',
'rect_7_rho',
'rect_a_rho'
'rect_7rho',
'rect_arho'
]
let listtonales = [
......@@ -207,6 +207,11 @@ let listfinales = [
'rect_n_maj-f'
]
let listPinyin = ["a","ai","an","ang","ao","ba","bai","ban","bang","bao","bei","ben","beng","bi","bian","biao","bie","bin","bing","bo","bu","ca","cai","can","cang","cao","ce","cen","ceng","cha","chai","chan","chang","chao","che","chen","cheng","chi","chong","chou","chu","chuai","chuan","chuang","chui","chun","chuo","ci","cong","cu","cuan","cui","cun","cuo","da","dai","dan","dang","dao","de","dei","deng","di","dian","diao","die","ding","diu","dong","dou","du","duan","dui","dun","duo","e","ei","en","eng","er","fa","fan","fang","fei","fen","feng","fo","fou","fu","ga","gai","gan","gang","gao","ge","gei","gen","geng","gong","gou","gu","gua","guai","guan","guang","gui","gun","guo","ha","hai","han","hang","hao","he","hei","hen","heng","hong","hou","hu","hua","huai","huan","huang","hui","hun","huo","ji","jia","jian","jiang","jiao","jie","jin","jing","jiong","jiu","ju","juan","jue","jun","ka","kai","kan","kang","kao","ke","ken","keng","kong","kou","ku","kua","kuai","kuan","kuang","kui","kun","kuo","la","lai","lan","lang","lao","le","lei","leng","li","lia","lian","liang","liao","lie","lin","ling","liu","long","lou","lu","luan","lüe","lun","luo","ma","mai","man","mang","mao","mei","men","meng","mi","mian","miao","mie","min","ming","miu","mo","mou","mu","na","nai","nan","nang","nao","nei","neng","ni","nian","niang","niao","nie","nin","ning","niu","nong","nou","nu","","nuan","nüe","nuo","ou","pa","pai","pan","pang","pao","pei","pen","peng","pi","pian","piao","pie","pin","ping","po","pou","pu","qi","qia","qian","qiang","qiao","qie","qin","qing","qiong","qiu","qu","quan","que","qun","ran","rang","rao","re","ren","reng","ri","rong","rou","ru","ruan","rui","run","ruo","sa","sai","san","sang","sao","se","sen","seng","sha","shai","shan","shang","shao","she","shei","shen","sheng","shi","shou","shu","shua","shuai","shuan","shuang","shui","shun","shuo","si","song","sou","su","suan","sui","sun","suo","ta","tai","tan","tang","tao","te","teng","ti","tian","tiao","tie","ting","tong","tou","tu","tuan","tui","tun","tuo","wa","wai","wan","wang","wei","wen","weng","wo","wu","xi","xia","xian","xiang","xiao","xie","xin","xing","xiong","xiu","xu","xuan","xue","xun","ya","yan","yang","yao","ye","yi","yin","ying","yong","you","yu","yuan","yue","yun","za","zai","zan","zang","zao","ze","zei","zen","zeng","zha","zhai","zhan","zhang","zhao","zhe","zhen","zheng","zhi","zhong","zhou","zhu","zhua","zhuai","zhuan","zhuang","zhui","zhun","zhuo","zi","zong","zou","zu","zuan","zui","zun","zuo"]
var possibleCurrentSyll = [""] // pour le pinyin
var possibleOutputs = {} // pour le pinyin : pour chaque pinyin potentiel → <span>p</span><span>i</span>...
function zhPhon(identifiant) {
let phon = identifiant.replace('rect_', 'phon_').replace('-t', '').replace('-f', '')
if (gradientToRight.includes(phon)) { phon = phon+'-h' } // gradients à l'horizontal pour affriquées
......@@ -283,10 +288,137 @@ function zhPhon(identifiant) {
}
}
// ÉCRITURE PINYIN
var currentSyllonAPI = document.getElementById('pinyinLabAPI').innerText;
console.log('Current syll:',currentSyllonAPI,possibleCurrentSyll);
phon = phon.replace('-h', '')
var phonApi = phon2api[phon];
console.log('PINYIN:',phon,phonApi);
// syllabe API attestée ?
var possibleSyllonApi2pinyin = {} // contiendra tous les syllons Api 2 pinyin possibles étant donnée currentSyllonAPI
var myRegAPI = new RegExp("^"+currentSyllonAPI+phonApi+".*$");
for (x in syllonAPI2pinyin) {
if(x.match(myRegAPI)){
possibleSyllonApi2pinyin[x] = syllonAPI2pinyin[x];
}
}
console.log("Syllons API possibles:",possibleSyllonApi2pinyin);
document.getElementById('pinyinLabAPI').innerHTML += phonApi;
var pinyinLab = document.getElementById('pinyinLabAPI').innerHTML;
// Construction du pinyin en cours à partir des phonèmes sélectionnés
// pour chaque phonème API, prendre le premier équivalent pinyin compatible étant donné le contexte gauche et droit
var pinyinEnCoursHtml = "";
var pinyinEnCours = "";
for (xph=0; xph<pinyinLab.length; xph++) {
// pour chaque api dans pinyinLab
var ph = pinyinLab[xph];
if (pinyinLab[xph+1]=="ʰ") {
ph = pinyinLab[xph]+pinyinLab[xph+1];
xph++;
} else if (pinyinLab[xph+2]=="ʰ") {
ph = pinyinLab[xph]+pinyinLab[xph+1]+pinyinLab[xph+2];
xph+=2;
// phonèmes à traiter par deux sans condition
} else if (["ts","","","ɯɤ","","ɤ˞"].includes(pinyinLab[xph] + pinyinLab[xph+1])) {
ph = pinyinLab[xph]+pinyinLab[xph+1];
xph++;
// cas du wo (bo po mo fo)
} else if (pinyinLab[xph] + pinyinLab[xph+1] == "wo" && ["pwo","pʰwo","mwo","fwo"].includes(pinyinLab)) {