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="
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.
", 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="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.
", 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(share=True)