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

使用R语言保存OpenAI TTS API响应的音频文件

使用httr2保存OpenAI TTS API的音频响应

问题描述

用httr2包调用OpenAI的TTS(文本转语音)API过程正常,但无法将API响应保存为音频文件。由于该API较新,对应R包未完成适配更新,只能依赖httr2实现。参考过Python中的stream_to_file()功能,想知道R中如何实现类似的音频保存操作。

尝试过用av包的av_audio_convert(response)和av_audio_convert(response$body)转换为MP3,均触发报错:Error in path.expand(path) : invalid 'path' argument,av包其他读取类函数也无效。API返回的响应信息如下:

<httr2_response>
POST https://api.openai.com/v1/audio/speech
Status: 200 OK
Content-Type: audio/mpeg
Body: In memory (899520 bytes)

解决方法

直接写入二进制文件

OpenAI TTS API返回的是原生audio/mpeg格式的二进制数据,无需额外转换,直接将响应体写入文件即可得到可播放的MP3:

# 假设response是你的httr2响应对象
writeBin(response$body, "output.mp3")

格式转换(可选)

av包的av_audio_convert仅接受文件路径作为输入,无法直接处理内存中的二进制数据。如果需要转换音频格式,可先保存原始MP3,再用av包处理:

# 保存原始MP3文件
writeBin(response$body, "temp.mp3")
# 转换为WAV格式示例
av::av_audio_convert("temp.mp3", "output.wav")

内容的提问来源于stack exchange,提问作者Charles Hébert

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 10:33:11