|
import tensorflow as tf |
|
|
|
inception_net = tf.keras.applications.M |
|
|
|
import requests |
|
|
|
respuesta = requests.get("https://git.io/JJkYN") |
|
etiquetas = respuesta.text.split("\n") |
|
|
|
|
|
def clasifica_imagen(inp): |
|
inp = inp.reshape((-1,224,224,3)) |
|
inp = tf.keras.applications.mobilenet_v2.preprocess_input(inp) |
|
prediction = inception_net.predict(inp).flatten() |
|
confidences = {etiquetas[i]: float(prediction[i]) for i in range(1000)} |
|
return confidences |
|
|
|
import gradio as gr |
|
from transformers import pipeline |
|
|
|
trans = pipeline("automatic-speech-recognition", model="facebook/wav2vec2-large-xlsr-53-spanish") |
|
clasificador = pipeline("text-classification", model="pysentimiento/robertuito-sentiment-analysis") |
|
|
|
def audio_a_text(audio): |
|
text = trans(audio)["text"] |
|
return text |
|
|
|
def texto_a_sentimiento(text): |
|
return clasificador(text)[0]["label"] |
|
|
|
|
|
demo = gr.Blocks() |
|
|
|
with demo: |
|
gr.Markdown("Este es el segundo demo con Blocks") |
|
with gr.Tabs(): |
|
with gr.TabItem("Transcribe audio en español"): |
|
with gr.Row(): |
|
audio = gr.Audio(source="microphone", type="filepath") |
|
transcripcion = gr.Textbox() |
|
b1 = gr.Button("Transcribe porfa") |
|
|
|
with gr.TabItem("Análisis de sentimiento en español"): |
|
with gr.Row(): |
|
texto = gr.Textbox() |
|
label = gr.Label() |
|
b2 = gr.Button("sentimiento porfa") |
|
|
|
with gr.TabItem("Clasificacion de imagenes"): |
|
with gr.Row(): |
|
imagen = gr.Image(shape=(224,224)) |
|
label1 = gr.Label(num_top_classes=3) |
|
b3 = gr.Button("clasifica") |
|
|
|
|
|
b1.click(audio_a_text, inputs = audio, outputs = transcripcion) |
|
b2.click(texto_a_sentimiento, inputs = texto, outputs = label) |
|
b3.click(clasifica_imagen, inputs = imagen, outputs=label1) |
|
|
|
|
|
demo.launch() |