ANYANTUDRE
commited on
Commit
·
09b20e1
1
Parent(s):
138a0f7
ameliorations code & texte
Browse files- app.py +57 -58
- goai_helpers/goai_tts.py +1 -1
- goai_helpers/goai_ttt_tts_pipeline.py +2 -2
app.py
CHANGED
@@ -11,21 +11,50 @@ login(token=auth_token)
|
|
11 |
|
12 |
# list all files in the ./audios directory for the dropdown
|
13 |
AUDIO_FILES = [f for f in os.listdir('./exples_voix') if os.path.isfile(os.path.join('./exples_voix', f))]
|
14 |
-
MODELES_TTS = ["ArissBandoss/coqui-tts-moore-V1", "ArissBandoss/mms-tts-mos-
|
15 |
-
MODELES_ASR = ["ArissBandoss/whisper-small-mos",
|
|
|
|
|
16 |
LANGUAGES = ["Automatic Detection"]
|
17 |
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
|
|
|
|
|
|
|
|
|
|
23 |
</div>
|
24 |
-
|
25 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
</div>
|
27 |
-
|
28 |
-
"""
|
29 |
|
30 |
|
31 |
demo = gr.Blocks(theme=gr.themes.Soft())
|
@@ -33,50 +62,19 @@ demo = gr.Blocks(theme=gr.themes.Soft())
|
|
33 |
goai_traduction_if = gr.Interface(
|
34 |
fn=goai_traduction.goai_traduction,
|
35 |
inputs=[
|
36 |
-
gr.Textbox(label="Texte", placeholder="
|
37 |
gr.Dropdown(label="Langue source", choices=["fra_Latn", "mos_Latn"], value='fra_Latn'),
|
38 |
gr.Dropdown(label="Langue cible", choices=["fra_Latn", "mos_Latn"], value='mos_Latn')
|
39 |
],
|
40 |
-
outputs=["
|
41 |
examples=[["Yʋʋm a wãn la b kẽesd biig lekolle?", "mos_Latn", "fra_Latn"],
|
42 |
["Zak-soab la kasma.", "mos_Latn", "fra_Latn"],
|
43 |
["Le gouvernement avait pris des mesures louables par rapport à l’augmentation des prix de certaines denrées alimentaires.", "fra_Latn", "mos_Latn"],
|
44 |
["Comme lors du match face à la Côte d’Ivoire, c’est sur un coup de pied arrêté que les Etalons encaissent leur but.", "fra_Latn", "mos_Latn"],
|
45 |
],
|
46 |
cache_examples=False,
|
47 |
-
title="Traduction Mooré-Francais",
|
48 |
-
description=
|
49 |
-
)
|
50 |
-
|
51 |
-
goai_stt_if = gr.Interface(
|
52 |
-
fn=goai_stt2.transcribe,
|
53 |
-
inputs=[
|
54 |
-
gr.Audio(sources=["microphone", "upload"], type="filepath"),
|
55 |
-
gr.Dropdown(
|
56 |
-
choices=MODELES_ASR,
|
57 |
-
value="ArissBandoss/whisper-small-mos",
|
58 |
-
label="Model Name"
|
59 |
-
),
|
60 |
-
gr.Dropdown(
|
61 |
-
choices=LANGUAGES,
|
62 |
-
value="Automatic Detection", # + sorted(get_language_names())
|
63 |
-
label="Language",
|
64 |
-
interactive = True,
|
65 |
-
),
|
66 |
-
gr.Slider(label="Batch Size", minimum=1, maximum=32, value=8, step=1),
|
67 |
-
gr.Slider(label="Chunk Length (s)", minimum=1, maximum=60, value=17.5, step=0.1),
|
68 |
-
gr.Slider(label="Stride Length (s)", minimum=1, maximum=30, value=1, step=0.1),
|
69 |
-
],
|
70 |
-
outputs=[gr.Textbox(label="Output"), gr.File(label="Download Files")],
|
71 |
-
examples=[["./audios/example1.mp3", "a ye ligdi"],
|
72 |
-
["./audios/example2.mp3", "zoe nimbãanega"],
|
73 |
-
["./audios/example3.mp3", "zãng-zãnga"],
|
74 |
-
["./audios/example4.mp3", "yõk foto"]
|
75 |
-
],
|
76 |
-
cache_examples=False,
|
77 |
-
title="Mooré ASR",
|
78 |
-
description=DESCRIPTION,
|
79 |
-
flagging_mode="auto",
|
80 |
)
|
81 |
|
82 |
goai_ttt_tts_pipeline_if = gr.Interface(
|
@@ -107,14 +105,14 @@ goai_ttt_tts_pipeline_if = gr.Interface(
|
|
107 |
gr.Text(label="Texte traduit"),
|
108 |
gr.Audio(label="Audio généré", format="wav"),
|
109 |
],
|
110 |
-
examples=[["Ils vont bien, merci. Mon père travaille dur dans les champs et ma mère est toujours occupée à la maison.", "exple_voix_masculine.wav",
|
111 |
-
["La finale s’est jouée en présence du Président du Faso, Ibrahim Traoré.", "exple_voix_feminine.wav",
|
112 |
-
["Les enfants apprennent les danses traditionnelles de leurs ancêtres, jouent à des jeux traditionnels dans les rues et aident leurs parents dans les tâches quotidiennes.", "exple_voix_masculine.wav",
|
113 |
-
["Ils achetèrent des troupeaux, firent construire des cases, parcoururent tout le pays pour offrir à leur mère et à leurs femmes les plus beaux bijoux, les plus belles étoffes.", "exple_voix_feminine.wav",
|
114 |
],
|
115 |
cache_examples=False,
|
116 |
title="Mooré TTS & Traduction",
|
117 |
-
description=
|
118 |
)
|
119 |
|
120 |
|
@@ -141,21 +139,22 @@ goai_stt_ttt_pipeline_if = gr.Interface(
|
|
141 |
gr.Textbox(label="Texte Mooré"),
|
142 |
gr.Textbox(label="Texte Francais"),
|
143 |
],
|
144 |
-
examples=[["./audios/example1.mp3", "
|
145 |
-
["./audios/example2.mp3", "
|
146 |
-
["./audios/example3.mp3", "
|
147 |
-
["./audios/example4.mp3", "
|
148 |
],
|
149 |
cache_examples=False,
|
150 |
title="Mooré ASR & Traduction",
|
151 |
-
description=
|
152 |
flagging_mode="auto",
|
153 |
)
|
154 |
|
|
|
155 |
with demo:
|
156 |
gr.TabbedInterface(
|
157 |
-
interface_list=[goai_traduction_if,
|
158 |
-
tab_names=["Traduction Mooré-Francais", "Mooré
|
159 |
)
|
160 |
|
161 |
demo.queue().launch(ssr_mode=False)
|
|
|
11 |
|
12 |
# list all files in the ./audios directory for the dropdown
|
13 |
AUDIO_FILES = [f for f in os.listdir('./exples_voix') if os.path.isfile(os.path.join('./exples_voix', f))]
|
14 |
+
MODELES_TTS = ["ArissBandoss/coqui-tts-moore-V1", "ArissBandoss/mms-tts-mos-V2"]
|
15 |
+
MODELES_ASR = ["ArissBandoss/whisper-small-mos",
|
16 |
+
#"openai/whisper-large-v3-turbo"
|
17 |
+
]
|
18 |
LANGUAGES = ["Automatic Detection"]
|
19 |
|
20 |
+
DESCRIPTION_TTT = """<div style="display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap;">
|
21 |
+
<div style="flex: 1; min-width: 250px;">
|
22 |
+
Cette 1ère interface sert à démontrer les performances du modèle d'IA de traduction de la <b>langue Mooré</b> vers la langue <b>Francaise</b> et vice-versa.
|
23 |
+
Ce modèle a été concu, développé et maintenu par <b>GO AI CORP</b> et la version disponible en test est celle à 700 millions de paramètres.
|
24 |
+
<br><br>
|
25 |
+
Pour plus de détails sur ce projet ou pour toute collaboration, veuillez prendre attache avec nous via WhatsApp au <b>+226 66 62 83 03</b>.
|
26 |
+
</div>
|
27 |
+
<div style="flex-shrink: 0; min-width: 150px; text-align: center;">
|
28 |
+
<img src="https://github.com/ANYANTUDRE/Stage-IA-Selever-GO-AI-Corp/blob/main/img/goaicorp-logo2.jpg?raw=true" width="300px" style="max-width: 100%; height: auto;">
|
29 |
+
</div>
|
30 |
</div>
|
31 |
+
"""
|
32 |
+
|
33 |
+
DESCRIPTION_TTS = """<div style="display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap;">
|
34 |
+
<div style="flex: 1; min-width: 250px;">
|
35 |
+
Cette 2ème interface sert à démontrer les performances des modèles de <b>synthèse vocale</b> du <b>Mooré</b> qui ont été concus, développés et maintenus par <b>GO AI CORP</b>.
|
36 |
+
Pour l'instant, deux modèles sont mis à disposition pour tests.
|
37 |
+
<br><br>
|
38 |
+
Pour plus de détails sur ce projet ou pour toute collaboration, veuillez prendre attache avec nous via WhatsApp au <b>+226 66 62 83 03</b>.
|
39 |
+
</div>
|
40 |
+
<div style="flex-shrink: 0; min-width: 150px; text-align: center;">
|
41 |
+
<img src="https://github.com/ANYANTUDRE/Stage-IA-Selever-GO-AI-Corp/blob/main/img/goaicorp-logo2.jpg?raw=true" width="300px" style="max-width: 100%; height: auto;">
|
42 |
+
</div>
|
43 |
+
</div>
|
44 |
+
"""
|
45 |
+
|
46 |
+
DESCRIPTION_STT = """<div style="display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap;">
|
47 |
+
<div style="flex: 1; min-width: 250px;">
|
48 |
+
Cette 3ème interface sert à démontrer les performances des modèles de <b>transcription</b> du <b>Mooré</b> qui ont été concus, développés et maintenus par <b>GO AI CORP</b>.
|
49 |
+
Pour l'instant, deux modèles sont mis à disposition pour tests.
|
50 |
+
<br><br>
|
51 |
+
Pour plus de détails sur ce projet ou pour toute collaboration, veuillez prendre attache avec nous via WhatsApp au <b>+226 66 62 83 03</b>.
|
52 |
+
</div>
|
53 |
+
<div style="flex-shrink: 0; min-width: 150px; text-align: center;">
|
54 |
+
<img src="https://github.com/ANYANTUDRE/Stage-IA-Selever-GO-AI-Corp/blob/main/img/goaicorp-logo2.jpg?raw=true" width="300px" style="max-width: 100%; height: auto;">
|
55 |
+
</div>
|
56 |
</div>
|
57 |
+
"""
|
|
|
58 |
|
59 |
|
60 |
demo = gr.Blocks(theme=gr.themes.Soft())
|
|
|
62 |
goai_traduction_if = gr.Interface(
|
63 |
fn=goai_traduction.goai_traduction,
|
64 |
inputs=[
|
65 |
+
gr.Textbox(label="Texte à traduire", placeholder="La, pagã sɩd talla raadã n tɩ lebs kãangã pʋgẽ, n na n paam a menga. Rẽ wã yĩnga, sẽn kisa, sɩd kisame. Sẽn ka maande, sɩd ka maand ye."),
|
66 |
gr.Dropdown(label="Langue source", choices=["fra_Latn", "mos_Latn"], value='fra_Latn'),
|
67 |
gr.Dropdown(label="Langue cible", choices=["fra_Latn", "mos_Latn"], value='mos_Latn')
|
68 |
],
|
69 |
+
outputs=["Texte traduit"],
|
70 |
examples=[["Yʋʋm a wãn la b kẽesd biig lekolle?", "mos_Latn", "fra_Latn"],
|
71 |
["Zak-soab la kasma.", "mos_Latn", "fra_Latn"],
|
72 |
["Le gouvernement avait pris des mesures louables par rapport à l’augmentation des prix de certaines denrées alimentaires.", "fra_Latn", "mos_Latn"],
|
73 |
["Comme lors du match face à la Côte d’Ivoire, c’est sur un coup de pied arrêté que les Etalons encaissent leur but.", "fra_Latn", "mos_Latn"],
|
74 |
],
|
75 |
cache_examples=False,
|
76 |
+
title="Traduction Mooré-Francais, Francais-Mooré",
|
77 |
+
description=DESCRIPTION_TTT
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
)
|
79 |
|
80 |
goai_ttt_tts_pipeline_if = gr.Interface(
|
|
|
105 |
gr.Text(label="Texte traduit"),
|
106 |
gr.Audio(label="Audio généré", format="wav"),
|
107 |
],
|
108 |
+
examples=[["Ils vont bien, merci. Mon père travaille dur dans les champs et ma mère est toujours occupée à la maison.", "exple_voix_masculine.wav", "ArissBandoss/coqui-tts-moore-V1"],
|
109 |
+
["La finale s’est jouée en présence du Président du Faso, Ibrahim Traoré.", "exple_voix_feminine.wav", "ArissBandoss/coqui-tts-moore-V1"],
|
110 |
+
["Les enfants apprennent les danses traditionnelles de leurs ancêtres, jouent à des jeux traditionnels dans les rues et aident leurs parents dans les tâches quotidiennes.", "exple_voix_masculine.wav", "ArissBandoss/coqui-tts-moore-V1"],
|
111 |
+
["Ils achetèrent des troupeaux, firent construire des cases, parcoururent tout le pays pour offrir à leur mère et à leurs femmes les plus beaux bijoux, les plus belles étoffes.", "exple_voix_feminine.wav", "ArissBandoss/coqui-tts-moore-V1"]
|
112 |
],
|
113 |
cache_examples=False,
|
114 |
title="Mooré TTS & Traduction",
|
115 |
+
description=DESCRIPTION_TTS,
|
116 |
)
|
117 |
|
118 |
|
|
|
139 |
gr.Textbox(label="Texte Mooré"),
|
140 |
gr.Textbox(label="Texte Francais"),
|
141 |
],
|
142 |
+
examples=[["./audios/example1.mp3", "ArissBandoss/whisper-small-mos"],
|
143 |
+
["./audios/example2.mp3", "ArissBandoss/whisper-small-mos"],
|
144 |
+
["./audios/example3.mp3", "ArissBandoss/whisper-small-mos"],
|
145 |
+
["./audios/example4.mp3", "ArissBandoss/whisper-small-mos"]
|
146 |
],
|
147 |
cache_examples=False,
|
148 |
title="Mooré ASR & Traduction",
|
149 |
+
description=DESCRIPTION_STT,
|
150 |
flagging_mode="auto",
|
151 |
)
|
152 |
|
153 |
+
|
154 |
with demo:
|
155 |
gr.TabbedInterface(
|
156 |
+
interface_list=[goai_traduction_if, goai_ttt_tts_pipeline_if, goai_stt_ttt_pipeline_if],
|
157 |
+
tab_names=["Traduction Mooré-Francais", "Mooré TTS & Traduction", "Mooré ASR & Traduction"]
|
158 |
)
|
159 |
|
160 |
demo.queue().launch(ssr_mode=False)
|
goai_helpers/goai_tts.py
CHANGED
@@ -32,7 +32,7 @@ def goai_tts(texte):
|
|
32 |
start_time = time.time()
|
33 |
|
34 |
# Charger le modèle TTS avec le token d'authentification
|
35 |
-
model_id = "ArissBandoss/mms-tts-mos-
|
36 |
synthesiser = pipeline("text-to-speech", model_id, device=device)
|
37 |
|
38 |
# Inférence
|
|
|
32 |
start_time = time.time()
|
33 |
|
34 |
# Charger le modèle TTS avec le token d'authentification
|
35 |
+
model_id = "ArissBandoss/mms-tts-mos-V2"
|
36 |
synthesiser = pipeline("text-to-speech", model_id, device=device)
|
37 |
|
38 |
# Inférence
|
goai_helpers/goai_ttt_tts_pipeline.py
CHANGED
@@ -21,7 +21,7 @@ def goai_many_tts(
|
|
21 |
reference_audio=None,
|
22 |
):
|
23 |
|
24 |
-
if
|
25 |
# TTS pipeline
|
26 |
tts = MooreTTS(tts_model)
|
27 |
reference_speaker = os.path.join("./exples_voix", reference_speaker)
|
@@ -34,7 +34,7 @@ def goai_many_tts(
|
|
34 |
|
35 |
return sampling_rate, audio_array.numpy()
|
36 |
|
37 |
-
elif
|
38 |
sample_rate, audio_data = goai_tts(text)
|
39 |
return sample_rate, audio_data
|
40 |
|
|
|
21 |
reference_audio=None,
|
22 |
):
|
23 |
|
24 |
+
if "coqui" in tts_model:
|
25 |
# TTS pipeline
|
26 |
tts = MooreTTS(tts_model)
|
27 |
reference_speaker = os.path.join("./exples_voix", reference_speaker)
|
|
|
34 |
|
35 |
return sampling_rate, audio_array.numpy()
|
36 |
|
37 |
+
elif "mms" in tts_model:
|
38 |
sample_rate, audio_data = goai_tts(text)
|
39 |
return sample_rate, audio_data
|
40 |
|