@novo-learning/novo-sdk
Version:
SDK for the Novolanguage Speech Analysis API
586 lines (580 loc) • 47.3 kB
text/typescript
import { PhoneSet } from './phone-set';
export type PhoneInventoryItem = {
readonly label: string; // Novo ASR label
readonly ipa: string; // IPA representation of the phoneme
readonly isVowel: boolean;
readonly baseLabel: string; // Put in the same group as this label
readonly exampleWord: string;
};
export const phoneInventoryData: { [key in PhoneSet]: readonly PhoneInventoryItem[] } = {
cmu69: [
{ label: 'aa0', baseLabel: 'aa0', ipa: 'ɑ', exampleWord: 'airdr_o_p', isVowel: true },
{ label: 'aa1', baseLabel: 'aa0', ipa: 'ˈɑ', exampleWord: '_a_rc', isVowel: true },
{ label: 'aa2', baseLabel: 'aa0', ipa: 'ˌɑ', exampleWord: 'boomb_o_x', isVowel: true },
{ label: 'ae0', baseLabel: 'ae0', ipa: 'æ', exampleWord: '_a_bnormal', isVowel: true },
{ label: 'ae1', baseLabel: 'ae0', ipa: 'ˈæ', exampleWord: '_a_dam', isVowel: true },
{ label: 'ae2', baseLabel: 'ae0', ipa: 'ˌæ', exampleWord: 'airb_a_g', isVowel: true },
{ label: 'ah0', baseLabel: 'ah0', ipa: 'ə', exampleWord: '_a_gain', isVowel: true },
{ label: 'ah1', baseLabel: 'ah0', ipa: 'ˈʌ', exampleWord: 'b_u_ck', isVowel: true },
{ label: 'ah2', baseLabel: 'ah0', ipa: 'ˌʌ', exampleWord: 'back_u_p', isVowel: true },
{ label: 'ao0', baseLabel: 'ao0', ipa: 'ɔː', exampleWord: '_a_lready', isVowel: true },
{ label: 'ao1', baseLabel: 'ao0', ipa: 'ˈɔː', exampleWord: 'c_au_ght', isVowel: true },
{ label: 'ao2', baseLabel: 'ao0', ipa: 'ˌɔː', exampleWord: 'cut_o_ff', isVowel: true },
{ label: 'aw0', baseLabel: 'aw0', ipa: 'aʊ', exampleWord: '_ou_tlast', isVowel: true },
{ label: 'aw1', baseLabel: 'aw0', ipa: 'ˈaʊ', exampleWord: 'ab_ou_t', isVowel: true },
{ label: 'aw2', baseLabel: 'aw0', ipa: 'ˌaʊ', exampleWord: 'check_ou_t', isVowel: true },
{ label: 'ay0', baseLabel: 'ay0', ipa: 'aɪ', exampleWord: 'd_i_ane', isVowel: true },
{ label: 'ay1', baseLabel: 'ay0', ipa: 'ˈaɪ', exampleWord: 'coll_i_de', isVowel: true },
{ label: 'ay2', baseLabel: 'ay0', ipa: 'ˌaɪ', exampleWord: 'all_ie_d', isVowel: true },
{ label: 'b', baseLabel: 'b', ipa: 'b', exampleWord: '_b_ut', isVowel: false },
{ label: 'ch', baseLabel: 'ch', ipa: 't͡ʃ', exampleWord: '_ch_ain', isVowel: false },
{ label: 'd', baseLabel: 'd', ipa: 'd', exampleWord: '_d_oor', isVowel: false },
{ label: 'dh', baseLabel: 'dh', ipa: 'ð', exampleWord: '_th_en', isVowel: false },
{ label: 'eh0', baseLabel: 'eh0', ipa: 'ɛ', exampleWord: 'cont_e_st', isVowel: true },
{ label: 'eh1', baseLabel: 'eh0', ipa: 'ˈɛ', exampleWord: 'b_e_d', isVowel: true },
{ label: 'eh2', baseLabel: 'eh0', ipa: 'ˌɛ', exampleWord: 'cobw_e_b', isVowel: true },
{ label: 'er0', baseLabel: 'er0', ipa: 'ɚ', exampleWord: 'act_or_', isVowel: true },
{ label: 'er1', baseLabel: 'er0', ipa: 'ˈɝ', exampleWord: 'al_er_t', isVowel: true },
{ label: 'er2', baseLabel: 'er0', ipa: 'ˌɝ', exampleWord: 'amat_eur_', isVowel: true },
{ label: 'ey0', baseLabel: 'ey0', ipa: 'eɪ', exampleWord: 'dec_a_de', isVowel: true },
{ label: 'ey1', baseLabel: 'ey0', ipa: 'ˈeɪ', exampleWord: '_a_cre', isVowel: true },
{ label: 'ey2', baseLabel: 'ey0', ipa: 'ˌeɪ', exampleWord: 'alw_ay_s', isVowel: true },
{ label: 'f', baseLabel: 'f', ipa: 'f', exampleWord: '_f_un', isVowel: false },
{ label: 'g', baseLabel: 'g', ipa: 'g', exampleWord: '_g_as', isVowel: false },
{ label: 'hh', baseLabel: 'hh', ipa: 'h', exampleWord: '_h_at', isVowel: false },
{ label: 'ih0', baseLabel: 'ih0', ipa: 'ɪ', exampleWord: 'al_i_son', isVowel: true },
{ label: 'ih1', baseLabel: 'ih0', ipa: 'ˈɪ', exampleWord: 'b_i_t', isVowel: true },
{ label: 'ih2', baseLabel: 'ih0', ipa: 'ˌɪ', exampleWord: 'aut_i_sm', isVowel: true },
{ label: 'iy0', baseLabel: 'iy0', ipa: 'i', exampleWord: 'and_y_', isVowel: true },
{ label: 'iy1', baseLabel: 'iy0', ipa: 'ˈi', exampleWord: 'b_ea_n', isVowel: true },
{ label: 'iy2', baseLabel: 'iy0', ipa: 'ˌi', exampleWord: 'crapp_y_', isVowel: true },
{ label: 'jh', baseLabel: 'jh', ipa: 'd͡ʒ', exampleWord: '_j_eep', isVowel: false },
{ label: 'k', baseLabel: 'k', ipa: 'k', exampleWord: '_c_an', isVowel: false },
{ label: 'l', baseLabel: 'l', ipa: 'l', exampleWord: '_l_ive', isVowel: false },
{ label: 'm', baseLabel: 'm', ipa: 'm', exampleWord: '_m_an', isVowel: false },
{ label: 'n', baseLabel: 'n', ipa: 'n', exampleWord: '_n_est', isVowel: false },
{ label: 'ng', baseLabel: 'ng', ipa: 'ŋ', exampleWord: 'lo_ng_', isVowel: false },
{ label: 'ow0', baseLabel: 'ow0', ipa: 'oʊ', exampleWord: 'bing_o_', isVowel: true },
{ label: 'ow1', baseLabel: 'ow0', ipa: 'ˈoʊ', exampleWord: 'bel_ow_', isVowel: true },
{ label: 'ow2', baseLabel: 'ow0', ipa: 'ˌoʊ', exampleWord: 'borr_ow_', isVowel: true },
{ label: 'oy0', baseLabel: 'oy0', ipa: 'oɪ', exampleWord: 'inv_oi_ce', isVowel: true },
{ label: 'oy1', baseLabel: 'oy0', ipa: 'ˈoɪ', exampleWord: 'av_oi_d', isVowel: true },
{ label: 'oy2', baseLabel: 'oy0', ipa: 'ˌoɪ', exampleWord: 'inv_oi_ce', isVowel: true },
{ label: 'p', baseLabel: 'p', ipa: 'p', exampleWord: '_p_ot', isVowel: false },
{ label: 'r', baseLabel: 'r', ipa: 'r', exampleWord: '_r_un', isVowel: false },
{ label: 's', baseLabel: 's', ipa: 's', exampleWord: '_s_ome', isVowel: false },
{ label: 'sh', baseLabel: 'sh', ipa: 'ʃ', exampleWord: '_sh_ip', isVowel: false },
{ label: 't', baseLabel: 't', ipa: 't', exampleWord: '_t_op', isVowel: false },
{ label: 'th', baseLabel: 'th', ipa: 'θ', exampleWord: '_th_in', isVowel: false },
{ label: 'uh0', baseLabel: 'uh0', ipa: 'ʊ', exampleWord: 'f_u_llfill', isVowel: true },
{ label: 'uh1', baseLabel: 'uh0', ipa: 'ˈʊ', exampleWord: 'b_oo_k', isVowel: true },
{ label: 'uh2', baseLabel: 'uh0', ipa: 'ˌʊ', exampleWord: 'amb_u_sh', isVowel: true },
{ label: 'uw0', baseLabel: 'uw0', ipa: 'uː', exampleWord: 'br_u_nette', isVowel: true },
{ label: 'uw1', baseLabel: 'uw0', ipa: 'ˈuː', exampleWord: 'ab_u_se', isVowel: true },
{ label: 'uw2', baseLabel: 'uw0', ipa: 'ˌuː', exampleWord: 'exec_u_te', isVowel: true },
{ label: 'v', baseLabel: 'v', ipa: 'v', exampleWord: '_v_an', isVowel: false },
{ label: 'w', baseLabel: 'w', ipa: 'w', exampleWord: '_w_ing', isVowel: false },
{ label: 'y', baseLabel: 'y', ipa: 'j', exampleWord: '_y_es', isVowel: false },
{ label: 'z', baseLabel: 'z', ipa: 'z', exampleWord: '_z_eal', isVowel: false },
{ label: 'zh', baseLabel: 'zh', ipa: 'ʒ', exampleWord: 'lei_s_ure', isVowel: false },
] as const,
'novo-cmn111': [
{ label: 'aa1', baseLabel: 'aa5', ipa: 'ā', exampleWord: 'b_ā_', isVowel: true },
{ label: 'aa2', baseLabel: 'aa5', ipa: 'á', exampleWord: 'b_á_', isVowel: true },
{ label: 'aa3', baseLabel: 'aa5', ipa: 'ǎ', exampleWord: 'b_ǎ_ba', isVowel: true },
{ label: 'aa4', baseLabel: 'aa5', ipa: 'à', exampleWord: 'b_à_', isVowel: true },
{ label: 'aa5', baseLabel: 'aa5', ipa: 'a', exampleWord: 'bǎb_a_', isVowel: true },
{ label: 'ae1', baseLabel: 'ae5', ipa: 'ǣ', exampleWord: 'ch_ā_n', isVowel: true },
{ label: 'ae2', baseLabel: 'ae5', ipa: 'ǽ', exampleWord: 'ch_á_n', isVowel: true },
{ label: 'ae3', baseLabel: 'ae5', ipa: 'æ̌', exampleWord: 'ch_ǎ_n', isVowel: true },
{ label: 'ae4', baseLabel: 'ae5', ipa: 'æ̀', exampleWord: 'ch_à_n', isVowel: true },
{ label: 'ae5', baseLabel: 'ae5', ipa: 'æ', exampleWord: 'pán ch_a_n', isVowel: true },
{ label: 'ah1', baseLabel: 'ah5', ipa: 'ʌ̄', exampleWord: 'ch_ē_n', isVowel: true },
{ label: 'ah2', baseLabel: 'ah5', ipa: 'ʌ́', exampleWord: 'ch_é_n', isVowel: true },
{ label: 'ah3', baseLabel: 'ah5', ipa: 'ʌ̌', exampleWord: 'ch_ě_n', isVowel: true },
{ label: 'ah4', baseLabel: 'ah5', ipa: 'ʌ̀', exampleWord: 'ch_è_n', isVowel: true },
{ label: 'ah5', baseLabel: 'ah5', ipa: 'ʌ', exampleWord: 'shí ch_é_n', isVowel: true },
{ label: 'ao1', baseLabel: 'ao5', ipa: 'ɔ̄', exampleWord: 'b_ō_', isVowel: true },
{ label: 'ao2', baseLabel: 'ao5', ipa: 'ɔ́', exampleWord: 'b_ó_', isVowel: true },
{ label: 'ao3', baseLabel: 'ao5', ipa: 'ɔ̌', exampleWord: 'b_ǒ_', isVowel: true },
{ label: 'ao4', baseLabel: 'ao5', ipa: 'ɔ̀', exampleWord: 'b_ò_', isVowel: true },
{ label: 'ao5', baseLabel: 'ao5', ipa: 'ɔ', exampleWord: 'bó b_o_', isVowel: true },
{ label: 'aw1', baseLabel: 'aw5', ipa: 'āʊ', exampleWord: 'b_āo_', isVowel: true },
{ label: 'aw2', baseLabel: 'aw5', ipa: 'áʊ', exampleWord: 'b_áo_', isVowel: true },
{ label: 'aw3', baseLabel: 'aw5', ipa: 'ǎʊ', exampleWord: 'b_ǎo_', isVowel: true },
{ label: 'aw4', baseLabel: 'aw5', ipa: 'àʊ', exampleWord: 'b_ào_', isVowel: true },
{ label: 'aw5', baseLabel: 'aw5', ipa: 'aʊ', exampleWord: 'zì h_ào_', isVowel: true },
{ label: 'ay1', baseLabel: 'ay5', ipa: 'āɪ', exampleWord: 'b_āi_ to', isVowel: true },
{ label: 'ay2', baseLabel: 'ay5', ipa: 'áɪ', exampleWord: 'b_ái_', isVowel: true },
{ label: 'ay3', baseLabel: 'ay5', ipa: 'ǎɪ', exampleWord: 'b_ǎi_', isVowel: true },
{ label: 'ay4', baseLabel: 'ay5', ipa: 'àɪ', exampleWord: 'b_ài_', isVowel: true },
{ label: 'ay5', baseLabel: 'ay5', ipa: 'aɪ', exampleWord: 'míng b_ái_', isVowel: true },
{ label: 'b', baseLabel: 'b', ipa: 'p', exampleWord: '_b_ù', isVowel: false },
{ label: 'c', baseLabel: 'c', ipa: 'ts', exampleWord: '_c_e', isVowel: false },
{ label: 'ch', baseLabel: 'ch', ipa: 'ʈ͡ʂʰ', exampleWord: '_ch_ā', isVowel: false },
{ label: 'd', baseLabel: 'd', ipa: 't', exampleWord: '_d_īng', isVowel: false },
{ label: 'eh1', baseLabel: 'eh5', ipa: 'ɛ̄', exampleWord: 'j_iē_', isVowel: true },
{ label: 'eh2', baseLabel: 'eh5', ipa: 'ɛ́', exampleWord: 'j_ié_', isVowel: true },
{ label: 'eh3', baseLabel: 'eh5', ipa: 'ɛ̌', exampleWord: 'j_iě_', isVowel: true },
{ label: 'eh4', baseLabel: 'eh5', ipa: 'ɛ̀', exampleWord: 'j_iè_', isVowel: true },
{ label: 'eh5', baseLabel: 'eh5', ipa: 'ɛ', exampleWord: 'bā j_ie_', isVowel: true },
{ label: 'er1', baseLabel: 'er5', ipa: 'ɝ̄', exampleWord: 'g_ē_', isVowel: true },
{ label: 'er2', baseLabel: 'er5', ipa: 'ɝ́', exampleWord: 'g_é_', isVowel: true },
{ label: 'er3', baseLabel: 'er5', ipa: 'ɝ̌', exampleWord: 'g_ě_', isVowel: true },
{ label: 'er4', baseLabel: 'er5', ipa: 'ɝ̀', exampleWord: 'g_è_', isVowel: true },
{ label: 'er5', baseLabel: 'er5', ipa: 'ɝ', exampleWord: 'jǐ g_è_', isVowel: true },
{ label: 'ey1', baseLabel: 'ey5', ipa: 'ēɪ', exampleWord: 'l_ēi_', isVowel: true },
{ label: 'ey2', baseLabel: 'ey5', ipa: 'éɪ', exampleWord: 'l_éi_', isVowel: true },
{ label: 'ey3', baseLabel: 'ey5', ipa: 'ěɪ', exampleWord: 'l_ěi_', isVowel: true },
{ label: 'ey4', baseLabel: 'ey5', ipa: 'èɪ', exampleWord: 'l_èi_', isVowel: true },
{ label: 'ey5', baseLabel: 'ey5', ipa: 'eɪ', exampleWord: 'mèi m_ei_', isVowel: true },
{ label: 'f', baseLabel: 'f', ipa: 'f', exampleWord: '_f_ú', isVowel: false },
{ label: 'g', baseLabel: 'g', ipa: 'k', exampleWord: '_g_ān', isVowel: false },
{ label: 'hh', baseLabel: 'hh', ipa: 'x', exampleWord: '_h_ǎo', isVowel: false },
{ label: 'ih1', baseLabel: 'ih5', ipa: 'ī', exampleWord: 's_ī_', isVowel: true },
{ label: 'ih2', baseLabel: 'ih5', ipa: 'í', exampleWord: 's_í_', isVowel: true },
{ label: 'ih3', baseLabel: 'ih5', ipa: 'ǐ', exampleWord: 's_ǐ_', isVowel: true },
{ label: 'ih4', baseLabel: 'ih5', ipa: 'ì', exampleWord: 's_ì_', isVowel: true },
{ label: 'ih5', baseLabel: 'ih5', ipa: 'i', exampleWord: 's_i_', isVowel: true },
{ label: 'ix1', baseLabel: 'ix5', ipa: 'ī', exampleWord: 'sh_ī_', isVowel: true },
{ label: 'ix2', baseLabel: 'ix5', ipa: 'í', exampleWord: 'sh_í_', isVowel: true },
{ label: 'ix3', baseLabel: 'ix5', ipa: 'ǐ', exampleWord: 'sh_ǐ_', isVowel: true },
{ label: 'ix4', baseLabel: 'ix5', ipa: 'ì', exampleWord: 'sh_ì_', isVowel: true },
{ label: 'ix5', baseLabel: 'ix5', ipa: 'i', exampleWord: 'sh_i_', isVowel: true },
{ label: 'iy1', baseLabel: 'iy5', ipa: 'ī', exampleWord: 'd_ī_', isVowel: true },
{ label: 'iy2', baseLabel: 'iy5', ipa: 'í', exampleWord: 'd_í_', isVowel: true },
{ label: 'iy3', baseLabel: 'iy5', ipa: 'ǐ', exampleWord: 'd_ǐ_', isVowel: true },
{ label: 'iy4', baseLabel: 'iy5', ipa: 'ì', exampleWord: 'd_ì_', isVowel: true },
{ label: 'iy5', baseLabel: 'iy5', ipa: 'i', exampleWord: 'dì d_i_', isVowel: true },
{ label: 'j', baseLabel: 'j', ipa: 't͡ɕ', exampleWord: '_j_ī', isVowel: false },
{ label: 'jh', baseLabel: 'jh', ipa: 'ʈ͡ʂ', exampleWord: '_zh_ā', isVowel: false },
{ label: 'k', baseLabel: 'k', ipa: 'kʰ', exampleWord: '_k_ā', isVowel: false },
{ label: 'l', baseLabel: 'l', ipa: 'l', exampleWord: '_l_óu luō', isVowel: false },
{ label: 'm', baseLabel: 'm', ipa: 'm', exampleWord: '_m_ā', isVowel: false },
{ label: 'n', baseLabel: 'n', ipa: 'n', exampleWord: '_n_ǎi', isVowel: false },
{ label: 'n1', baseLabel: 'n5', ipa: 'n̄', exampleWord: 'chā_n_', isVowel: true },
{ label: 'n2', baseLabel: 'n5', ipa: 'ń', exampleWord: 'chá_n_', isVowel: true },
{ label: 'n3', baseLabel: 'n5', ipa: 'ň', exampleWord: 'chǎ_n_', isVowel: true },
{ label: 'n4', baseLabel: 'n5', ipa: 'ǹ', exampleWord: 'chà_n_', isVowel: true },
{ label: 'n5', baseLabel: 'n5', ipa: 'n', exampleWord: 'chá_n_', isVowel: true },
{ label: 'ng', baseLabel: 'ng', ipa: 'ŋ̄', exampleWord: 'chē_ng_', isVowel: true },
// { label: 'ng1', baseLabel: 'ng5', ipa: 'ŋ̄', exampleWord: 'chē_ng_', isVowel: true },
{ label: 'ng2', baseLabel: 'ng5', ipa: 'ŋ́', exampleWord: 'ché_ng_', isVowel: true },
{ label: 'ng3', baseLabel: 'ng5', ipa: 'ŋ̌', exampleWord: 'chě_ng_', isVowel: true },
{ label: 'ng4', baseLabel: 'ng5', ipa: 'ŋ̀', exampleWord: 'chè_ng_', isVowel: true },
{ label: 'ng5', baseLabel: 'ng5', ipa: 'ŋ', exampleWord: 'nián ché_ng_', isVowel: true },
{ label: 'ow1', baseLabel: 'ow5', ipa: 'ōʊ', exampleWord: 'ch_ōu_', isVowel: true },
{ label: 'ow2', baseLabel: 'ow5', ipa: 'óʊ', exampleWord: 'ch_óu_', isVowel: true },
{ label: 'ow3', baseLabel: 'ow5', ipa: 'ǒʊ', exampleWord: 'ch_ǒu_', isVowel: true },
{ label: 'ow4', baseLabel: 'ow5', ipa: 'òʊ', exampleWord: 'ch_òu_', isVowel: true },
{ label: 'ow5', baseLabel: 'ow5', ipa: 'oʊ', exampleWord: 'bào ch_óu_', isVowel: true },
{ label: 'p', baseLabel: 'p', ipa: 'pʰ', exampleWord: '_p_īn', isVowel: false },
{ label: 'q', baseLabel: 'q', ipa: 't͡ɕʰ', exampleWord: '_q_ī', isVowel: false },
{ label: 'r', baseLabel: 'r', ipa: 'ɻ', exampleWord: '_r_óu', isVowel: false },
{ label: 'r2', baseLabel: 'r5', ipa: 'ŕ', exampleWord: 'yī shì é_r_ fèn', isVowel: true },
{ label: 'r3', baseLabel: 'r5', ipa: 'ř', exampleWord: 'zhōng ě_r_', isVowel: true },
{ label: 'r4', baseLabel: 'r5', ipa: 'r̀', exampleWord: 'yāo è_r_', isVowel: true },
{ label: 'r5', baseLabel: 'r5', ipa: 'r', exampleWord: 'gān é_r_', isVowel: true },
{ label: 's', baseLabel: 's', ipa: 's', exampleWord: '_s_ā', isVowel: false },
{ label: 'sh', baseLabel: 'sh', ipa: 'ʂ', exampleWord: '_sh_àng', isVowel: false },
{ label: 't', baseLabel: 't', ipa: 'tʰ', exampleWord: '_t_ā', isVowel: false },
// { label: 'uh', baseLabel: 'uh', ipa: 'ʊ', exampleWord: 'b_oo_k', isVowel: false },
{ label: 'uu1', baseLabel: 'uu5', ipa: 'ȳ', exampleWord: 'n_ǖ_', isVowel: true },
{ label: 'uu2', baseLabel: 'uu5', ipa: 'ý', exampleWord: 'n_ǘ_', isVowel: true },
{ label: 'uu3', baseLabel: 'uu5', ipa: 'y̆', exampleWord: 'n_ǚ_', isVowel: true },
{ label: 'uu4', baseLabel: 'uu5', ipa: 'ỳ', exampleWord: 'n_ǜ_', isVowel: true },
{ label: 'uu5', baseLabel: 'uu5', ipa: 'y', exampleWord: 'n_ü_', isVowel: true },
{ label: 'uw1', baseLabel: 'uw5', ipa: 'ū', exampleWord: 'b_ū_', isVowel: true },
{ label: 'uw2', baseLabel: 'uw5', ipa: 'ú', exampleWord: 'b_ú_', isVowel: true },
{ label: 'uw3', baseLabel: 'uw5', ipa: 'ǔ', exampleWord: 'b_ǔ_', isVowel: true },
{ label: 'uw4', baseLabel: 'uw5', ipa: 'ù', exampleWord: 'b_ù_', isVowel: true },
{ label: 'uw5', baseLabel: 'uw5', ipa: 'u', exampleWord: 'tiān b_ǔ_', isVowel: true },
{ label: 'w', baseLabel: 'w', ipa: 'w', exampleWord: '_w_ǔ', isVowel: false },
{ label: 'x', baseLabel: 'x', ipa: 'ɕ', exampleWord: '_x_ià', isVowel: false },
{ label: 'y', baseLabel: 'y', ipa: 'j', exampleWord: '_y_ā', isVowel: false },
{ label: 'z', baseLabel: 'z', ipa: 't͡s', exampleWord: '_z_ā', isVowel: false },
],
'novo-nl37': [
{ label: 'a', baseLabel: 'a', ipa: 'ɑ', exampleWord: 'h_a_d', isVowel: true },
{ label: 'aa', baseLabel: 'aa', ipa: 'aː', exampleWord: '_aa_nbakken', isVowel: true },
{ label: 'aw', baseLabel: 'aw', ipa: 'ʌu', exampleWord: 'g_au_w', isVowel: true },
{ label: 'ax', baseLabel: 'ax', ipa: 'ə', exampleWord: 'd_e_', isVowel: true },
{ label: 'b', baseLabel: 'b', ipa: 'b', exampleWord: '_b_al', isVowel: false },
{ label: 'd', baseLabel: 'd', ipa: 'd', exampleWord: '_d_e', isVowel: false },
{ label: 'eh', baseLabel: 'eh', ipa: 'ɛ', exampleWord: 'n_e_t', isVowel: true },
{ label: 'ei', baseLabel: 'ei', ipa: 'ɛi', exampleWord: 'j_ij_', isVowel: true },
{ label: 'eu', baseLabel: 'eu', ipa: 'øː', exampleWord: 'n_eu_s', isVowel: true },
{ label: 'ey', baseLabel: 'ey', ipa: 'eː', exampleWord: 'tw_ee_', isVowel: true },
{ label: 'f', baseLabel: 'f', ipa: 'f', exampleWord: '_f_ijn', isVowel: false },
{ label: 'g', baseLabel: 'g', ipa: 'g', exampleWord: '_g_oal', isVowel: false },
{ label: 'hh', baseLabel: 'hh', ipa: 'h', exampleWord: '_h_uis', isVowel: false },
{ label: 'ih', baseLabel: 'ih', ipa: 'ɪ', exampleWord: '_i_n', isVowel: true },
{ label: 'iy', baseLabel: 'iy', ipa: 'i', exampleWord: 'n_ie_t', isVowel: true },
{ label: 'k', baseLabel: 'k', ipa: 'k', exampleWord: 'i_k_', isVowel: false },
{ label: 'l', baseLabel: 'l', ipa: 'l', exampleWord: '_l_a', isVowel: false },
{ label: 'm', baseLabel: 'm', ipa: 'm', exampleWord: '_m_aan', isVowel: false },
{ label: 'n', baseLabel: 'n', ipa: 'n', exampleWord: '_n_aar', isVowel: false },
{ label: 'ng', baseLabel: 'ng', ipa: 'ŋ', exampleWord: 'ba_ng_', isVowel: false },
{ label: 'oh', baseLabel: 'oh', ipa: 'ɔ', exampleWord: '_o_p', isVowel: true },
{ label: 'ow', baseLabel: 'ow', ipa: 'oː', exampleWord: 'l_oo_p', isVowel: true },
{ label: 'p', baseLabel: 'p', ipa: 'p', exampleWord: '_p_a', isVowel: false },
{ label: 'r', baseLabel: 'r', ipa: 'r', exampleWord: '_r_aar', isVowel: false },
{ label: 's', baseLabel: 's', ipa: 's', exampleWord: 'i_s_', isVowel: false },
{ label: 'sh', baseLabel: 'sh', ipa: 'ʃ', exampleWord: 'mei_sj_e', isVowel: false },
{ label: 't', baseLabel: 't', ipa: 't', exampleWord: '_t_aart', isVowel: false },
{ label: 'uh', baseLabel: 'uh', ipa: 'ʏ', exampleWord: 'b_u_s', isVowel: true },
{ label: 'uu', baseLabel: 'uu', ipa: 'y', exampleWord: 'n_u_', isVowel: true },
{ label: 'uw', baseLabel: 'uw', ipa: 'u', exampleWord: 'p_oe_s', isVowel: true },
{ label: 'uy', baseLabel: 'uy', ipa: 'œy', exampleWord: 'h_ui_s', isVowel: true },
{ label: 'v', baseLabel: 'v', ipa: 'v', exampleWord: '_v_an', isVowel: false },
{ label: 'wv', baseLabel: 'wv', ipa: 'ʋ', exampleWord: '_w_aar', isVowel: false },
{ label: 'x', baseLabel: 'x', ipa: 'x', exampleWord: '_g_aan', isVowel: false },
{ label: 'y', baseLabel: 'y', ipa: 'j', exampleWord: '_j_a', isVowel: false },
{ label: 'z', baseLabel: 'z', ipa: 'z', exampleWord: '_z_on', isVowel: false },
{ label: 'zh', baseLabel: 'zh', ipa: 'ʒ', exampleWord: '_g_iraf', isVowel: false },
] as const,
// 'novo-ar35': [
// { label: 'a', baseLabel: 'a', ipa: 'a', exampleWord: '_بَ_', isVowel: true },
// { label: 'a:', baseLabel: 'a:', ipa: 'a:', exampleWord: '_بَا_', isVowel: true },
// { label: 'ay', baseLabel: 'ay', ipa: 'aj', exampleWord: 'بَيْ_ت_', isVowel: true },
// { label: 'aw', baseLabel: 'aw', ipa: 'aw', exampleWord: 'يَوْ_م_', isVowel: true },
// { label: 'i', baseLabel: 'i', ipa: 'i', exampleWord: '_بِ_', isVowel: true },
// { label: 'i:', baseLabel: 'i:', ipa: 'i:', exampleWord: '_بِي_', isVowel: true },
// { label: 'u', baseLabel: 'u', ipa: 'u', exampleWord: '_بُ_', isVowel: true },
// { label: 'u:', baseLabel: 'u:', ipa: 'u:', exampleWord: '_بُو_', isVowel: true },
// { label: 'b', baseLabel: 'b', ipa: 'b', exampleWord: 'بَ_قَرَة_', isVowel: false },
// { label: 't', baseLabel: 't', ipa: 't', exampleWord: 'تُ_فَّاح_', isVowel: false },
// { label: 'ts', baseLabel: 'ts', ipa: 'θ', exampleWord: 'ثَ_مَرَة_', isVowel: false },
// { label: 'j', baseLabel: 'j', ipa: 'dʒ', exampleWord: 'جَ_رَس_', isVowel: false },
// { label: 'H', baseLabel: 'H', ipa: 'ħ', exampleWord: 'حَ_بْل_', isVowel: false },
// { label: 'kh', baseLabel: 'kh', ipa: 'x', exampleWord: 'خِ_يَار_', isVowel: false },
// { label: 'd', baseLabel: 'd', ipa: 'd', exampleWord: 'دَ_م_', isVowel: false },
// { label: 'dz', baseLabel: 'dz', ipa: 'ð', exampleWord: 'ذَ_هَب_', isVowel: false },
// { label: 'r', baseLabel: 'r', ipa: 'r', exampleWord: 'رَ_مْل_', isVowel: false },
// { label: 'z', baseLabel: 'z', ipa: 'z', exampleWord: 'زَ_مَن_', isVowel: false },
// { label: 's', baseLabel: 's', ipa: 's', exampleWord: 'سَ_لَام_', isVowel: false },
// { label: 'sy', baseLabel: 'sy', ipa: 'ʃ', exampleWord: 'شُ_كْرًا_', isVowel: false },
// { label: 'S', baseLabel: 'S', ipa: 'sˤ', exampleWord: 'صُ_نْدُوق_', isVowel: false },
// { label: 'D', baseLabel: 'D', ipa: 'dˤ', exampleWord: 'ضِ_دّ_', isVowel: false },
// { label: 'th', baseLabel: 'th', ipa: 'tˤ', exampleWord: 'طَ_لَبَ_', isVowel: false },
// { label: 'zh', baseLabel: 'zh', ipa: 'ðˤ', exampleWord: 'ظَ_لَام_', isVowel: false },
// { label: "A'", baseLabel: "A'", ipa: 'ʕ', exampleWord: 'عَ_سَلَ_', isVowel: false },
// { label: 'gh', baseLabel: 'gh', ipa: 'ɣ', exampleWord: 'غُ_بَار_', isVowel: false },
// { label: 'f', baseLabel: 'f', ipa: 'f', exampleWord: 'فَ_تَحَ_', isVowel: false },
// { label: 'q', baseLabel: 'q', ipa: 'q', exampleWord: 'قَ_مَر_', isVowel: false },
// { label: 'k', baseLabel: 'k', ipa: 'k', exampleWord: 'كَ_لِمَة_', isVowel: false },
// { label: 'l', baseLabel: 'l', ipa: 'l', exampleWord: 'لَ_بَن_', isVowel: false },
// { label: 'm', baseLabel: 'm', ipa: 'm', exampleWord: 'مَ_لِك_', isVowel: false },
// { label: 'n', baseLabel: 'n', ipa: 'n', exampleWord: 'نَ_سْر_', isVowel: false },
// { label: 'h', baseLabel: 'h', ipa: 'h', exampleWord: 'هَ_رَم_', isVowel: false },
// { label: 'w', baseLabel: 'w', ipa: 'w', exampleWord: 'وِ_لَادَة_', isVowel: false },
// { label: 'y', baseLabel: 'y', ipa: 'j', exampleWord: 'يَ_مِين_', isVowel: false },
// ] as const,
'novo-ar38': [
{ label: "'", baseLabel: "'", ipa: 'ʔ', exampleWord: '_ﺀ_', isVowel: false },
{ label: 'a', baseLabel: 'a', ipa: 'a', exampleWord: '_بَ_', isVowel: true },
{ label: 'a:', baseLabel: 'a:', ipa: 'a:', exampleWord: '_بَا_', isVowel: true },
{ label: 'o', baseLabel: 'a', ipa: 'ɑ', exampleWord: '_طَ_', isVowel: true },
{ label: 'o:', baseLabel: 'a:', ipa: 'ɑ:', exampleWord: '_ﻁَا_', isVowel: true },
{ label: 'ay', baseLabel: 'ay', ipa: 'aj', exampleWord: 'بَيْ_ت_', isVowel: true },
{ label: 'aw', baseLabel: 'aw', ipa: 'aw', exampleWord: 'يَوْ_م_', isVowel: true },
{ label: 'i', baseLabel: 'i', ipa: 'i', exampleWord: '_بِ_', isVowel: true },
{ label: 'i:', baseLabel: 'i:', ipa: 'i:', exampleWord: '_بِي_', isVowel: true },
{ label: 'u', baseLabel: 'u', ipa: 'u', exampleWord: '_بُ_', isVowel: true },
{ label: 'u:', baseLabel: 'u:', ipa: 'u:', exampleWord: '_بُو_', isVowel: true },
{ label: 'b', baseLabel: 'b', ipa: 'b', exampleWord: 'بَ_قَرَة_', isVowel: false },
{ label: 't', baseLabel: 't', ipa: 't', exampleWord: 'تُ_فَّاح_', isVowel: false },
{ label: 'ts', baseLabel: 'ts', ipa: 'θ', exampleWord: 'ثَ_مَرَة_', isVowel: false },
{ label: 'j', baseLabel: 'j', ipa: 'dʒ', exampleWord: 'جَ_رَس_', isVowel: false },
{ label: 'H', baseLabel: 'H', ipa: 'ħ', exampleWord: 'حَ_بْل_', isVowel: false },
{ label: 'kh', baseLabel: 'kh', ipa: 'x', exampleWord: 'خِ_يَار_', isVowel: false },
{ label: 'd', baseLabel: 'd', ipa: 'd', exampleWord: 'دَ_م_', isVowel: false },
{ label: 'dz', baseLabel: 'dz', ipa: 'ð', exampleWord: 'ذَ_هَب_', isVowel: false },
{ label: 'r', baseLabel: 'r', ipa: 'r', exampleWord: 'رَ_مْل_', isVowel: false },
{ label: 'z', baseLabel: 'z', ipa: 'z', exampleWord: 'زَ_مَن_', isVowel: false },
{ label: 's', baseLabel: 's', ipa: 's', exampleWord: 'سَ_لَام_', isVowel: false },
{ label: 'sy', baseLabel: 'sy', ipa: 'ʃ', exampleWord: 'شُ_كْرًا_', isVowel: false },
{ label: 'S', baseLabel: 'S', ipa: 'sˤ', exampleWord: 'صُ_نْدُوق_', isVowel: false },
{ label: 'D', baseLabel: 'D', ipa: 'dˤ', exampleWord: 'ضِ_دّ_', isVowel: false },
{ label: 'th', baseLabel: 'th', ipa: 'tˤ', exampleWord: 'طَ_لَبَ_', isVowel: false },
{ label: 'zh', baseLabel: 'zh', ipa: 'ðˤ', exampleWord: 'ظَ_لَام_', isVowel: false },
{ label: "A'", baseLabel: "A'", ipa: 'ʕ', exampleWord: 'عَ_سَلَ_', isVowel: false },
{ label: 'gh', baseLabel: 'gh', ipa: 'ɣ', exampleWord: 'غُ_بَار_', isVowel: false },
{ label: 'f', baseLabel: 'f', ipa: 'f', exampleWord: 'فَ_تَحَ_', isVowel: false },
{ label: 'q', baseLabel: 'q', ipa: 'q', exampleWord: 'قَ_مَر_', isVowel: false },
{ label: 'k', baseLabel: 'k', ipa: 'k', exampleWord: 'كَ_لِمَة_', isVowel: false },
{ label: 'l', baseLabel: 'l', ipa: 'l', exampleWord: 'لَ_بَن_', isVowel: false },
{ label: 'm', baseLabel: 'm', ipa: 'm', exampleWord: 'مَ_لِك_', isVowel: false },
{ label: 'n', baseLabel: 'n', ipa: 'n', exampleWord: 'نَ_سْر_', isVowel: false },
{ label: 'h', baseLabel: 'h', ipa: 'h', exampleWord: 'هَ_رَم_', isVowel: false },
{ label: 'w', baseLabel: 'w', ipa: 'w', exampleWord: 'وِ_لَادَة_', isVowel: false },
{ label: 'y', baseLabel: 'y', ipa: 'j', exampleWord: 'يَ_مِين_', isVowel: false },
] as const,
'novo-ar37': [
{ label: "'", baseLabel: "'", ipa: 'ʔ', exampleWord: '_ﺀ_', isVowel: false },
{ label: 'a', baseLabel: 'a', ipa: 'a', exampleWord: '_بَ_', isVowel: true },
{ label: 'a:', baseLabel: 'a:', ipa: 'a:', exampleWord: '_بَا_', isVowel: true },
{ label: 'o', baseLabel: 'a', ipa: 'ɑ', exampleWord: '_طَ_', isVowel: true },
{ label: 'o:', baseLabel: 'a:', ipa: 'ɑ:', exampleWord: '_ﻁَا_', isVowel: true },
{ label: '@', baseLabel: '@', ipa: 'ə', exampleWord: 'مَ_بْ_لَ', isVowel: true },
{ label: 'i', baseLabel: 'i', ipa: 'i', exampleWord: '_بِ_', isVowel: true },
{ label: 'i:', baseLabel: 'i:', ipa: 'i:', exampleWord: '_بِي_', isVowel: true },
{ label: 'u', baseLabel: 'u', ipa: 'u', exampleWord: '_بُ_', isVowel: true },
{ label: 'u:', baseLabel: 'u:', ipa: 'u:', exampleWord: '_بُو_', isVowel: true },
{ label: 'b', baseLabel: 'b', ipa: 'b', exampleWord: 'بَ_قَرَة_', isVowel: false },
{ label: 't', baseLabel: 't', ipa: 't', exampleWord: 'تُ_فَّاح_', isVowel: false },
{ label: 'ts', baseLabel: 'ts', ipa: 'θ', exampleWord: 'ثَ_مَرَة_', isVowel: false },
{ label: 'j', baseLabel: 'j', ipa: 'dʒ', exampleWord: 'جَ_رَس_', isVowel: false },
{ label: 'H', baseLabel: 'H', ipa: 'ħ', exampleWord: 'حَ_بْل_', isVowel: false },
{ label: 'kh', baseLabel: 'kh', ipa: 'x', exampleWord: 'خِ_يَار_', isVowel: false },
{ label: 'd', baseLabel: 'd', ipa: 'd', exampleWord: 'دَ_م_', isVowel: false },
{ label: 'dz', baseLabel: 'dz', ipa: 'ð', exampleWord: 'ذَ_هَب_', isVowel: false },
{ label: 'r', baseLabel: 'r', ipa: 'r', exampleWord: 'رَ_مْل_', isVowel: false },
{ label: 'z', baseLabel: 'z', ipa: 'z', exampleWord: 'زَ_مَن_', isVowel: false },
{ label: 's', baseLabel: 's', ipa: 's', exampleWord: 'سَ_لَام_', isVowel: false },
{ label: 'sy', baseLabel: 'sy', ipa: 'ʃ', exampleWord: 'شُ_كْرًا_', isVowel: false },
{ label: 'S', baseLabel: 'S', ipa: 'sˤ', exampleWord: 'صُ_نْدُوق_', isVowel: false },
{ label: 'D', baseLabel: 'D', ipa: 'dˤ', exampleWord: 'ضِ_دّ_', isVowel: false },
{ label: 'th', baseLabel: 'th', ipa: 'tˤ', exampleWord: 'طَ_لَبَ_', isVowel: false },
{ label: 'zh', baseLabel: 'zh', ipa: 'ðˤ', exampleWord: 'ظَ_لَام_', isVowel: false },
{ label: "A'", baseLabel: "A'", ipa: 'ʕ', exampleWord: 'عَ_سَلَ_', isVowel: false },
{ label: 'gh', baseLabel: 'gh', ipa: 'ɣ', exampleWord: 'غُ_بَار_', isVowel: false },
{ label: 'f', baseLabel: 'f', ipa: 'f', exampleWord: 'فَ_تَحَ_', isVowel: false },
{ label: 'q', baseLabel: 'q', ipa: 'q', exampleWord: 'قَ_مَر_', isVowel: false },
{ label: 'k', baseLabel: 'k', ipa: 'k', exampleWord: 'كَ_لِمَة_', isVowel: false },
{ label: 'l', baseLabel: 'l', ipa: 'l', exampleWord: 'لَ_بَن_', isVowel: false },
{ label: 'm', baseLabel: 'm', ipa: 'm', exampleWord: 'مَ_لِك_', isVowel: false },
{ label: 'n', baseLabel: 'n', ipa: 'n', exampleWord: 'نَ_سْر_', isVowel: false },
{ label: 'h', baseLabel: 'h', ipa: 'h', exampleWord: 'هَ_رَم_', isVowel: false },
{ label: 'w', baseLabel: 'w', ipa: 'w', exampleWord: 'وِ_لَادَة_', isVowel: false },
{ label: 'y', baseLabel: 'y', ipa: 'j', exampleWord: 'يَ_مِين_', isVowel: false },
] as const,
'novo-fr37': [
{ label: '9~', baseLabel: '9', ipa: 'œ̃', exampleWord: 'al_un_', isVowel: true },
{ label: '2', baseLabel: '2', ipa: 'ø', exampleWord: 'adi_eu_', isVowel: true },
{ label: 'E~', baseLabel: 'E', ipa: 'ɛ̃', exampleWord: 'v_in_', isVowel: true },
{ label: 'A', baseLabel: 'A', ipa: 'ɑ', exampleWord: 'p_â_te', isVowel: true },
{ label: '@', baseLabel: '@', ipa: 'ə', exampleWord: 'm_on_sieur', isVowel: true },
{ label: '9', baseLabel: '9', ipa: 'œ', exampleWord: 's_œu_r', isVowel: true },
{ label: 'E', baseLabel: 'E', ipa: 'ɛ', exampleWord: 'f_ai_te', isVowel: true },
{ label: 'H', baseLabel: 'H', ipa: 'ɥ͡i', exampleWord: 's_ui_te', isVowel: false },
{ label: 'J', baseLabel: 'J', ipa: 'ɲ', exampleWord: 'ga_gn_er', isVowel: false },
{ label: 'O', baseLabel: 'O', ipa: 'ɔ', exampleWord: 'p_o_mme', isVowel: true },
{ label: 'N', baseLabel: 'N', ipa: 'ŋ', exampleWord: 'campi_ng_', isVowel: false },
{ label: 'O~', baseLabel: 'O', ipa: 'ɔ̃', exampleWord: 'n_om_', isVowel: true },
{ label: 'S', baseLabel: 'S', ipa: 'ʃ', exampleWord: 'a_ch_eter', isVowel: false },
{ label: 'R', baseLabel: 'R', ipa: 'ʁ', exampleWord: '_r_egarder', isVowel: false },
{ label: 'Z', baseLabel: 'Z', ipa: 'ʒ', exampleWord: '_j_amais', isVowel: true },
{ label: 'a', baseLabel: 'a', ipa: 'a', exampleWord: 'f_e_mme', isVowel: true },
{ label: 'b', baseLabel: 'b', ipa: 'b', exampleWord: '_b_on', isVowel: false },
{ label: 'e', baseLabel: 'e', ipa: 'e', exampleWord: 'cl_é_', isVowel: true },
{ label: 'd', baseLabel: 'd', ipa: 'd', exampleWord: '_d_eux', isVowel: false },
{ label: 'g', baseLabel: 'g', ipa: 'g', exampleWord: '_g_arçon', isVowel: false },
{ label: 'f', baseLabel: 'f', ipa: 'f', exampleWord: '_f_aire', isVowel: false },
{ label: 'i', baseLabel: 'i', ipa: 'i', exampleWord: 's_i_', isVowel: true },
// { label: 'h', baseLabel: 'h', ipa: 'h', exampleWord: 'eisen_h_ower', isVowel: false },
{ label: 'k', baseLabel: 'k', ipa: 'k', exampleWord: 'ave_c_', isVowel: false },
{ label: 'j', baseLabel: 'j', ipa: 'j', exampleWord: 'fi_ll_e', isVowel: false },
{ label: 'm', baseLabel: 'm', ipa: 'm', exampleWord: '_m_ême', isVowel: false },
{ label: 'l', baseLabel: 'l', ipa: 'l', exampleWord: 'seu_l_', isVowel: false },
{ label: 'o', baseLabel: 'o', ipa: 'o', exampleWord: 'h_ô_tes', isVowel: true },
{ label: 'n', baseLabel: 'n', ipa: 'n', exampleWord: '_n_ous', isVowel: false },
{ label: 'p', baseLabel: 'p', ipa: 'p', exampleWord: '_p_ère', isVowel: false },
{ label: 's', baseLabel: 's', ipa: 's', exampleWord: '_s_ans', isVowel: false },
// { label: 'r', baseLabel: 'r', ipa: 'r', exampleWord: 'f_r_ère', isVowel: false },
{ label: 'u', baseLabel: 'u', ipa: 'u', exampleWord: 'c_ou_p', isVowel: true },
{ label: 't', baseLabel: 't', ipa: 't', exampleWord: '_t_out', isVowel: false },
{ label: 'w', baseLabel: 'w', ipa: 'w', exampleWord: '_ou_i', isVowel: false },
{ label: 'v', baseLabel: 'v', ipa: 'v', exampleWord: '_v_ous', isVowel: false },
{ label: 'y', baseLabel: 'y', ipa: 'y', exampleWord: 'r_ue_', isVowel: true },
{ label: 'z', baseLabel: 'z', ipa: 'z', exampleWord: '_z_éro', isVowel: false },
{ label: 'A~', baseLabel: 'A', ipa: 'ɑ̃', exampleWord: 's_an_s', isVowel: true },
] as const,
'novo-fr-nl61': [
{ label: '9~', baseLabel: '9', ipa: 'œ̃', exampleWord: 'al_un_', isVowel: true },
{ label: '2', baseLabel: '2', ipa: 'ø', exampleWord: 'adi_eu_', isVowel: true },
{ label: 'E~', baseLabel: 'E', ipa: 'ɛ̃', exampleWord: 'v_in_', isVowel: true },
{ label: 'A', baseLabel: 'A', ipa: 'ɑ', exampleWord: 'p_â_te', isVowel: true },
{ label: '@', baseLabel: '@', ipa: 'ə', exampleWord: 'm_on_sieur', isVowel: true },
{ label: '9', baseLabel: '9', ipa: 'œ', exampleWord: 's_œu_r', isVowel: true },
{ label: 'E', baseLabel: 'E', ipa: 'ɛ', exampleWord: 'f_ai_te', isVowel: true },
{ label: 'H', baseLabel: 'H', ipa: 'ɥ͡i', exampleWord: 's_ui_te', isVowel: false },
{ label: 'J', baseLabel: 'J', ipa: 'ɲ', exampleWord: 'ga_gn_er', isVowel: false },
{ label: 'O', baseLabel: 'O', ipa: 'ɔ', exampleWord: 'p_o_mme', isVowel: true },
{ label: 'N', baseLabel: 'N', ipa: 'ŋ', exampleWord: 'campi_ng_', isVowel: false },
{ label: 'O~', baseLabel: 'O', ipa: 'ɔ̃', exampleWord: 'n_om_', isVowel: true },
{ label: 'S', baseLabel: 'S', ipa: 'ʃ', exampleWord: 'a_ch_eter', isVowel: false },
{ label: 'R', baseLabel: 'R', ipa: 'ʁ', exampleWord: '_r_egarder', isVowel: false },
{ label: 'Z', baseLabel: 'Z', ipa: 'ʒ', exampleWord: '_j_amais', isVowel: true },
{ label: 'a', baseLabel: 'a', ipa: 'a', exampleWord: 'f_e_mme', isVowel: true },
{ label: 'b', baseLabel: 'b', ipa: 'b', exampleWord: '_b_on', isVowel: false },
{ label: 'e', baseLabel: 'e', ipa: 'e', exampleWord: 'cl_é_', isVowel: true },
{ label: 'd', baseLabel: 'd', ipa: 'd', exampleWord: '_d_eux', isVowel: false },
{ label: 'g', baseLabel: 'g', ipa: 'g', exampleWord: '_g_arçon', isVowel: false },
{ label: 'f', baseLabel: 'f', ipa: 'f', exampleWord: '_f_aire', isVowel: false },
{ label: 'i', baseLabel: 'i', ipa: 'i', exampleWord: 's_i_', isVowel: true },
{ label: 'k', baseLabel: 'k', ipa: 'k', exampleWord: 'ave_c_', isVowel: false },
{ label: 'j', baseLabel: 'j', ipa: 'j', exampleWord: 'fi_ll_e', isVowel: false },
{ label: 'm', baseLabel: 'm', ipa: 'm', exampleWord: '_m_ême', isVowel: false },
{ label: 'l', baseLabel: 'l', ipa: 'l', exampleWord: 'seu_l_', isVowel: false },
{ label: 'o', baseLabel: 'o', ipa: 'o', exampleWord: 'h_ô_tes', isVowel: true },
{ label: 'n', baseLabel: 'n', ipa: 'n', exampleWord: '_n_ous', isVowel: false },
{ label: 'p', baseLabel: 'p', ipa: 'p', exampleWord: '_p_ère', isVowel: false },
{ label: 's', baseLabel: 's', ipa: 's', exampleWord: '_s_ans', isVowel: false },
{ label: 'u', baseLabel: 'u', ipa: 'u', exampleWord: 'c_ou_p', isVowel: true },
{ label: 't', baseLabel: 't', ipa: 't', exampleWord: '_t_out', isVowel: false },
{ label: 'w', baseLabel: 'w', ipa: 'w', exampleWord: '_ou_i', isVowel: false },
{ label: 'v', baseLabel: 'v', ipa: 'v', exampleWord: '_v_ous', isVowel: false },
{ label: 'y', baseLabel: 'y', ipa: 'y', exampleWord: 'r_ue_', isVowel: true },
{ label: 'z', baseLabel: 'z', ipa: 'z', exampleWord: '_z_éro', isVowel: false },
{ label: 'A~', baseLabel: 'A', ipa: 'ɑ̃', exampleWord: 's_an_s', isVowel: true },
{ label: 'a-nl', baseLabel: 'a-nl', ipa: 'ɑ', exampleWord: 'h_a_d', isVowel: true },
{ label: 'aa-nl', baseLabel: 'aa-nl', ipa: 'aː', exampleWord: '_aa_nbakken', isVowel: true },
{ label: 'aw-nl', baseLabel: 'aw-nl', ipa: 'ʌu', exampleWord: 'g_au_w', isVowel: true },
{ label: 'ax-nl', baseLabel: 'ax-nl', ipa: 'ə', exampleWord: 'd_e_', isVowel: true },
{ label: 'eh-nl', baseLabel: 'eh-nl', ipa: 'ɛ', exampleWord: 'n_e_t', isVowel: true },
{ label: 'ei-nl', baseLabel: 'ei-nl', ipa: 'ɛi', exampleWord: 'j_ij_', isVowel: true },
{ label: 'eu-nl', baseLabel: 'eu-nl', ipa: 'øː', exampleWord: 'n_eu_s', isVowel: true },
{ label: 'ey-nl', baseLabel: 'ey-nl', ipa: 'eː', exampleWord: 'tw_ee_', isVowel: true },
{ label: 'hh-nl', baseLabel: 'hh-nl', ipa: 'h', exampleWord: '_h_uis', isVowel: false },
{ label: 'ih-nl', baseLabel: 'ih-nl', ipa: 'ɪ', exampleWord: '_i_n', isVowel: true },
{ label: 'iy-nl', baseLabel: 'iy-nl', ipa: 'i', exampleWord: 'n_ie_t', isVowel: true },
{ label: 'l-nl', baseLabel: 'l-nl', ipa: 'l', exampleWord: '_l_a', isVowel: false },
{ label: 'oh-nl', baseLabel: 'oh-nl', ipa: 'ɔ', exampleWord: '_o_p', isVowel: true },
{ label: 'ow-nl', baseLabel: 'ow-nl', ipa: 'oː', exampleWord: 'l_oo_p', isVowel: true },
{ label: 'r-nl', baseLabel: 'r-nl', ipa: 'r', exampleWord: '_r_aar', isVowel: false },
{ label: 's-nl', baseLabel: 's-nl', ipa: 's', exampleWord: 'i_s_', isVowel: false },
{ label: 'uh-nl', baseLabel: 'uh-nl', ipa: 'ʏ', exampleWord: 'b_u_s', isVowel: true },
{ label: 'uu-nl', baseLabel: 'uu-nl', ipa: 'y', exampleWord: 'n_u_', isVowel: true },
{ label: 'uw-nl', baseLabel: 'uw-nl', ipa: 'u', exampleWord: 'p_oe_s', isVowel: true },
{ label: 'uy-nl', baseLabel: 'uy-nl', ipa: 'œy', exampleWord: 'h_ui_s', isVowel: true },
{ label: 'v-nl', baseLabel: 'v-nl', ipa: 'v', exampleWord: '_v_an', isVowel: false },
{ label: 'wv-nl', baseLabel: 'wv-nl', ipa: 'ʋ', exampleWord: '_w_aar', isVowel: false },
{ label: 'x-nl', baseLabel: 'x-nl', ipa: 'x', exampleWord: '_g_aan', isVowel: false },
{ label: 'z-nl', baseLabel: 'z-nl', ipa: 'z', exampleWord: '_z_on', isVowel: false },
] as const,
'novo-de45': [
{ label: 'p', baseLabel: 'p', ipa: 'p', exampleWord: 'a_b_', isVowel: false },
{ label: 'b', baseLabel: 'b', ipa: 'b', exampleWord: '_b_ei', isVowel: false },
{ label: 't', baseLabel: 't', ipa: 't', exampleWord: 'Sta_dt_', isVowel: false },
{ label: 'd', baseLabel: 'd', ipa: 'd', exampleWord: '_d_ann', isVowel: false },
{ label: 'k', baseLabel: 'k', ipa: 'k', exampleWord: 'Ta_g_', isVowel: false },
{ label: 'g', baseLabel: 'g', ipa: 'g', exampleWord: '_g_ut', isVowel: false },
{ label: 'pf', baseLabel: 'pf', ipa: 'pf', exampleWord: '_Pf_effer', isVowel: false },
{ label: 'ts', baseLabel: 'ts', ipa: 'ts', exampleWord: '_Z_eit', isVowel: false },
{ label: 'tS', baseLabel: 'tS', ipa: 'tʃ', exampleWord: 'Deu_tsch_', isVowel: false },
{ label: 'dZ', baseLabel: 'dZ', ipa: 'dʒ', exampleWord: '_Dsch_ungel', isVowel: false },
{ label: 'f', baseLabel: 'f', ipa: 'f', exampleWord: '_f_ür', isVowel: false },
{ label: 'v', baseLabel: 'v', ipa: 'v', exampleWord: '_w_as', isVowel: false },
{ label: 's', baseLabel: 's', ipa: 's', exampleWord: 'gro_ß_', isVowel: false },
{ label: 'z', baseLabel: 'z', ipa: 'z', exampleWord: 'die_s_e', isVowel: false },
{ label: 'S', baseLabel: 'S', ipa: 'ʃ', exampleWord: '_sch_on', isVowel: false },
{ label: 'Z', baseLabel: 'Z', ipa: 'ʒ', exampleWord: '_G_enie', isVowel: false },
{ label: 'C', baseLabel: 'C', ipa: 'ç', exampleWord: 'i_ch_', isVowel: false },
{ label: 'j', baseLabel: 'j', ipa: 'j', exampleWord: '_J_ahr', isVowel: false },
{ label: 'x', baseLabel: 'x', ipa: 'x', exampleWord: 'Bu_ch_', isVowel: false },
{ label: 'h', baseLabel: 'h', ipa: 'h', exampleWord: '_h_at', isVowel: false },
{ label: 'm', baseLabel: 'm', ipa: 'm', exampleWord: '_m_ein', isVowel: false },
{ label: 'n', baseLabel: 'n', ipa: 'n', exampleWord: '_n_ein', isVowel: false },
{ label: 'N', baseLabel: 'N', ipa: 'ŋ', exampleWord: 'la_ng_', isVowel: false },
{ label: 'l', baseLabel: 'l', ipa: 'l', exampleWord: '_L_eben', isVowel: false },
{ label: 'R', baseLabel: 'R', ipa: 'ʁ', exampleWord: '_r_eden', isVowel: false },
{ label: '6', baseLabel: '6', ipa: 'ɐ', exampleWord: 'imm_er_', isVowel: false },
{ label: 'a', baseLabel: 'a', ipa: 'a', exampleWord: '_a_lles', isVowel: true },
{ label: 'a:', baseLabel: 'a:', ipa: 'aː', exampleWord: '_a_ber', isVowel: true },
{ label: 'I', baseLabel: 'I', ipa: 'ɪ', exampleWord: 'b_i_st', isVowel: true },
{ label: 'i:', baseLabel: 'i:', ipa: 'iː', exampleWord: 'l_ie_be', isVowel: true },
{ label: 'E', baseLabel: 'E', ipa: 'ɛ', exampleWord: '_E_nde', isVowel: true },
{ label: 'E:', baseLabel: 'E:', ipa: 'ɛː', exampleWord: 'sp_ä_t', isVowel: true },
{ label: 'e:', baseLabel: 'e:', ipa: 'eː', exampleWord: 'g_e_hen', isVowel: true },
{ label: 'O', baseLabel: 'O', ipa: 'ɔ', exampleWord: 'tr_o_tzdem', isVowel: true },
{ label: 'o:', baseLabel: 'o:', ipa: 'oː', exampleWord: 'r_o_t', isVowel: true },
{ label: 'U', baseLabel: 'U', ipa: 'ʊ', exampleWord: '_u_nd', isVowel: true },
{ label: 'u:', baseLabel: 'u:', ipa: 'uː', exampleWord: 'H_u_t', isVowel: true },
{ label: 'Y', baseLabel: 'Y', ipa: 'ʏ', exampleWord: 'm_ü_ssen', isVowel: true },
{ label: 'y:', baseLabel: 'y:', ipa: 'yː', exampleWord: '_ü_ber', isVowel: true },
{ label: '9', baseLabel: '9', ipa: 'œ', exampleWord: '_ö_ffnen', isVowel: true },
{ label: '2:', baseLabel: '2:', ipa: 'øː', exampleWord: 'M_ö_hre', isVowel: true },
{ label: '@', baseLabel: '@', ipa: 'ə', exampleWord: 'bitt_e_', isVowel: true },
{ label: 'aI', baseLabel: 'aI', ipa: 'aɪ', exampleWord: '_ei_n', isVowel: true },
{ label: 'aU', baseLabel: 'aU', ipa: 'aʊ', exampleWord: '_au_f', isVowel: true },
{ label: 'OY', baseLabel: 'OY', ipa: 'ɔʏ', exampleWord: 'H_äu_ser', isVowel: true },
] as const,
'novo-es27': [
{ label: 'a', baseLabel: 'a', ipa: 'a', exampleWord: 'p_a_so', isVowel: true },
{ label: 'e', baseLabel: 'e', ipa: 'e', exampleWord: 'p_e_so', isVowel: true },
{ label: 'i', baseLabel: 'i', ipa: 'i', exampleWord: 'p_i_so', isVowel: true },
{ label: 'o', baseLabel: 'o', ipa: 'o', exampleWord: 'p_o_so', isVowel: true },
{ label: 'u', baseLabel: 'u', ipa: 'u', exampleWord: 'p_u_so', isVowel: true },
{ label: 'p', baseLabel: 'p', ipa: 'p', exampleWord: '_p_elo', isVowel: false },
{ label: 't', baseLabel: 't', ipa: 't', exampleWord: '_t_opo', isVowel: false },
{ label: 'k', baseLabel: 'k', ipa: 'k', exampleWord: '_c_asa', isVowel: false },
{ label: 'b', baseLabel: 'b', ipa: 'b', exampleWord: '_b_oca', isVowel: false },
{ label: 'd', baseLabel: 'd', ipa: 'd', exampleWord: '_d_ar', isVowel: false },
{ label: 'g', baseLabel: 'g', ipa: 'g', exampleWord: '_g_ato', isVowel: false },
{ label: 'ch', baseLabel: 'ch', ipa: 'tʃ', exampleWord: 'co_ch_e', isVowel: false },
{ label: 'y', baseLabel: 'y', ipa: 'ɟʝ', exampleWord: '_y_ate', isVowel: false },
{ label: 'f', baseLabel: 'f', ipa: 'f', exampleWord: '_f_eo', isVowel: false },
{ label: 's', baseLabel: 's', ipa: 's', exampleWord: '_s_ola', isVowel: false },
{ label: 'z', baseLabel: 'z', ipa: 'θ', exampleWord: '_z_ona', isVowel: false },
{ label: 'x', baseLabel: 'x', ipa: 'x', exampleWord: '_j_arrón', isVowel: false },
{ label: 'm', baseLabel: 'm', ipa: 'm', exampleWord: '_m_amá', isVowel: false },
{ label: 'n', baseLabel: 'n', ipa: 'n', exampleWord: '_n_uca', isVowel: false },
{ label: 'ñ', baseLabel: 'ñ', ipa: 'ɲ', exampleWord: 'ca_ñ_a', isVowel: false },
{ label: 'r', baseLabel: 'r', ipa: 'ɾ', exampleWord: 'pe_r_o', isVowel: false },
{ label: 'rr', baseLabel: 'rr', ipa: 'r', exampleWord: 'pe_rr_o', isVowel: false },
{ label: 'l', baseLabel: 'l', ipa: 'l', exampleWord: 'a_ll_í', isVowel: false },
{ label: 'll', baseLabel: 'll', ipa: 'ʎ', exampleWord: 'p_i_el', isVowel: false },
{ label: 'w', baseLabel: 'w', ipa: 'w', exampleWord: 'c_u_adro', isVowel: false },
{ label: 'j', baseLabel: 'j', ipa: 'j', exampleWord: 'p_i_el', isVowel: false },
{ label: 'sh', baseLabel: 'sh', ipa: 'ʃ', exampleWord: 'wa_sh_ington', isVowel: false },
] as const,
} as const;
// For each ipa symbol in the phonesets the table at
// https://en.wikipedia.org/wiki/Consonant#Consonants_versus_vowels
// was consulted to determine if it is voiceless
// This list is not extensive, only phones currently in the phonesets were checked
const voiceless = [
't͡ʃ',
'f',
'k',
'p',
's',
'ʃ',
't',
'x',
'θ',
'pf',
'ts',
'tʃ',
'dʒ',
't͡ɕ',
'ʈ͡ʂ',
'ʈ͡ʂʰ',
'kʰ',
't͡ɕʰ',
'pʰ',
'ʂ',
'tʰ',
'ɕ',
't͡s',
'ħ',
'sˤ',
'tˤ',
'ç',
'h',
'ʔ',
];
const isVoiceLessIPA = (p: PhoneInventoryItem): boolean => voiceless.includes(p.ipa);
export const voiceLessPhones: { [key in PhoneSet]: Set<string> } = {
cmu69: new Set(phoneInventoryData['cmu69'].filter(isVoiceLessIPA).map((p) => p.label)),
// 'novo-ar35': new Set(phoneInventoryData['novo-ar35'].filter(isVoiceLessIPA).map((p) => p.label)),
'novo-ar38': new Set(phoneInventoryData['novo-ar38'].filter(isVoiceLessIPA).map((p) => p.label)),
'novo-ar37': new Set(phoneInventoryData['novo-ar37'].filter(isVoiceLessIPA).map((p) => p.label)),
'novo-nl37': new Set(phoneInventoryData['novo-nl37'].filter(isVoiceLessIPA).map((p) => p.label)),
'novo-cmn111': new Set(phoneInventoryData['novo-cmn111'].filter(isVoiceLessIPA).map((p) => p.label)),
'novo-fr37': new Set(phoneInventoryData['novo-fr37'].filter(isVoiceLessIPA).map((p) => p.label)),
'novo-fr-nl61': new Set(phoneInventoryData['novo-fr-nl61'].filter(isVoiceLessIPA).map((p) => p.label)),
'novo-de45': new Set(phoneInventoryData['novo-de45'].filter(isVoiceLessIPA).map((p) => p.label)),
'novo-es27': new Set(phoneInventoryData['novo-es27'].filter(isVoiceLessIPA).map((p) => p.label)),
} as const;