使用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
相关产品推荐
相关产品推荐

