hysts HF staff commited on
Commit
c105fbb
1 Parent(s): 4a6c567

Update language list

Browse files
Files changed (3) hide show
  1. app.py +28 -11
  2. lang_list.py +336 -0
  3. mlg_config.json +0 -186
app.py CHANGED
@@ -1,4 +1,3 @@
1
- import json
2
  import os
3
 
4
  import gradio as gr
@@ -7,11 +6,15 @@ import torch
7
  import torchaudio
8
  from seamless_communication.models.inference.translator import Translator
9
 
 
 
 
 
 
 
 
10
  DESCRIPTION = "# SeamlessM4T"
11
 
12
- with open("./mlg_config.json", "r") as f:
13
- lang_idx_map = json.loads(f.read())
14
- LANGUAGES = lang_idx_map["multilingual"].keys()
15
 
16
  TASK_NAMES = [
17
  "S2ST (Speech to Speech translation)",
@@ -80,26 +83,40 @@ def update_audio_ui(audio_source: str) -> tuple[dict, dict]:
80
 
81
  def update_input_ui(task_name: str) -> tuple[dict, dict, dict, dict]:
82
  task_name = task_name.split()[0]
83
- if task_name in ["S2ST", "S2TT"]:
 
 
 
 
 
 
 
84
  return (
85
  gr.update(visible=True), # audio_box
86
  gr.update(visible=False), # input_text
87
  gr.update(visible=False), # source_language
88
- gr.update(visible=True), # target_language
 
 
 
 
 
 
 
89
  )
90
- elif task_name in ["T2ST", "T2TT"]:
91
  return (
92
  gr.update(visible=False), # audio_box
93
  gr.update(visible=True), # input_text
94
  gr.update(visible=True), # source_language
95
- gr.update(visible=True), # target_language
96
  )
97
  elif task_name == "ASR":
98
  return (
99
  gr.update(visible=True), # audio_box
100
  gr.update(visible=False), # input_text
101
  gr.update(visible=False), # source_language
102
- gr.update(visible=True), # target_language
103
  )
104
  else:
105
  raise ValueError(f"Unknown task: {task_name}")
@@ -137,13 +154,13 @@ with gr.Blocks(css="style.css") as demo:
137
  with gr.Row():
138
  source_language = gr.Dropdown(
139
  label="Source language",
140
- choices=LANGUAGES,
141
  value="eng",
142
  visible=False,
143
  )
144
  target_language = gr.Dropdown(
145
  label="Target language",
146
- choices=LANGUAGES,
147
  value="fra",
148
  )
149
  with gr.Row() as audio_box:
 
 
1
  import os
2
 
3
  import gradio as gr
 
6
  import torchaudio
7
  from seamless_communication.models.inference.translator import Translator
8
 
9
+ from lang_list import (
10
+ S2ST_TARGET_LANGUAGES,
11
+ S2TT_TARGET_LANGUAGES,
12
+ T2TT_TARGET_LANGUAGES,
13
+ TEXT_SOURCE_LANGUAGES,
14
+ )
15
+
16
  DESCRIPTION = "# SeamlessM4T"
17
 
 
 
 
18
 
19
  TASK_NAMES = [
20
  "S2ST (Speech to Speech translation)",
 
83
 
84
  def update_input_ui(task_name: str) -> tuple[dict, dict, dict, dict]:
85
  task_name = task_name.split()[0]
86
+ if task_name == "S2ST":
87
+ return (
88
+ gr.update(visible=True), # audio_box
89
+ gr.update(visible=False), # input_text
90
+ gr.update(visible=False), # source_language
91
+ gr.update(visible=True, choices=S2ST_TARGET_LANGUAGES, value="fra"), # target_language
92
+ )
93
+ elif task_name == "S2TT":
94
  return (
95
  gr.update(visible=True), # audio_box
96
  gr.update(visible=False), # input_text
97
  gr.update(visible=False), # source_language
98
+ gr.update(visible=True, choices=S2TT_TARGET_LANGUAGES, value="fra"), # target_language
99
+ )
100
+ elif task_name == "T2ST":
101
+ return (
102
+ gr.update(visible=False), # audio_box
103
+ gr.update(visible=True), # input_text
104
+ gr.update(visible=True), # source_language
105
+ gr.update(visible=True, choices=S2ST_TARGET_LANGUAGES, value="fra"), # target_language
106
  )
107
+ elif task_name == "T2TT":
108
  return (
109
  gr.update(visible=False), # audio_box
110
  gr.update(visible=True), # input_text
111
  gr.update(visible=True), # source_language
112
+ gr.update(visible=True, choices=T2TT_TARGET_LANGUAGES, value="fra"), # target_language
113
  )
114
  elif task_name == "ASR":
115
  return (
116
  gr.update(visible=True), # audio_box
117
  gr.update(visible=False), # input_text
118
  gr.update(visible=False), # source_language
119
+ gr.update(visible=True, choices=S2TT_TARGET_LANGUAGES, value="fra"), # target_language
120
  )
121
  else:
122
  raise ValueError(f"Unknown task: {task_name}")
 
154
  with gr.Row():
155
  source_language = gr.Dropdown(
156
  label="Source language",
157
+ choices=TEXT_SOURCE_LANGUAGES,
158
  value="eng",
159
  visible=False,
160
  )
161
  target_language = gr.Dropdown(
162
  label="Target language",
163
+ choices=S2ST_TARGET_LANGUAGES,
164
  value="fra",
165
  )
166
  with gr.Row() as audio_box:
lang_list.py ADDED
@@ -0,0 +1,336 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Source langs: S2ST / S2TT / ASR don't need source lang
2
+ # T2TT / T2ST use this
3
+ TEXT_SOURCE_LANGUAGES = [
4
+ "afr",
5
+ "amh",
6
+ "arb",
7
+ "ary",
8
+ "arz",
9
+ "asm",
10
+ "azj",
11
+ "bel",
12
+ "ben",
13
+ "bos",
14
+ "bul",
15
+ "cat",
16
+ "ceb",
17
+ "ces",
18
+ "ckb",
19
+ "cmn",
20
+ "zho_Hant",
21
+ "cym",
22
+ "dan",
23
+ "deu",
24
+ "ell",
25
+ "eng",
26
+ "est",
27
+ "eus",
28
+ "fin",
29
+ "fra",
30
+ "fuv",
31
+ "gaz",
32
+ "gle",
33
+ "glg",
34
+ "guj",
35
+ "heb",
36
+ "hin",
37
+ "hrv",
38
+ "hun",
39
+ "hye",
40
+ "ibo",
41
+ "ind",
42
+ "isl",
43
+ "ita",
44
+ "jav",
45
+ "jpn",
46
+ "kan",
47
+ "kat",
48
+ "kaz",
49
+ "khk",
50
+ "khm",
51
+ "kir",
52
+ "kor",
53
+ "lao",
54
+ "lit",
55
+ "lug",
56
+ "luo",
57
+ "lvs",
58
+ "mai",
59
+ "mal",
60
+ "mar",
61
+ "mkd",
62
+ "mlt",
63
+ "mni",
64
+ "mya",
65
+ "nld",
66
+ "nno",
67
+ "nob",
68
+ "npi",
69
+ "nya",
70
+ "ory",
71
+ "pan",
72
+ "pbt",
73
+ "pes",
74
+ "pol",
75
+ "por",
76
+ "ron",
77
+ "rus",
78
+ "sat",
79
+ "slk",
80
+ "slv",
81
+ "sna",
82
+ "snd",
83
+ "som",
84
+ "spa",
85
+ "srp",
86
+ "swe",
87
+ "swh",
88
+ "tam",
89
+ "tel",
90
+ "tgk",
91
+ "tgl",
92
+ "tha",
93
+ "tur",
94
+ "ukr",
95
+ "urd",
96
+ "uzn",
97
+ "vie",
98
+ "yor",
99
+ "yue",
100
+ "zsm",
101
+ "zul",
102
+ ]
103
+
104
+ # Target langs:
105
+ # S2ST / T2ST
106
+ S2ST_TARGET_LANGUAGES = [
107
+ "eng",
108
+ "arb",
109
+ "ben",
110
+ "cat",
111
+ "ces",
112
+ "cmn",
113
+ "cym",
114
+ "dan",
115
+ "deu",
116
+ "est",
117
+ "fin",
118
+ "fra",
119
+ "hin",
120
+ "ind",
121
+ "ita",
122
+ "jpn",
123
+ "kor",
124
+ "mlt",
125
+ "nld",
126
+ "pes",
127
+ "pol",
128
+ "por",
129
+ "ron",
130
+ "rus",
131
+ "slk",
132
+ "spa",
133
+ "swe",
134
+ "swh",
135
+ "tel",
136
+ "tgl/fil",
137
+ "tha",
138
+ "tur",
139
+ "ukr",
140
+ "urd",
141
+ "uzn",
142
+ "vie",
143
+ ]
144
+ # S2TT / ASR
145
+ S2TT_TARGET_LANGUAGES = [
146
+ "amh",
147
+ "arb",
148
+ "asm",
149
+ "azj",
150
+ "bel",
151
+ "ben",
152
+ "bos",
153
+ "bul",
154
+ "cat",
155
+ "ceb",
156
+ "ces",
157
+ "ckb",
158
+ "cmn",
159
+ "cym",
160
+ "dan",
161
+ "deu",
162
+ "ell",
163
+ "eng",
164
+ "est",
165
+ "fin",
166
+ "fra",
167
+ "ful",
168
+ "gaz",
169
+ "gle",
170
+ "glg",
171
+ "guj",
172
+ "heb",
173
+ "hin",
174
+ "hrv",
175
+ "hun",
176
+ "hye",
177
+ "ibo",
178
+ "ind",
179
+ "isl",
180
+ "ita",
181
+ "jav",
182
+ "jpn",
183
+ "kan",
184
+ "kat",
185
+ "kaz",
186
+ "khk",
187
+ "khm",
188
+ "kir",
189
+ "kor",
190
+ "lao",
191
+ "lit",
192
+ "lug",
193
+ "luo",
194
+ "lvs",
195
+ "mal",
196
+ "mar",
197
+ "mkd",
198
+ "mlt",
199
+ "mya",
200
+ "nld",
201
+ "nob",
202
+ "npi",
203
+ "nya",
204
+ "ory",
205
+ "pan",
206
+ "pbt",
207
+ "pes",
208
+ "pol",
209
+ "por",
210
+ "ron",
211
+ "rus",
212
+ "slk",
213
+ "slv",
214
+ "sna",
215
+ "snd",
216
+ "som",
217
+ "spa",
218
+ "srp",
219
+ "swe",
220
+ "swh",
221
+ "tam",
222
+ "tel",
223
+ "tgk",
224
+ "tgl",
225
+ "tha",
226
+ "tur",
227
+ "ukr",
228
+ "urd",
229
+ "uzn",
230
+ "vie",
231
+ "yor",
232
+ "yue",
233
+ "zlm",
234
+ "zul",
235
+ ]
236
+ # T2TT
237
+ T2TT_TARGET_LANGUAGES = [
238
+ "afr",
239
+ "amh",
240
+ "arb",
241
+ "ary",
242
+ "arz",
243
+ "asm",
244
+ "azj",
245
+ "bel",
246
+ "ben",
247
+ "bos",
248
+ "bul",
249
+ "cat",
250
+ "ceb",
251
+ "ces",
252
+ "ckb",
253
+ "cmn",
254
+ "cym",
255
+ "dan",
256
+ "deu",
257
+ "ell",
258
+ "eng",
259
+ "est",
260
+ "eus",
261
+ "fin",
262
+ "fra",
263
+ "fuv",
264
+ "gaz",
265
+ "gle",
266
+ "glg",
267
+ "guj",
268
+ "heb",
269
+ "hin",
270
+ "hrv",
271
+ "hun",
272
+ "hye",
273
+ "ibo",
274
+ "ind",
275
+ "isl",
276
+ "ita",
277
+ "jav",
278
+ "jpn",
279
+ "kan",
280
+ "kat",
281
+ "kaz",
282
+ "khk",
283
+ "khm",
284
+ "kir",
285
+ "kor",
286
+ "lao",
287
+ "lit",
288
+ "lug",
289
+ "luo",
290
+ "lvs",
291
+ "mai",
292
+ "mal",
293
+ "mar",
294
+ "mkd",
295
+ "mlt",
296
+ "mni",
297
+ "mya",
298
+ "nld",
299
+ "nno",
300
+ "nob",
301
+ "npi",
302
+ "nya",
303
+ "ory",
304
+ "pan",
305
+ "pbt",
306
+ "pes",
307
+ "pol",
308
+ "por",
309
+ "ron",
310
+ "rus",
311
+ "sat",
312
+ "slk",
313
+ "slv",
314
+ "sna",
315
+ "snd",
316
+ "som",
317
+ "spa",
318
+ "srp",
319
+ "swe",
320
+ "swh",
321
+ "tam",
322
+ "tel",
323
+ "tgk",
324
+ "tgl",
325
+ "tha",
326
+ "tur",
327
+ "ukr",
328
+ "urd",
329
+ "uzn",
330
+ "vie",
331
+ "yor",
332
+ "yue",
333
+ "zho_Hant",
334
+ "zsm",
335
+ "zul",
336
+ ]
mlg_config.json DELETED
@@ -1,186 +0,0 @@
1
- {
2
- "multilingual": {
3
- "arb": 0,
4
- "ben": 1,
5
- "cat": 2,
6
- "ces": 3,
7
- "cmn": 4,
8
- "cym": 5,
9
- "dan": 6,
10
- "deu": 7,
11
- "eng": 8,
12
- "est": 9,
13
- "fin": 10,
14
- "fra": 11,
15
- "hin": 12,
16
- "ind": 13,
17
- "ita": 14,
18
- "jpn": 15,
19
- "kor": 16,
20
- "mlt": 17,
21
- "nld": 18,
22
- "pes": 19,
23
- "pol": 20,
24
- "por": 21,
25
- "ron": 22,
26
- "rus": 23,
27
- "slk": 24,
28
- "spa": 25,
29
- "swe": 26,
30
- "swh": 27,
31
- "tel": 28,
32
- "tgl": 29,
33
- "tha": 30,
34
- "tur": 31,
35
- "ukr": 32,
36
- "urd": 33,
37
- "uzn": 34,
38
- "vie": 35
39
- },
40
- "multispkr": {
41
- "arb": [
42
- 0
43
- ],
44
- "ben": [
45
- 2,
46
- 1
47
- ],
48
- "cat": [
49
- 3
50
- ],
51
- "ces": [
52
- 4
53
- ],
54
- "cmn": [
55
- 5
56
- ],
57
- "cym": [
58
- 6
59
- ],
60
- "dan": [
61
- 7,
62
- 8
63
- ],
64
- "deu": [
65
- 9
66
- ],
67
- "eng": [
68
- 10
69
- ],
70
- "est": [
71
- 11,
72
- 12,
73
- 13
74
- ],
75
- "fin": [
76
- 14
77
- ],
78
- "fra": [
79
- 15
80
- ],
81
- "hin": [
82
- 16
83
- ],
84
- "ind": [
85
- 17,
86
- 24,
87
- 18,
88
- 20,
89
- 19,
90
- 21,
91
- 23,
92
- 27,
93
- 26,
94
- 22,
95
- 25
96
- ],
97
- "ita": [
98
- 29,
99
- 28
100
- ],
101
- "jpn": [
102
- 30
103
- ],
104
- "kor": [
105
- 31
106
- ],
107
- "mlt": [
108
- 32,
109
- 33,
110
- 34
111
- ],
112
- "nld": [
113
- 35
114
- ],
115
- "pes": [
116
- 36
117
- ],
118
- "pol": [
119
- 37
120
- ],
121
- "por": [
122
- 38
123
- ],
124
- "ron": [
125
- 39
126
- ],
127
- "rus": [
128
- 40
129
- ],
130
- "slk": [
131
- 41
132
- ],
133
- "spa": [
134
- 42
135
- ],
136
- "swe": [
137
- 43,
138
- 45,
139
- 44
140
- ],
141
- "swh": [
142
- 46,
143
- 48,
144
- 47
145
- ],
146
- "tel": [
147
- 49
148
- ],
149
- "tgl": [
150
- 50
151
- ],
152
- "tha": [
153
- 51,
154
- 54,
155
- 55,
156
- 52,
157
- 53
158
- ],
159
- "tur": [
160
- 58,
161
- 57,
162
- 56
163
- ],
164
- "ukr": [
165
- 59
166
- ],
167
- "urd": [
168
- 60,
169
- 61,
170
- 62
171
- ],
172
- "uzn": [
173
- 63,
174
- 64,
175
- 65
176
- ],
177
- "vie": [
178
- 66,
179
- 67,
180
- 70,
181
- 71,
182
- 68,
183
- 69
184
- ]
185
- }
186
- }