gradio快速入门 — Reactive Interfaces

Gradio自动刷新演示。

实时界面

你可以在界面中设置live=True让界面自动刷新,这样只要用户输入发生变化,界面就会重新计算。

import gradio as grdef calculator(num1, operation, num2):if operation == "add":return num1 + num2elif operation == "subtract":return num1 - num2elif operation == "multiply":return num1 * num2elif operation == "divide":return num1 / num2demo = gr.Interface(calculator,["number",gr.Radio(["add", "subtract", "multiply", "divide"]),"number"],"number",live=True,
)
demo.launch()

请注意,没有提交按钮,因为界面会在更改时自动重新提交。

流媒体组件

有些组件有“流式”模式,比如Audio麦克风模式的组件,或者Image摄像头模式的组件。流式意味着数据被连续发送到后端,Interface函数被连续重新运行。

gr.Audio(source='microphone')gr.Audio(source='microphone', streaming=True)的区别在于当同时使用gr.Interface(live=True)时,前者Component会在用户停止录制时自动提交数据并运行该Interface函数,而后者会在录制过程Component持续发送数据并运行该Interface函数。

这是从网络摄像头流式传输图像的示例代码。

import gradio as gr
import numpy as npdef flip(im):return np.flipud(im)demo = gr.Interface(flip, gr.Image(sources=["webcam"], streaming=True), "image",live=True
)
demo.launch()

流式传输也可以在输出组件中完成。gr.Audio(streaming=True)输出组件可以接收由生成器函数分段生成的音频数据流,并将它们组合成单个音频文件。

import gradio as gr
from pydub import AudioSegment
from time import sleepwith gr.Blocks() as demo:input_audio = gr.Audio(label="Input Audio", type="filepath", format="mp3")with gr.Row():with gr.Column():stream_as_file_btn = gr.Button("Stream as File")format = gr.Radio(["wav", "mp3"], value="wav", label="Format")stream_as_file_output = gr.Audio(streaming=True)def stream_file(audio_file, format):audio = AudioSegment.from_file(audio_file)i = 0chunk_size = 1000while chunk_size * i < len(audio):chunk = audio[chunk_size * i : chunk_size * (i + 1)]i += 1if chunk:file = f"/tmp/{i}.{format}"chunk.export(file, format=format)yield filesleep(0.5)stream_as_file_btn.click(stream_file, [input_audio, format], stream_as_file_output)gr.Examples([["audio/cantina.wav", "wav"], ["audio/cantina.wav", "mp3"]],[input_audio, format],fn=stream_file,outputs=stream_as_file_output,)with gr.Column():stream_as_bytes_btn = gr.Button("Stream as Bytes")stream_as_bytes_output = gr.Audio(format="bytes", streaming=True)def stream_bytes(audio_file):chunk_size = 20_000with open(audio_file, "rb") as f:while True:chunk = f.read(chunk_size)if chunk:yield chunksleep(1)else:breakstream_as_bytes_btn.click(stream_bytes, input_audio, stream_as_bytes_output)if __name__ == "__main__":demo.queue().launch()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/30665.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

上海中腾食品科学餐饮管理铸就企业食堂新模式

在当今企业运营中&#xff0c;食堂不仅是员工用餐的场所&#xff0c;更是企业文化和管理水平的体现。随着餐饮行业的不断发展&#xff0c;科学合理的餐饮管理模式成为了企业食堂成功的关键。上海中腾食品科技有限公司以其独特的餐饮管理模式&#xff0c;成功打造了企业食堂的新…

Nginx 的配置和运行核心数

查看 Nginx 配置 Nginx 配置文件通常位于 /etc/nginx/nginx.conf 或 /usr/local/nginx/conf/nginx.conf 路径下。你可以使用以下命令查看这个文件的内容&#xff1a; cat /etc/nginx/nginx.conf在配置文件中找到 worker_processes 这一行&#xff0c;其值就是 Nginx 配置的工作…

CSS3中鲜为人知但非常强大的 Clip-Path 属性

CSS3中鲜为人知但非常强大的 Clip-Path 属性 在CSS3中,clip-path属性可以让我们快速创建各种各样的不规则图形,而无需使用图片或者复杂的绘图工具。它可以帮助我们实现一些非常出色的视觉效果,但遗憾的是它并不是很常见。 clip-path属性可以接受多种不同的值,比如polygon()、…

windows下安装IntelliJIDEA

windows下安装IntelliJIDEA 步骤1&#xff1a;下载IntelliJ IDEA 打开浏览器并访问IntelliJ IDEA下载页面. https://www.jetbrains.com/idea/download/选择合适的版本&#xff1a; Ultimate&#xff1a;付费版本&#xff0c;包含更多功能&#xff0c;适合专业开发。Community…

内核学习——3、自旋锁的作用及其实现

作用&#xff1a; 保护一段临界区的操作时独占的&#xff0c;不能由其他cpu或者线程同时访问破坏数据结构多核系统SMP&#xff1a; 主要考虑一个cpu进入临界区之后&#xff0c;其他CPU不能再去进入这个临界代码区单核系统&#xff1a; 不能被其他进程抢占单核系统自旋锁实现&am…

