Spaces:
Runtime error
Runtime error
File size: 2,760 Bytes
b8cc7cf 4d13f14 10f8e16 b8cc7cf 10f8e16 68949f2 7f13aa1 68949f2 7f13aa1 68949f2 7f13aa1 68949f2 7f13aa1 4d13f14 68949f2 4d13f14 68949f2 7f13aa1 ede4f5f 7f13aa1 68949f2 b8cc7cf dc71bb1 b8cc7cf dc71bb1 68949f2 7f13aa1 4d13f14 7f13aa1 |
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 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
from transformers import pipeline
import gradio as gr
# Define el modelo de traducción inglés-español
modelo_traduccion = pipeline("translation", model="Helsinki-NLP/opus-mt-en-es")
# Define el modelo de clasificación de idiomas
modelo_idioma = pipeline("text-classification", model="papluca/xlm-roberta-large-language-detection")
def detectar_idioma(texto):
"""
Detecta el idioma del texto utilizando un modelo de clasificación.
Args:
texto (str): El texto del cual se quiere detectar el idioma.
Returns:
str: El código del idioma detectado (ej: 'en', 'es').
"""
try:
resultado = modelo_idioma(texto, top_k=1)[0]
return resultado['label']
except Exception as e:
print(f"Error en la detección de idioma: {e}")
return None
def traducir_texto(texto_en):
"""
Traduce el texto de entrada del inglés al español, previa verificación del idioma.
Args:
texto_en (str): El texto en inglés que se va a traducir.
Returns:
str: El texto traducido al español o un mensaje de error si el idioma no es inglés.
"""
if not texto_en.strip():
return ""
idioma_detectado = detectar_idioma(texto_en)
if idioma_detectado == 'en':
try:
resultado = modelo_traduccion(texto_en)
return resultado[0]['translation_text']
except Exception as e:
return f"Error en la traducción: {e}"
else:
return "Por favor, introduce texto en inglés para traducir."
def borrar_entrada(texto_entrada):
"""
Borra el texto del cuadro de texto de entrada.
Args:
texto_entrada (str): El texto actual en el cuadro de texto de entrada.
Returns:
str: Una cadena vacía.
"""
return ""
with gr.Blocks() as interfaz_traductor:
"""
Define la interfaz gráfica de la aplicación de traducción de inglés a español con detección de idioma y título estándar.
"""
gr.Markdown("# Traductor Inglés a Español")
with gr.Row():
with gr.Column():
texto_entrada_en = gr.Textbox(label="Texto en inglés", placeholder="Pega aquí el texto en inglés", lines=10)
boton_borrar = gr.Button("Borrar todo")
with gr.Column():
texto_salida_es = gr.Textbox(label="Traducción al español", placeholder="La traducción aparecerá aquí", interactive=False, lines=10)
gr.Markdown("*Puedes copiar el texto traducido seleccionándolo y usando Ctrl+C (o Cmd+C en macOS).*")
texto_entrada_en.change(traducir_texto, inputs=texto_entrada_en, outputs=texto_salida_es)
boton_borrar.click(borrar_entrada, inputs=texto_entrada_en, outputs=texto_entrada_en)
interfaz_traductor.launch() |