Anaconda环境运行Python脚本报错:Gradio Audio不识别source参数
问题解决:Gradio Audio组件参数错误
错误原因
你遇到的TypeError是因为当前使用的Gradio版本中,gr.Audio组件的初始化参数不再支持source这个关键字。Gradio在版本迭代中调整了组件参数,旧的source参数已被替换或移除。
解决方案
根据Gradio的新版本规范,有两种可行的修改方式:
方式1:使用gr.Microphone()作为输入组件
新版本Gradio把麦克风输入单独封装成了gr.Microphone()组件,更直观:
import gradio as gr import openai, subprocess openai.api_key = "sk-PFIsH04TaCgUrbnjnnlkT3BlbkFJ9FmjONClKC" messages = [{"role": "system", "content": 'You are a master of dressing, and no clothing problem can trouble you.'}] def transcribe(audio): global messages audio_file = open(audio, "rb") transcript = openai.Audio.transcribe("whisper-1", audio_file) messages.append({"role": "user", "content": transcript["text"]}) response = openai.ChatCompletion.create(model="ft:gpt-3.5-turbo", messages=messages) system_message = response["choices"][0]["message"] messages.append(system_message) subprocess.call(["wsay", system_message['content']]) chat_transcript = "" for message in messages: if message['role'] != 'system': chat_transcript += message['role'] + ": " + message['content'] + "\n\n" return chat_transcript # 替换gr.Audio为gr.Microphone,同时保留type="filepath" ui = gr.Interface(fn=transcribe, inputs=gr.Microphone(type="filepath"), outputs="text") ui.launch()
方式2:使用新版本gr.Audio的sources参数(复数形式)
如果仍想使用gr.Audio组件,新版本需要用sources参数(接受列表值)来指定输入源:
# 修改输入组件部分 ui = gr.Interface(fn=transcribe, inputs=gr.Audio(sources=["microphone"], type="filepath"), outputs="text") ui.launch()
额外注意点
- 代码中重复调用了
ui.launch(),只需要调用一次即可,重复调用可能导致端口冲突或重复启动服务。 - 确保你的OpenAI API密钥完整且有效,当前提供的密钥末尾似乎不完整,可能会导致后续API调用失败。
内容的提问来源于stack exchange,提问作者毓言桂
相关产品推荐
相关产品推荐

