shikomori-asr / app.py
nairaxo's picture
Update app.py
dbbe9fb verified
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(share=True)