如何在Gradio应用中推理完成后自动清除麦克风输入?
在Gradio live模式下自动清除麦克风输入
要实现推理完成后自动清空麦克风输入,你需要利用Gradio的组件状态更新机制——让推理函数同时返回输出文本和清空后的音频组件状态,具体步骤如下:
- 修改
Interface的outputs参数,将音频输入组件也纳入输出列表,让函数可以直接更新它的状态 - 在
inference函数末尾,返回**(推理结果文本, None)**,None会触发音频组件清空
修改后的完整代码:
import gradio as gr def inference(audio_path): # 这里替换为你的实际推理逻辑 result = "推理完成的结果内容" # 返回结果文本 + 清空音频组件的指令 return result, None audio_input = gr.Audio(source="microphone", type="filepath") demo = gr.Interface( fn=inference, inputs=audio_input, outputs=["text", audio_input], # 新增音频组件到输出列表 live=True ) demo.launch()
原理说明:
- 当
live=True时,录音停止会触发inference函数,函数返回的第二个值None会传递给音频输入组件,触发其清空操作 - 这种通过返回值更新组件状态的方式,是Gradio官方认可的可靠方案,比重新初始化组件更适配live模式的运行逻辑
内容的提问来源于stack exchange,提问作者Corey
相关产品推荐
相关产品推荐

