Buckets:
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:
inlineinbrowsershare
✏️ ¡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.