python - 如何将 blob 文件转换为特定格式?

标签 python reactjs audio blob wav

我正在使用 ReactJS 和 Django 框架构建一个 Web 应用程序。
在这个 Web 应用程序中,有一部分是我录制音频文件并将其发送到后端进行保存。
这是我从 ReactJS 发送的 blob 数据:

Blob {
size: 29535, 
type: "audio/wav; codecs=0"
}
这是我在后端使用的代码:
@api_view(['POST'])
@csrf_exempt
def AudioModel(request):
    try:
        audio = request.FILES.get('audio')
    except KeyError:
        return Response({'audio': ['no audio ?']}, status=HTTP_400_BAD_REQUEST)

    destination = open('audio_name.wav', 'wb')
    for chunk in audio.chunks():
        destination.write(chunk)
    destination.close()  # closing the file

    return Response("Done!", status=HTTP_200_OK) 
当我播放保存的文件时,它会播放一些声音,但在播放结束时崩溃。
这个问题让我寻找有关我保存的文件的一些信息(扩展名,...)。
出于这个原因,我使用了 fleep图书馆:
import fleep

with open("audio_name.wav", "rb") as file:
    info = fleep.get(file.read(128))

print(info.type)
print(info.extension)
print(info.mime)
输出:
['video']
['webm']
['video/webm']
但是在输出中获取视频!
  • 难道我做错了什么?
  • 我该如何解决这个问题?
  • 有什么可以用来以所需格式保存文件的吗?

  • 任何帮助表示赞赏。
    编辑:
    保存文件的前 128 个字节的输出:
    b'\x1aE\xdf\xa3\x9fB\x86\x81\x01B\xf7\x81\x01B\xf2\x81\x04B\xf3\x81\x08B\x82\x84webmB\x87\x81\x04B\x85\x81\x02\x18S\x80g\x01\xff\xff\xff\xff\xff\xff\xff\x15I\xa9f\x99*\xd7\xb1\x83\x0fB@M\x80\x86ChromeWA\x86Chrome\x16T\xaek\xbf\xae\xbd\xd7\x81\x01s\xc5\x87\xbd\x8d\xc0\xd5\xc6\xaf\xd0\x83\x81\x02\x86\x86A_OPUSc\xa2\x93OpusHead\x01\x01\x00\x00\x80\xbb\x00\x00'
    

    最佳答案

    使用 SciPy从各种文件格式读取数据和写入数据。
    用法示例:

  • Writing wav file in Python with wavfile.write from SciPy
  • scipy.io.wavfile.write
  • 关于python - 如何将 blob 文件转换为特定格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63495338/

    相关文章:

    python - 如何处理多个应用程序使用的 Django 项目中的公共(public)代码

    javascript - 如何在React中设置增量和减量方法的最大值和最小值

    python - Gstreamer+python : adding and removing audio sources while pipeline is running

    javascript - 使用 jest.unmock 测试 Promise

    javascript - html5音频所需的一些代码帮助

    javascript - 如何按数组的长度加载多个音频播放器并在每个播放器上播放不同的声音?

    python - 无法在 Keras 中训练简单的自动编码器

    python - Python新手,找不到bug

    python - 从 HBase 解码 HappyBase 数据

    reactjs - 如何为react-select异步设置defaultValue并且在v2.0.0的onBlur时不重置?