You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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,提问作者毓言桂

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 12:47:50