import gradio as gr from transformers import pipeline # Definimos el modelo trans = pipeline( "automatic-speech-recognition", model="facebook/wav2vec2-large-xlsr-53-spanish" ) clasificador = pipeline( "text-classification", model="pysentimiento/robertuito-sentiment-analysis" ) def audio_a_texto(audio): texto = trans(audio)["text"] return texto def texto_a_sentimiento(texto): sentimiento = clasificador(texto)[0]["label"] return sentimiento demo = gr.Blocks() with demo: gr.Markdown("Transcripción de audio y clasificación de sentimiento") # Título with gr.Tabs(): # Tabs para dividir la interfaz según la tarea with gr.TabItem( "Transcripción de audio en Español" ): # Tab para transcribir audio with gr.Row(): # Row para mostrar el input y output en la misma línea audio = gr.Audio(source="microphone", type="filepath") transcription = gr.Textbox() # Textbox para mostrar la transcripción b1 = gr.Button("Transcribir") # Botón para transcribir el audio with gr.TabItem( "Análisis de sentimiento en Español" ): # Tab para clasificar sentimiento with gr.Row(): # Row para mostrar el input y output en la misma línea texto = gr.Textbox() # Textbox para mostrar el texto sentiment = gr.Label() # Label para mostrar el sentimiento b2 = gr.Button("Clasificar") # Botón para clasificar el sentimiento b1.click( audio_a_texto, inputs=audio, outputs=transcription ) # Al hacer click, se ejecuta la función audio_a_texto b2.click( texto_a_sentimiento, inputs=texto, outputs=sentiment ) # Al hacer click, se ejecuta la función texto_a_sentimiento demo.launch()