博主原文链接:https://www.yourmetaverse.cn/nlp/335/
探索Gradio Audio模块的change、clear和play方法
在本篇博客中,我们将深入介绍Gradio的Audio模块,并重点关注其change、clear和play方法。Gradio是一个强大的库,可用于构建交互式的机器学习界面,而Audio模块则使我们能够轻松处理音频数据。我们将详细解释这些方法的作用,并展示它们在实际应用中的用法。
1. change方法
change方法用于在组件的值发生变化时触发事件,无论是因为用户输入(例如用户在文本框中输入)还是函数更新(例如图像从事件触发的输出接收到值)。该方法适用于Gradio Blocks中的组件。
参数说明:
- fn:函数,通常是机器学习模型的预测函数。函数的每个参数对应一个输入组件,函数应该返回单个值或一个值元组,其中元组中的每个元素对应一个输出组件。
- inputs:用作输入的组件列表,如果函数不需要输入,应该是一个空列表。
- outputs:用作输出的组件列表,如果函数不返回输出,应该是一个空列表。
- api_name:字符串,用于在API文档中公开该端点。
- status_tracker:无,预留参数。
- scroll_to_output:布尔值,如果为True,在完成时将滚动到输出组件。
- show_progress:字符串,控制是否显示进度动画。
- queue:布尔值,如果为True,将在队列中排队请求(如果已启用队列)。如果为False,即使启用了队列,也不会将此事件放入队列。如果为None,则使用Gradio应用的队列设置。
- batch:布尔值,如果为True,函数应处理一批输入,这意味着它应接受每个参数的输入值列表。列表应该具有相等的长度(最大长度为
max_batch_size
)。然后,函数必须强制返回一个元组列表(即使只有一个输出组件),元组中的每个列表对应一个输出组件。 - max_batch_size:整数,如果从队列调用此方法,最大批量处理输入的数量(仅当batch=True时有效)。
- preprocess:布尔值,如果为False,则在运行’fn’之前不会运行组件数据的预处理(例如,如果使用
Image
组件调用此方法,则保留其作为base64字符串)。 - postprocess:布尔值,如果为False,则在将’fn’的输出返回给浏览器之前不会运行组件数据的后处理。
- cancels:其他事件的字典或列表,当触发此监听器时取消其他事件。例如,设置cancels=[click_event]将取消click_event,其中click_event是另一个组件的.click方法的返回值。尚未运行的函数(或正在迭代的生成器)将被取消
,但正在运行的函数将被允许完成。
- every:浮点数,当客户端连接打开时以“every”秒数运行此事件。以秒为单位计算。必须启用队列。
2. clear方法
clear方法在用户使用组件的X按钮清除组件(例如图像或音频)时触发事件。该方法适用于Gradio Blocks中的组件。
参数说明:
- fn:函数,通常是机器学习模型的预测函数。函数的每个参数对应一个输入组件,函数应该返回单个值或一个值元组,其中元组中的每个元素对应一个输出组件。
- inputs:用作输入的组件列表,如果函数不需要输入,应该是一个空列表。
- outputs:用作输出的组件列表,如果函数不返回输出,应该是一个空列表。
- api_name:字符串,用于在API文档中公开该端点。
- status_tracker:无,预留参数。
- scroll_to_output:布尔值,如果为True,在完成时将滚动到输出组件。
- show_progress:字符串,控制是否显示进度动画。
- queue:布尔值,如果为True,将在队列中排队请求(如果已启用队列)。如果为False,即使启用了队列,也不会将此事件放入队列。如果为None,则使用Gradio应用的队列设置。
- batch:布尔值,如果为True,函数应处理一批输入,这意味着它应接受每个参数的输入值列表。列表应该具有相等的长度(最大长度为
max_batch_size
)。然后,函数必须强制返回一个元组列表(即使只有一个输出组件),元组中的每个列表对应一个输出组件。 - max_batch_size:整数,如果从队列调用此方法,最大批量处理输入的数量(仅当batch=True时有效)。
- preprocess:布尔值,如果为False,则在运行’fn’之前不会运行组件数据的预处理(例如,如果使用
Image
组件调用此方法,则保留其作为base64字符串)。 - postprocess:布尔值,如果为False,则在将’fn’的输出返回给浏览器之前不会运行组件数据的后处理。
- cancels:其他事件的字典或列表,当触发此监听器时取消其他事件。例如,设置cancels=[click_event]将取消click_event,其中click_event是另一个组件的.click方法的返回值。尚未运行的函数(或正在迭代的生成器)将被取消,但正在运行的函数将被允许完成。
- every:浮点数,当客户端连接打开时以“every”秒数运行此事件。以秒为单位计算。必须启用队列。
3. play方法
play方法在用户播放组件(例如音频或视频)时触发事件。该方法适用于Gradio Blocks中的组件。
参数说明:
- fn:函数
,通常是机器学习模型的预测函数。函数的每个参数对应一个输入组件,函数应该返回单个值或一个值元组,其中元组中的每个元素对应一个输出组件。
- inputs:用作输入的组件列表,如果函数不需要输入,应该是一个空列表。
- outputs:用作输出的组件列表,如果函数不返回输出,应该是一个空列表。
- api_name:字符串,用于在API文档中公开该端点。
- status_tracker:无,预留参数。
- scroll_to_output:布尔值,如果为True,在完成时将滚动到输出组件。
- show_progress:字符串,控制是否显示进度动画。
- queue:布尔值,如果为True,将在队列中排队请求(如果已启用队列)。如果为False,即使启用了队列,也不会将此事件放入队列。如果为None,则使用Gradio应用的队列设置。
- batch:布尔值,如果为True,函数应处理一批输入,这意味着它应接受每个参数的输入值列表。列表应该具有相等的长度(最大长度为
max_batch_size
)。然后,函数必须强制返回一个元组列表(即使只有一个输出组件),元组中的每个列表对应一个输出组件。 - max_batch_size:整数,如果从队列调用此方法,最大批量处理输入的数量(仅当batch=True时有效)。
- preprocess:布尔值,如果为False,则在运行’fn’之前不会运行组件数据的预处理(例如,如果使用
Image
组件调用此方法,则保留其作为base64字符串)。 - postprocess:布尔值,如果为False,则在将’fn’的输出返回给浏览器之前不会运行组件数据的后处理。
- cancels:其他事件的字典或列表,当触发此监听器时取消其他事件。例如,设置cancels=[click_event]将取消click_event,其中click_event是另一个组件的.click方法的返回值。尚未运行的函数(或正在迭代的生成器)将被取消,但正在运行的函数将被允许完成。
- every:浮点数,当客户端连接打开时以“every”秒数运行此事件。以秒为单位计算。必须启用队列。
这些方法提供了强大的交互功能,允许用户与Gradio音频组件进行交互,并根据用户的输入和操作触发相应的事件。你可以利用这些方法来设计丰富的音频应用,从简单的音频播放器到复杂的音频处理和识别系统。与Gradio的其他组件一起使用,你可以创建出色的交互式音频应用程序,为用户提供出色的体验。
4.参数说明
参数 | 数据类型 | 默认值 | 描述 |
---|---|---|---|
fn | Callable | None | required | 要封装接口的函数,通常是机器学习模型的预测函数。函数的每个参数对应一个输入组件,函数应该返回单个值或一个值元组,其中元组中的每个元素对应一个输出组件。 |
inputs | Component | list[Component] | set[Component] | None | None | 用作输入的组件列表。如果函数不需要输入,应该是一个空列表。 |
outputs | Component | list[Component] | None | None | 用作输出的组件列表。如果函数不返回输出,应该是一个空列表。 |
api_name | str | None | None | 在API文档中公开该端点的参数。 |
status_tracker | None | None | 预留参数。 |
scroll_to_output | bool | False | 如果为True,在完成时将滚动到输出组件。 |
show_progress | Literal[‘full’] | Literal[‘minimal’] | Literal[‘hidden’] | “full” | 控制是否显示进度动画。 |
queue | bool | None | None | 如果为True,将在队列中排队请求(如果已启用队列)。如果为False,即使启用了队列,也不会将此事件放入队列。如果为None,则使用Gradio应用的队列设置。 |
batch | bool | False | 如果为True,函数应处理一批输入,这意味着它应接受每个参数的输入值列表。函数必须返回一个元组列表,元组中的每个列表对应一个输出组件。 |
max_batch_size | int | 4 | 如果从队列调用此方法,最大批量处理输入的数量(仅当batch=True时有效)。 |
preprocess | bool | True | 如果为False,则在运行’fn’之前不会运行组件数据的预处理。 |
postprocess | bool | True | 如果为False,则在将’fn’的输出返回给浏览器之前不会运行组件数据的后处理。 |
cancels | dict[str, Any] | list[dict[str, Any]] | None | None | 触发此监听器时要取消的其他事件的列表。 |
every | float | None | None | 在客户端连接打开时以“every”秒数运行此事件。以秒为单位计算。必须启用队列。 |