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

使用OpenAI文本转音频时遇AttributeError错误求助

解决OpenAI文本转音频的AttributeError问题

错误原因

你遇到的AttributeError是因为OpenAI Python SDK v1+版本中,openai.audio.speech.create()返回的是HttpxBinaryResponseContent对象,该对象没有with_streaming_response属性——这是旧版本SDK的用法,新版本已简化文件保存逻辑。

正确实现代码

方法1:使用内置write_to_file()方法(推荐)

这是SDK提供的最简保存方式:

from pathlib import Path
import openai

def audio(prompt):
    # 用原始字符串避免Windows路径转义问题
    speech_file_path = Path(r'C:\Users\beni7\Downloads\proyectos_programacion\proyecto_shorts\audio') / "speech.mp3"
    response = openai.audio.speech.create(
        model="tts-1",
        voice="alloy",
        input=prompt
    )
    # 直接调用方法保存文件
    response.write_to_file(speech_file_path)

方法2:手动写入二进制内容

如果需要更灵活的控制,可手动处理二进制数据:

from pathlib import Path
import openai

def audio(prompt):
    speech_file_path = Path(r'C:\Users\beni7\Downloads\proyectos_programacion\proyecto_shorts\audio') / "speech.mp3"
    response = openai.audio.speech.create(
        model="tts-1",
        voice="alloy",
        input=prompt
    )
    # 手动写入二进制内容到文件
    with open(speech_file_path, "wb") as f:
        f.write(response.content)

额外注意事项

  • 路径处理:Windows路径的反斜杠需转义,或用原始字符串(r"路径")避免错误;
  • SDK版本:确保安装最新版,执行pip install --upgrade openai更新;
  • 你提到的stream_to_field()应为拼写错误,正确方法名是stream_to_file(),但新版本更推荐write_to_file()。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 19:20:04