Spaces:
Running
Running
import gradio as gr | |
from transformers import pipeline | |
import numpy as np | |
import httpcore | |
from googletrans import Translator | |
import time | |
# Correctif pour httpcore | |
setattr(httpcore, 'SyncHTTPTransport', object) | |
# Initialisation du modèle de transcription | |
transcriber = pipeline("automatic-speech-recognition", model="jonatasgrosman/wav2vec2-large-xlsr-53-arabic") | |
#transcriber = pipeline("automatic-speech-recognition", model="tarteel-ai/whisper-base-ar-quran") | |
#transcriber = pipeline("automatic-speech-recognition", model="elgeish/wav2vec2-large-xlsr-53-arabic") | |
# Initialisation du traducteur | |
translator = Translator() | |
def transcribe_and_translate(audio): | |
sr, y = audio | |
y = y.astype(np.float32) | |
y /= np.max(np.abs(y)) | |
# Transcription du texte | |
transcription = transcriber({"sampling_rate": sr, "raw": y})["text"] | |
time.sleep(2) | |
# Traduction du texte transcrit | |
translation = translator.translate(transcription, src='ar', dest='fr').text | |
return transcription, translation | |
# Création de l'interface Gradio | |
demo = gr.Interface( | |
fn=transcribe_and_translate, | |
inputs=gr.Audio(sources=["microphone"], label="Enregistrement Audio"), | |
outputs=[ | |
gr.Textbox(label="Texte en Arabe"), | |
gr.Textbox(label="Traduction en Français") | |
], | |
title="Transcription automatiques de l'Arabe et traduction en Français by PSW", | |
description="Utilisez le microphone pour parler en arabe, puis appuyez sur le bouton stop et Submit pour voir la transcription et la traduction." | |
) | |
# Lancement de l'application Gradio | |
demo.launch(show_error=True, share=True) | |