Buckets:

rtrm's picture
|
download
raw
2.66 kB

Entender la clase Interface[[understanding-the-interface-class]]

En esta sección, veremos más de cerca la clase Interface y entenderemos los parámetros principales que se usan para crear una.

Cómo crear una Interface[[how-to-create-an-interface]]

La clase Interface tiene 3 parámetros obligatorios:

Interface(fn, inputs, outputs, ...)

Estos parámetros son:

  • fn: la función de predicción que envuelve la interfaz de Gradio.
  • inputs: el tipo o los tipos de componentes de entrada.
  • outputs: el tipo o los tipos de componentes de salida.

Para obtener una lista completa de componentes, consulta la documentación de Gradio.

Un ejemplo sencillo con audio[[a-simple-example-with-audio]]

import numpy as np
import gradio as gr

def reverse_audio(audio):
    sr, data = audio
    reversed_audio = (sr, np.flipud(data))
    return reversed_audio

mic = gr.Audio(source="microphone", type="numpy", label="Speak here...")
gr.Interface(reverse_audio, mic, "audio").launch()

Manejar múltiples entradas y salidas[[handling-multiple-inputs-and-outputs]]

Cuando pasas listas de componentes de entrada y salida, cada componente se alinea con un parámetro o valor devuelto en orden:

import numpy as np
import gradio as gr

notes = ["C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B"]

def generate_tone(note, octave, duration):
    sr = 48000
    a4_freq, tones_from_a4 = 440, 12 * (octave - 4) + (note - 9)
    frequency = a4_freq * 2 ** (tones_from_a4 / 12)
    duration = int(duration)
    audio = np.linspace(0, duration, duration * sr)
    audio = (20000 * np.sin(audio * (2 * np.pi * frequency))).astype(np.int16)
    return (sr, audio)

gr.Interface(
    generate_tone,
    [
        gr.Dropdown(notes, type="index"),
        gr.Slider(minimum=4, maximum=6, step=1),
        gr.Number(value=1, label="Duration in seconds"),
    ],
    "audio",
).launch()

El método launch()[[the-launch-method]]

De forma predeterminada, launch() ejecuta la demo localmente. También puedes modificarlo con parámetros como:

  • inline
  • inbrowser
  • share

✏️ ¡Aplícalo![[lets-apply-it]]

Construyamos una interfaz para mostrar un modelo de speech-recognition:

from transformers import pipeline
import gradio as gr

model = pipeline("automatic-speech-recognition")

def transcribe_audio(audio):
    transcription = model(audio)["text"]
    return transcription

gr.Interface(
    fn=transcribe_audio,
    inputs=gr.Audio(type="filepath"),
    outputs="text",
).launch()

Con esto ya tienes una interfaz de reconocimiento de voz funcional.

Xet Storage Details

Size:
2.66 kB
·
Xet hash:
ceda5554af4f00570bef450b643a5ff39d666fa11b9a2a3250feacf97028086e

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.