深入了解python生成器(generator)

生成器 生成器是 Python 中一种特殊类型的迭代器。生成器允许你定义一个函数来动态产生值&#xff0c;而不是一次性生成所有值并将它们存储在内存中。生成器使用 yield 关键字来逐个返回值。每次调用生成器函数时&#xff0c;函数会在 yield 语句暂停&#xff0c;并记住当前的…

静态网页发送基本请求

目录 一、 发送 GET 请求 1&#xff0e;不携带 url 参数的 GET 请求 2&#xff0e;携带 url 参数的 GET 请求 二、发送 POST 请求 三、处理响应 1&#xff0e;获取网页源代码 2&#xff0e;获取图片 一、 发送 GET 请求 当用户在浏览器的地址栏中直接输入某个 URL 地址…

海量数据处理利器 Roaring BitMap 原理介绍

作者&#xff1a;来自 vivo 互联网服务器团队- Zheng Rui 本文结合个人理解梳理了BitMap及Roaring BitMap的原理及使用&#xff0c;分别主要介绍了Roaring BitMap的存储方式及三种container类型及Java中Roaring BitMap相关API使用。 一、引言 在进行大数据开发时&#xff0c;…

网络安全,怎么搭建Python防范环境

注意:本文的下载教程,与以下文章的思路有相同点,也有不同点,最终目标只是让读者从多维度去熟练掌握本知识点。 下载教程: Python网络安全项目开发实战_搭建Python防范环境_编程案例解析实例详解课程教程.pdf 构建一个Python环境下的网络安全防范体系是一个涉及多个层面和步…

公域+私域运营思路框架

本次分享公域私域运营思路框架&#xff0c;内容包括私域原则、公域引流、让利思维、价值体系等内容&#xff0c;让你的流量保持高留存、高活跃。

常用的特征分析和特征工程

案例背景 我们将使用一个公开数据集,数据集中包含客户的画像、行为以及标签。我们的目标是通过特征工程提升模型的预测准确性。 数据加载与初步探索 首先,我们需要加载数据并进行初步探索,以了解数据的基本情况。 import pandas as pd import numpy as np# 加载数据集 d…

idea 创建properties文件,解决乱码

设置properties文件编码 点击file->Settings File Encodings->设置utf-8 重新创建.properties文件才生效

【Java学习笔记】异常处理

生活中我们在使用一些产品的时候&#xff0c;经常会碰到一些异常情况。例如&#xff0c;使用ATM机取钱的时&#xff0c;机器会突然出现故障导致无法完成正常的取钱业务&#xff0c;甚至吞卡&#xff1b;在乘坐地铁时&#xff0c;地铁出现异常无法按时启动和运行&#xff1b;使用…

本科且非专业学历|艺术自由职业者成功赴美国威斯康星大学麦迪逊分校自费访学

R老师只有本科学历且不是艺术专业&#xff0c;但有独创的艺术作品&#xff0c;其希望在一年的访问学者期间&#xff0c;拓宽艺术视野&#xff0c;同时学习艺术理论&#xff0c;以弥补学术背景薄弱的短板。最终我们为其落实了美国威斯康星大学麦迪逊分校访问学者职位。 R老师背景…

IAR stack usage

c - IAR Stack Usage for STM32 in the map File - Stack Overflow

7、PHP 实现矩形覆盖

题目&#xff1a; 矩形覆盖 描述&#xff1a; 我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。 请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形&#xff0c;总共有多少种方法&#xff1f; <?php function rectCover($number) {$prePreNum 1;$preNum 2;$temp 0;i…

vscode格式化c代码

参考链接&#xff1a; Clang-Format 用法详解 https://blog.csdn.net/wan212000/article/details/131709197 # 左花括号后面不换行 BreakBeforeBraces: Attach # 缩进 IndentWidth: 4 # 行宽&#xff0c;不自动换行 ColumnLimit: 0在设置界面&#xff0c;Extensions > C/C …

Maven安装与配置、入门教程

Maven是一款基于Java平台的项目管理和整合工具&#xff0c;它主要通过项目对象模型&#xff08;POM&#xff09;来管理项目的构建、报告和文档。以下是一个清晰的Maven教程概述&#xff0c;参考了多篇文章的内容&#xff1a; 一、Maven简介 诞生背景&#xff1a;Maven的创始人…

SAP FICO 下载文件报错【调用数据提供商错误】

报错如下图所示&#xff1a; 解决办法&#xff1a; 当弹出保存文件的提示时&#xff0c;不要点击“记住我的决定”

BufferedReader和BufferedWriter

概念 BufferedReader&#xff1a;是一个从字符输入流中读取文本的类。它提供了一个缓冲区&#xff0c;可以一次性读取大量数据&#xff0c;从而减少实际读取操作的次数&#xff0c;提高读取效率。 BufferedWriter&#xff1a;是一个将文本写入字符输出流的类。它提供了一个缓…