File size: 8,859 Bytes
78d1101 21f74cc 78d1101 5966f2d 1c7cbff 78d1101 a954412 21f74cc 6151eff 6adc46a 5966f2d f9ec5b7 09b20e1 58f88c8 09b20e1 21f74cc 09b20e1 58f88c8 09b20e1 58f88c8 09b20e1 21f74cc 09b20e1 78d1101 7c7161e 78d1101 1c7cbff d7371fa 1c7cbff 09b20e1 1c7cbff eaf8753 1c7cbff 09b20e1 78d1101 1c7cbff 21f74cc 1c7cbff 701a921 1c7cbff 6151eff 1c7cbff 701a921 1c7cbff 21f74cc 701a921 1c7cbff 21f74cc a954412 09b20e1 21f74cc f0dafb8 09b20e1 21f74cc 1c7cbff 7c7161e 21f74cc 701a921 f9ec5b7 5966f2d f9ec5b7 701a921 f9ec5b7 1c7cbff 21f74cc f0dafb8 701a921 f0dafb8 a954412 1c7cbff 21f74cc f0dafb8 09b20e1 1c7cbff 21f74cc 09b20e1 78d1101 09b20e1 78d1101 1c7cbff |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 |
import gradio as gr
from huggingface_hub import login
import os
#from languages import get_language_names
from goai_helpers import goai_traduction, goai_stt, goai_stt2, goai_tts, goai_tts2, goai_ttt_tts_pipeline, goai_stt_ttt_pipeline
auth_token = os.getenv('HF_SPACE_TOKEN')
login(token=auth_token)
# list all files in the ./exples_voix directory for the dropdown
AUDIO_FILES = [f for f in os.listdir('./exples_voix') if os.path.isfile(os.path.join('./exples_voix', f))]
MODELES_TTS = ["ArissBandoss/coqui-tts-moore-V1", "ArissBandoss/coqui-tts-moore-V3", "ArissBandoss/mms-tts-mos-V2"]
MODELES_ASR = ["ArissBandoss/whisper-small-mos", "ArissBandoss/whisper-large-v3-turbo-mos"]
LANGUAGES = ["Automatic Detection"]
DESCRIPTION_TTT = """<div style="display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap;">
<div style="flex: 1; min-width: 250px;">
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.
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.
<br><br>
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>.
</div>
<div style="flex-shrink: 0; min-width: 150px; text-align: center;">
<img src="https://goaicorporation.org/assets/images/logo.png" width="300px" style="max-width: 100%; height: auto;">
</div>
</div>
"""
DESCRIPTION_TTS = """<div style="display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap;">
<div style="flex: 1; min-width: 250px;">
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>.
Pour l'instant, deux modèles sont mis à disposition pour tests.
<br><br>
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>.
</div>
<div style="flex-shrink: 0; min-width: 150px; text-align: center;">
<img src="https://goaicorporation.org/assets/images/logo.png" width="300px" style="max-width: 100%; height: auto;">
</div>
</div>
"""
DESCRIPTION_STT = """<div style="display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap;">
<div style="flex: 1; min-width: 250px;">
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>.
Pour l'instant, deux modèles sont mis à disposition pour tests.
<br><br>
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>.
</div>
<div style="flex-shrink: 0; min-width: 150px; text-align: center;">
<img src="https://goaicorporation.org/assets/images/logo.png" width="300px" style="max-width: 100%; height: auto;">
</div>
</div>
"""
demo = gr.Blocks(theme=gr.themes.Soft())
goai_traduction_if = gr.Interface(
fn=goai_traduction.goai_traduction,
inputs=[
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."),
gr.Dropdown(label="Langue source", choices=["fra_Latn", "mos_Latn"], value='fra_Latn'),
gr.Dropdown(label="Langue cible", choices=["fra_Latn", "mos_Latn"], value='mos_Latn')
],
outputs=gr.Text(label="Texte traduit"),
examples=[["Yʋʋm a wãn la b kẽesd biig lekolle?", "mos_Latn", "fra_Latn"],
["Zak-soab la kasma.", "mos_Latn", "fra_Latn"],
["Le gouvernement avait pris des mesures louables par rapport à l’augmentation des prix de certaines denrées alimentaires.", "fra_Latn", "mos_Latn"],
["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"],
],
cache_examples=False,
title="Traduction Mooré-Francais, Francais-Mooré",
description=DESCRIPTION_TTT
)
goai_ttt_tts_pipeline_if = gr.Interface(
fn=goai_ttt_tts_pipeline.goai_ttt_tts,
inputs=[
gr.Text(
label="Texte à traduire (en Francais)",
lines=3,
value="Par cette ouverture, le centre se veut contribuer à la formation professionnelle des jeunes et des femmes, renforcer les capacités des acteurs du monde agricole, et contribuer à la lutte contre le chômage au Burkina Faso."
),
gr.Dropdown(
label="Modèles de TTS",
choices=MODELES_TTS,
value="ArissBandoss/coqui-tts-moore-V3"
),
gr.Dropdown(
label="Voix",
choices=AUDIO_FILES,
value="exple_voix_masculine.wav"
),
gr.Audio(
label="Cloner votre voix (optionel et uniquement pour le 1er modèle proposé)",
type="numpy",
format="wav"
),
],
outputs=[
gr.Text(label="Texte traduit (en Mooré)"),
gr.Audio(label="Audio généré", format="wav"),
],
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_ref17.wav", "ArissBandoss/coqui-tts-moore-V1"],
["La finale s’est jouée en présence du Président du Faso, Ibrahim Traoré.", "exple_voix_masculine_ref17.wav", "ArissBandoss/coqui-tts-moore-V1"],
["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"],
["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"]
],
cache_examples=False,
title="Mooré TTS & Traduction",
description=DESCRIPTION_TTS,
)
goai_stt_ttt_pipeline_if = gr.Interface(
fn=goai_stt_ttt_pipeline.goai_stt_ttt,
inputs=[
gr.Audio(
sources=["microphone", "upload"],
type="filepath",
label="Audio Mooré",
),
gr.Dropdown(
label="Modèles d'ASR",
choices=MODELES_ASR,
value="ArissBandoss/whisper-small-mos",
),
gr.Dropdown(
choices=LANGUAGES,
value="Automatic Detection", # + sorted(get_language_names())
label="Langue (Mooré)",
interactive = True,
),
gr.Slider(label="Batch Size", minimum=1, maximum=32, value=8, step=1),
gr.Slider(label="Chunk Length (s)", minimum=1, maximum=60, value=17.5, step=0.1),
gr.Slider(label="Stride Length (s)", minimum=1, maximum=30, value=1, step=0.1),
],
outputs=[
gr.Textbox(label="Texte transcrit (en Mooré)"),
gr.Textbox(label="Texte traduit (Francais)"),
],
examples=[["./exples_voix/exple_voix_feminine.wav", "ArissBandoss/whisper-small-mos"],
["./exples_voix/exple_voix_masculine.wav", "ArissBandoss/whisper-small-mos"],
["./exples_voix/exple_voix_masculine_ref17.wav", "ArissBandoss/whisper-small-mos"],
],
cache_examples=False,
title="Mooré ASR & Traduction",
description=DESCRIPTION_STT,
flagging_mode="auto",
)
with demo:
gr.TabbedInterface(
interface_list=[goai_traduction_if, goai_ttt_tts_pipeline_if, goai_stt_ttt_pipeline_if],
tab_names=["Traduction Mooré-Francais", "Mooré TTS & Traduction", "Mooré ASR & Traduction"]
)
demo.queue().launch(ssr_mode=False) |