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

无法将Whisper转录文本传递给OpenAI text-davinci生成响应的问题

问题排查:语音转文本后无法触发GPT响应

核心问题

  1. Gradio的launch()是阻塞式方法,启动Web界面后会占用主线程,导致后续的GPT调用逻辑(main()函数)完全无法执行。
  2. 原代码将语音转写与GPT响应拆分为独立流程,全局变量prompt_input无法在UI线程和主线程间正确同步,GPT始终读取初始空字符串。

修复后的完整代码

import openai
import gradio as gr
import whisper

# 初始化Whisper模型
whisper_model = whisper.load_model("base")

# 配置OpenAI API
openai.api_key = '你的API_KEY'
openai.api_base = 'https://api.openai.com'

def transcribe_and_respond(audio):
    # 1. 语音转文本
    audio = whisper.load_audio(audio)
    audio = whisper.pad_or_trim(audio)
    mel = whisper.log_mel_spectrogram(audio).to(whisper_model.device)
    
    # 检测语言
    _, probs = whisper_model.detect_language(mel)
    print(f"Detected language: {max(probs, key=probs.get)}")
    
    # 解码音频
    options = whisper.DecodingOptions()
    result = whisper.decode(whisper_model, mel, options)
    user_prompt = result.text
    
    # 2. 调用GPT生成响应
    if not user_prompt:
        return "请输入语音内容", ""
    
    try:
        response = openai.Completion.create(
            engine='text-davinci-003',
            prompt=f'User: {user_prompt}\nBot: ',
            max_tokens=1024,
            n=1,
            stop=None,
            temperature=0.7
        )
        bot_response = response.choices[0].text.strip()
    except Exception as e:
        bot_response = f"GPT调用出错: {str(e)}"
    
    return user_prompt, bot_response

# 构建Gradio界面
gr.Interface(
    title='语音转文本+GPT聊天', 
    fn=transcribe_and_respond, 
    inputs=gr.Audio(source="microphone", type="filepath"),
    outputs=[
        gr.Textbox(label="转写文本"),
        gr.Textbox(label="GPT响应")
    ],
    live=True
).launch(share=True)

修改说明

  • 将语音转写和GPT响应整合到同一个函数transcribe_and_respond中,保证流程连贯。
  • 移除了阻塞主线程的独立main()循环,让所有逻辑在Gradio的交互框架内运行。
  • 添加了异常捕获,方便排查GPT调用时的错误(比如API密钥无效、网络问题等)。
  • 调整了Gradio的输出为两个文本框,分别展示转写结果和GPT响应,更直观。

内容的提问来源于stack exchange,提问作者Thanatosq

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 16:45:16