我正在尝试编写一个 Python 脚本来处理存储在 S3 上的音频数据。
我有一个 S3 对象,我正在使用它调用
def grabAudio(filename, directory):
obj = s3client.get_object(Bucket=bucketname, Key=directory+'/'+filename)
return obj['Body'].read()
使用访问数据
print(obj['Body'].read())
产生正确的音频信息。所以它可以很好地访问存储桶中的数据。
当我尝试在我的音频处理库(pydub)中使用这些数据时,它失败了:
audio = AudioSegment.from_wav(grabAudio(filename, bucketname))
Traceback (most recent call last):
File "split_audio.py", line 38, in <module>
audio = AudioSegment.from_wav(grabAudio(filename, bucketname))
File "C:\Users\jmk_m\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pydub\audio_segment.py", line 544, in from_wav
return cls.from_file(file, 'wav', parameters)
File "C:\Users\jmk_m\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pydub\audio_segment.py", line 456, in from_file
file.seek(0)
AttributeError: 'bytes' object has no attribute 'seek'
从 s3 传入的对象的格式是什么?我猜是字节数组?如果是这样,有没有办法将其解析为 .wav 格式而无需保存到磁盘?我试图避免保存到磁盘。
还对替代音频处理库开放。