Spaces:
Sleeping
Sleeping
Mostafa Shahin
commited on
Commit
·
9a81c33
1
Parent(s):
4c01711
Support IPA
Browse files- app.py +27 -9
- data/arpa2ipa.csv +39 -0
- data/p2att_en_us-arpa.csv +40 -42
- data/p2att_en_us-ipa.csv +40 -0
app.py
CHANGED
@@ -14,6 +14,7 @@ import numpy as np
|
|
14 |
|
15 |
engine = transcriber.transcribe_SA(model_path='models/SA',verbose=0)
|
16 |
phonemizer = Phonemize.phonemization()
|
|
|
17 |
|
18 |
prompts = np.loadtxt('data/prompts.txt', dtype=str)
|
19 |
|
@@ -23,26 +24,38 @@ df_output = None
|
|
23 |
def select_prompt():
|
24 |
return random.choice(prompts)
|
25 |
|
26 |
-
def phonemize_prompt(prompt):
|
27 |
-
|
|
|
|
|
|
|
|
|
28 |
|
29 |
def diff_fn():
|
30 |
return [('H','+'),('E','-'),('N',None),('\n', None),('F','-'),('Fgo','-'),('M','+')]
|
31 |
|
32 |
-
def recognizeAudio(audio_file, attributes):
|
33 |
#print(','.join(attributes))
|
34 |
global df_output
|
35 |
-
|
|
|
|
|
|
|
|
|
36 |
records = []
|
37 |
d = json.loads(output)
|
38 |
-
|
|
|
|
|
|
|
39 |
for att in d['Attributes']:
|
40 |
records.append([att['Name']]+att['Pattern'])
|
41 |
df = pd.DataFrame.from_records(records)
|
42 |
df.fillna('', inplace=True)
|
43 |
df_output = df
|
44 |
return df.to_html(header=False, index=False)
|
45 |
-
|
|
|
46 |
#Get error by matching the expected sequence with the recognized one and return the output in a format that can be visualized by the gradio HighlightedText box
|
47 |
def get_error(exp_list, rec_list):
|
48 |
exp_list = list(exp_list)
|
@@ -114,10 +127,15 @@ with gr.Blocks() as gui:
|
|
114 |
prompt = gr.Textbox(label='Prompt', value=select_prompt)
|
115 |
get_prompt = gr.Button("Get Prompt")
|
116 |
get_prompt.click(fn=select_prompt, outputs=prompt)
|
|
|
|
|
|
|
|
|
|
|
|
|
117 |
|
118 |
-
prompt_phonemes = gr.Textbox(label="Expected Phonemes", interactive=False)
|
119 |
get_phoneme = gr.Button("Get Phonemes")
|
120 |
-
get_phoneme.click(fn=phonemize_prompt, inputs=prompt, outputs=prompt_phonemes)
|
121 |
|
122 |
record_audio = gr.Audio(sources=["microphone","upload"], type="filepath")
|
123 |
att_list = gr.Dropdown(label="Select Attributes", choices=Attributes, value=['vowel', 'voiced', 'consonant'] ,multiselect=True)
|
@@ -125,7 +143,7 @@ with gr.Blocks() as gui:
|
|
125 |
|
126 |
recognition = gr.HTML(label='Output')
|
127 |
|
128 |
-
process.click(fn=recognizeAudio, inputs=[record_audio,att_list], outputs=recognition)
|
129 |
|
130 |
|
131 |
|
|
|
14 |
|
15 |
engine = transcriber.transcribe_SA(model_path='models/SA',verbose=0)
|
16 |
phonemizer = Phonemize.phonemization()
|
17 |
+
arpa2ipa = pd.read_csv('data/arpa2ipa.csv', sep='\\s+', header=None, names=['arpa','ipa'])
|
18 |
|
19 |
prompts = np.loadtxt('data/prompts.txt', dtype=str)
|
20 |
|
|
|
24 |
def select_prompt():
|
25 |
return random.choice(prompts)
|
26 |
|
27 |
+
def phonemize_prompt(prompt, is_ipa=False):
|
28 |
+
phonemes = phonemizer.cmu_phonemize(prompt)
|
29 |
+
phonemes = [ph.lower() for ph in phonemes]
|
30 |
+
if is_ipa:
|
31 |
+
phonemes = [arpa2ipa[arpa2ipa.arpa==ph].ipa.values[0] for ph in phonemes]
|
32 |
+
return ' '.join(phonemes)
|
33 |
|
34 |
def diff_fn():
|
35 |
return [('H','+'),('E','-'),('N',None),('\n', None),('F','-'),('Fgo','-'),('M','+')]
|
36 |
|
37 |
+
def recognizeAudio(audio_file, attributes, is_ipa=False):
|
38 |
#print(','.join(attributes))
|
39 |
global df_output
|
40 |
+
if is_ipa:
|
41 |
+
p2att_matrix = 'data/p2att_en_us-ipa.csv'
|
42 |
+
else:
|
43 |
+
p2att_matrix = 'data/p2att_en_us-arpa.csv'
|
44 |
+
output = engine.transcribe(audio_file, attributes= tuple(attributes), phonological_matrix_file=p2att_matrix, human_readable=False)
|
45 |
records = []
|
46 |
d = json.loads(output)
|
47 |
+
phonemes = d['Phoneme']['symbols']
|
48 |
+
#if is_ipa:
|
49 |
+
# phonemes = [arpa2ipa[arpa2ipa.arpa==ph].ipa.values[0] for ph in phonemes]
|
50 |
+
records.append(['Phoneme']+phonemes)
|
51 |
for att in d['Attributes']:
|
52 |
records.append([att['Name']]+att['Pattern'])
|
53 |
df = pd.DataFrame.from_records(records)
|
54 |
df.fillna('', inplace=True)
|
55 |
df_output = df
|
56 |
return df.to_html(header=False, index=False)
|
57 |
+
|
58 |
+
|
59 |
#Get error by matching the expected sequence with the recognized one and return the output in a format that can be visualized by the gradio HighlightedText box
|
60 |
def get_error(exp_list, rec_list):
|
61 |
exp_list = list(exp_list)
|
|
|
127 |
prompt = gr.Textbox(label='Prompt', value=select_prompt)
|
128 |
get_prompt = gr.Button("Get Prompt")
|
129 |
get_prompt.click(fn=select_prompt, outputs=prompt)
|
130 |
+
|
131 |
+
with gr.Row():
|
132 |
+
with gr.Column(scale=3):
|
133 |
+
prompt_phonemes = gr.Textbox(label="Expected Phonemes", interactive=False)
|
134 |
+
with gr.Column(scale=1):
|
135 |
+
is_ipa = gr.Checkbox(label="IPA")
|
136 |
|
|
|
137 |
get_phoneme = gr.Button("Get Phonemes")
|
138 |
+
get_phoneme.click(fn=phonemize_prompt, inputs=[prompt, is_ipa], outputs=prompt_phonemes)
|
139 |
|
140 |
record_audio = gr.Audio(sources=["microphone","upload"], type="filepath")
|
141 |
att_list = gr.Dropdown(label="Select Attributes", choices=Attributes, value=['vowel', 'voiced', 'consonant'] ,multiselect=True)
|
|
|
143 |
|
144 |
recognition = gr.HTML(label='Output')
|
145 |
|
146 |
+
process.click(fn=recognizeAudio, inputs=[record_audio,att_list, is_ipa], outputs=recognition)
|
147 |
|
148 |
|
149 |
|
data/arpa2ipa.csv
ADDED
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
aa ɑ
|
2 |
+
ae æ
|
3 |
+
ah ʌ
|
4 |
+
ao ɔ
|
5 |
+
aw aʊ
|
6 |
+
ay aɪ
|
7 |
+
eh ɛ
|
8 |
+
er ɝ
|
9 |
+
ey eɪ
|
10 |
+
ih ɪ
|
11 |
+
iy i
|
12 |
+
ow oʊ
|
13 |
+
oy ɔɪ
|
14 |
+
uh ʊ
|
15 |
+
uw u
|
16 |
+
b b
|
17 |
+
ch tʃ
|
18 |
+
d d
|
19 |
+
dh ð
|
20 |
+
f f
|
21 |
+
g g
|
22 |
+
hh h
|
23 |
+
jh dʒ
|
24 |
+
k k
|
25 |
+
l l
|
26 |
+
m m
|
27 |
+
n n
|
28 |
+
ng ŋ
|
29 |
+
p p
|
30 |
+
r ɹ
|
31 |
+
s s
|
32 |
+
sh ʃ
|
33 |
+
t t
|
34 |
+
th θ
|
35 |
+
v v
|
36 |
+
w w
|
37 |
+
y j
|
38 |
+
z z
|
39 |
+
zh ʒ
|
data/p2att_en_us-arpa.csv
CHANGED
@@ -1,42 +1,40 @@
|
|
1 |
-
Phoneme_arpa,alveolar,palatal,dental,glottal,labial,velar,anterior,posterior,retroflex,high,low,mid,front,back,central,consonant,sonorant,long,short,vowel,semivowel,fricative,nasal,stop,approximant,affricate,liquid,continuant,monophthong,diphthong,round,voiced,labiodental,obstruent,bilabial,coronal,dorsal
|
2 |
-
aa,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0
|
3 |
-
ae,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0
|
4 |
-
ah,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0
|
5 |
-
ao,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0
|
6 |
-
aw,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0
|
7 |
-
ay,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0
|
8 |
-
eh,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0
|
9 |
-
er,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,1,0,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0
|
10 |
-
ey,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0
|
11 |
-
ih,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0
|
12 |
-
iy,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0
|
13 |
-
ow,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0
|
14 |
-
oy,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0
|
15 |
-
uh,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0
|
16 |
-
uw,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0
|
17 |
-
b,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,0,0
|
18 |
-
ch,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0
|
19 |
-
d,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0
|
20 |
-
dh,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0
|
21 |
-
f,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,1,0,1,0
|
22 |
-
g,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,1
|
23 |
-
hh,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1
|
24 |
-
jh,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0
|
25 |
-
k,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1
|
26 |
-
l,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,1,1,0,0,0,1,0,0,0,1,0
|
27 |
-
m,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0
|
28 |
-
n,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
z,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0
|
42 |
-
zh,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0
|
|
|
1 |
+
Phoneme_arpa,alveolar,palatal,dental,glottal,labial,velar,anterior,posterior,retroflex,high,low,mid,front,back,central,consonant,sonorant,long,short,vowel,semivowel,fricative,nasal,stop,approximant,affricate,liquid,continuant,monophthong,diphthong,round,voiced,labiodental,obstruent,bilabial,coronal,dorsal
|
2 |
+
aa,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0
|
3 |
+
ae,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0
|
4 |
+
ah,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0
|
5 |
+
ao,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0
|
6 |
+
aw,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0
|
7 |
+
ay,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0
|
8 |
+
eh,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0
|
9 |
+
er,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,1,0,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0
|
10 |
+
ey,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0
|
11 |
+
ih,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0
|
12 |
+
iy,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0
|
13 |
+
ow,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0
|
14 |
+
oy,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0
|
15 |
+
uh,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0
|
16 |
+
uw,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0
|
17 |
+
b,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,0,0
|
18 |
+
ch,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0
|
19 |
+
d,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0
|
20 |
+
dh,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0
|
21 |
+
f,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,1,0,1,0
|
22 |
+
g,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,1
|
23 |
+
hh,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1
|
24 |
+
jh,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0
|
25 |
+
k,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1
|
26 |
+
l,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,1,1,0,0,0,1,0,0,0,1,0
|
27 |
+
m,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0
|
28 |
+
n,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0
|
29 |
+
ng,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,1
|
30 |
+
p,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0
|
31 |
+
r,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,1,1,0,0,0,1,0,0,0,1,0
|
32 |
+
s,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0
|
33 |
+
sh,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0
|
34 |
+
t,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0
|
35 |
+
th,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0
|
36 |
+
v,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,1,1,0,1,0
|
37 |
+
w,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,1,0,0
|
38 |
+
y,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,1,0
|
39 |
+
z,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0
|
40 |
+
zh,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0
|
|
|
|
data/p2att_en_us-ipa.csv
ADDED
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Phoneme_ipa,alveolar,palatal,dental,glottal,labial,velar,anterior,posterior,retroflex,high,low,mid,front,back,central,consonant,sonorant,long,short,vowel,semivowel,fricative,nasal,stop,approximant,affricate,liquid,continuant,monophthong,diphthong,round,voiced,labiodental,obstruent,bilabial,coronal,dorsal
|
2 |
+
ɑ,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0
|
3 |
+
æ,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0
|
4 |
+
ʌ,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0
|
5 |
+
ɔ,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0
|
6 |
+
aʊ,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0
|
7 |
+
aɪ,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0
|
8 |
+
ɛ,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0
|
9 |
+
ɝ,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,1,0,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0
|
10 |
+
eɪ,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0
|
11 |
+
ɪ,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0
|
12 |
+
i,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0
|
13 |
+
oʊ,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0
|
14 |
+
ɔɪ,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0
|
15 |
+
ʊ,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0
|
16 |
+
u,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0
|
17 |
+
b,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,0,0
|
18 |
+
tʃ,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0
|
19 |
+
d,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0
|
20 |
+
ð,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0
|
21 |
+
f,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,1,0,1,0
|
22 |
+
g,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,1
|
23 |
+
h,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1
|
24 |
+
dʒ,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0
|
25 |
+
k,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1
|
26 |
+
l,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,1,1,0,0,0,1,0,0,0,1,0
|
27 |
+
m,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0
|
28 |
+
n,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0
|
29 |
+
ŋ,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,1
|
30 |
+
p,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0
|
31 |
+
ɹ,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,1,1,0,0,0,1,0,0,0,1,0
|
32 |
+
s,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0
|
33 |
+
ʃ,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0
|
34 |
+
t,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0
|
35 |
+
θ,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0
|
36 |
+
v,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,1,1,0,1,0
|
37 |
+
w,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,1,0,0
|
38 |
+
j,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,1,0
|
39 |
+
z,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0
|
40 |
+
ʒ,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0
|