Spaces:
Runtime error
Runtime error
File size: 6,806 Bytes
78d1101 21f74cc 78d1101 1c7cbff 78d1101 21f74cc 1c7cbff 21f74cc 78d1101 7c7161e 78d1101 1c7cbff 78d1101 21f74cc 78d1101 21f74cc 1c7cbff 21f74cc 78d1101 1c7cbff 21f74cc 1c7cbff 21f74cc 1c7cbff 21f74cc 1c7cbff 7c7161e 21f74cc 1c7cbff 21f74cc 1c7cbff 21f74cc 1c7cbff 21f74cc 78d1101 1c7cbff 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 |
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 ./audios 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/mms-tts-mos-V18"]
DESCRIPTION = """<div style="display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap;">
<div style="flex: 1; min-width: 250px;">
Ce modèle de traduction vers la <b>langue Mooré</b> a été développé from scratch par <b>GO AI CORP</b> et la version disponible en test est celle à 700 millions de paramètres.
<br><br>
Pour les détails techniques sur l'architecture du modèle, 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://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;">
</div>
</div>
"""
demo = gr.Blocks(theme=gr.themes.Soft())
goai_traduction_if = gr.Interface(
fn=goai_traduction.goai_traduction,
inputs=[
gr.Textbox(label="Texte", placeholder="Yaa sõama"),
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=["text"],
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",
description=DESCRIPTION
)
goai_stt_if = gr.Interface(
fn=goai_stt2.transcribe,
inputs=[
gr.Audio(sources=["microphone", "upload"], type="filepath"),
gr.Dropdown(
choices=[
"ArissBandoss/whisper-small-mos",
"openai/whisper-large-v3-turbo",
],
value="ArissBandoss/whisper-small-mos",
label="Model Name"
),
gr.Dropdown(choices=["Automatic Detection"] + sorted(get_language_names()), value="Automatic Detection", label="Language", 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="Output"), gr.File(label="Download Files")],
examples=[["./audios/example1.mp3", "a ye ligdi"],
["./audios/example2.mp3", "zoe nimbãanega"],
["./audios/example3.mp3", "zãng-zãnga"],
["./audios/example4.mp3", "yõk foto"]
],
cache_examples=False,
title="Mooré ASR",
description=DESCRIPTION,
flagging_mode="auto",
)
goai_ttt_tts_pipeline_if = gr.Interface(
fn=goai_ttt_tts_pipeline.goai_ttt_tts,
inputs=[
gr.Text(
label="Texte à traduire",
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-V1"
),
gr.Dropdown(
label="Voix",
choices=AUDIO_FILES,
value="exple_voix_masculine.wav"
),
gr.Audio(
label="Cloner votre voix (optionel)",
type="numpy",
format="wav"
),
],
outputs=[
gr.Text(label="Texte traduit"),
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.wav", None],
["La finale s’est jouée en présence du Président du Faso, Ibrahim Traoré.", "exple_voix_feminine.wav", None],
["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", None],
["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", None]
],
cache_examples=False,
title="Démo des Modèles pour le Mooré: Traduction (Text-to-Text) et Synthèse Vocale (Text-to-Speech)",
description=DESCRIPTION,
)
goai_stt_ttt_pipeline_if = gr.Interface(
fn=goai_stt_ttt_pipeline.goai_stt_ttt,
inputs=[
gr.Audio(sources=["microphone", "upload"], type="filepath"),
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="Output"), gr.File(label="Download Files")],
examples=[["./audios/example1.mp3", "a ye ligdi"],
["./audios/example2.mp3", "zoe nimbãanega"],
["./audios/example3.mp3", "zãng-zãnga"],
["./audios/example4.mp3", "yõk foto"]
],
cache_examples=False,
title="Mooré ASR",
description=DESCRIPTION,
flagging_mode="auto",
)
with demo:
gr.TabbedInterface(
interface_list=[goai_traduction_if, goai_stt_if, goai_ttt_tts_pipeline_if, goai_stt_ttt_pipeline_if],
tab_names=["Traduction Mooré-Francais", "Mooré ASR", "Mooré TTS & Traduction", "Mooré ASR & Traduction"]
)
demo.queue().launch(ssr_mode=False) |