Spaces:
Sleeping
Sleeping
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") | |
# 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) | |
# Création de l'interface Gradio | |
audio_input = gr.Audio(sources=["microphone"], label="Enregistrement Audio") | |
transcription_output = gr.Output(label="Texte en Arabe") | |
translation_output = gr.Output(label="Traduction en Français") | |
def process_audio(audio): | |
# Transcription | |
transcription = transcribe(audio) | |
# Afficher la transcription | |
with transcription_output: | |
print("Transcription:", transcription) | |
# Traduction après la transcription | |
translation = translate(transcription) | |
# Afficher la traduction | |
with translation_output: | |
print("Traduction:", translation) | |
# Interface Gradio | |
demo = gr.Interface( | |
fn=process_audio, | |
inputs=audio_input, | |
outputs=[transcription_output, translation_output], | |
title="Transcription et Traduction Automatiques de l'Arabe en Français", | |
description="Utilisez le microphone pour parler en arabe, puis appuyez sur le bouton pour voir la transcription et la traduction." | |
) | |
# Lancement de l'application Gradio | |
demo.launch(show_error=True, share=True) |