File size: 3,314 Bytes
590e824
 
 
 
db2559b
 
590e824
 
 
 
 
 
 
 
 
a710bbe
 
 
 
0dade2f
590e824
 
8e05f53
b879e18
a710bbe
b234b92
 
590e824
ba66804
a710bbe
faac03c
a710bbe
590e824
 
a710bbe
0dade2f
 
 
e719dee
b879e18
a710bbe
b234b92
 
0dade2f
ba66804
a710bbe
faac03c
a710bbe
0dade2f
 
a710bbe
0dade2f
a710bbe
 
 
 
0dade2f
a710bbe
44f5f21
 
d574253
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
import gradio as gr
from transformers import pipeline

# Chargement des deux modèles Whisper
model_roman = pipeline("automatic-speech-recognition", model="nairaxo/whisper-shikomori-latin")
model_arabic = pipeline("automatic-speech-recognition", model="nairaxo/whisper-shikomori-arabic")

# Fonction de transcription avec sélection du modèle
def transcribe(audio, model_choice):
    if model_choice == "Modèle en alphabet latin":
        transcription = model_roman(audio)["text"]
    else:
        transcription = model_arabic(audio)["text"]
    return transcription

# Initialisation des blocs pour l'interface Gradio
demo = gr.Blocks()

# Interface Gradio pour microphone
mf_transcribe = gr.Interface(
    fn=transcribe,
    inputs=[
        gr.Audio(sources=["microphone"], type="filepath", label="🎤 Entrée Audio (Microphone)"),
        gr.Radio(choices=["Modèle en alphabet latin", "Modèle en alphabet arabe"], label="Sélection du modèle de transcription", 
                 value="Modèle en alphabet latin", 
                 # style={"font-family": "Arial", "font-size": "16px", "color": "#333"}
                ),
    ],
    outputs=gr.Textbox(label="📄 Transcription en Shikomori", lines=5, max_lines=10),
    title="Transcription Audio en Shikomori",
    description="<p style='color: #555;'>Sélectionnez une méthode et un modèle pour transcrire l'audio en langue Shikomori. Ce service (en version bêta) prend en charge les transcriptions en alphabet latin et arabe (système Kamar-Eddine). Les modèles ont été entraîné sur la base de données construites à partir d'un algorithme d'alignement forcé. Pour une bonne expérience et afin de mieux transcrire vos audios, assurez-vous de prononcer clairement les mots et d'être dans un environnement ayant peu de bruits.</p>",
    theme="compact",
)

# Interface Gradio pour fichier audio
file_transcribe = gr.Interface(
    fn=transcribe,
    inputs=[
        gr.Audio(type="filepath", label="📂 Entrée Audio (Fichier)"),
        gr.Radio(choices=["Modèle en alphabet latin", "Modèle en alphabet arabe"], label="Sélection du modèle de transcription",
                 value="Modèle en alphabet latin",
                 # style={"font-family": "Arial", "font-size": "16px", "color": "#333"}
                ),
    ],
    outputs=gr.Textbox(label="📄 Transcription en Shikomori", lines=5, max_lines=10),
    title="Transcription Audio en Shikomori",
    description="<p style='color: #555;'>Chargez un fichier audio et sélectionnez une méthode et un modèle pour transcrire l'audio en langue Shikomori. Ce service (en version bêta) prend en charge les transcriptions en alphabet latin et arabe (système Kamar-Eddine). Les modèles ont été entraîné sur la base de données construites à partir d'un algorithme d'alignement forcé. Pour une bonne expérience et afin de mieux transcrire vos audios, assurez-vous de prononcer clairement les mots et d'être dans un environnement ayant peu de bruits.</p>",
    theme="compact",
)

# Utilisation de l'interface avec des onglets
with demo:
    gr.TabbedInterface(
        [mf_transcribe, file_transcribe],
        ["🔊 Microphone", "📁 Fichier Audio"]
    )

# Lancement de l'application
# demo.launch(enable_queue=True, server_port=5001, share=True)

demo.launch()