gpt4 book ai didi

javascript - 将音频数据从 JS 发送到 Python

转载 作者:行者123 更新时间:2023-11-28 18:21:03 25 4
gpt4 key购买 nike

我正在尝试使用 Flask 将 JS 的 .wav 音频文件 (blob) 发送到 Python。我只是想将文件保存在Python端并能够在我的电脑上播放。这是我的尝试:

JS:

fetch(serverUrl, {
method: "post",
body: blob
});

其中 blob 的类型为 Blob {size: 5040, type: "audio/wav;"}

Python:

@app.route('/messages', methods = ['POST'])
def api_message():
# Open file and write binary (blob) data
f = open('./file.wav', 'wb')
f.write(request.data)
f.close()
return "Binary message written!"

文件已保存,但仅包含大量[object BlobEvent]。我做错了什么以及如何解决它?

编辑:音频样本是使用 MediaRecorder()

收集的
const mediaRecorder = new MediaRecorder(stream);
// Start
const chunks = [];
mediaRecorder.ondataavailable = e => {
chunks.push(e);
}
// On stop
blob = new Blob(chunks, {'type': 'audio/wav;'});

我尝试在客户端再次播放音频,效果很好:

const audio = document.createElement('audio');
const audioURL = window.URL.createObjectURL(blob);
audio.src = audioURL;

最佳答案

您将事件对象数组传递给 Blob 构造函数,而不是音频数据。
数据是e.data,所以你的代码应该是

mediaRecorder.ondataavailable = e => {
chunks.push(e.data);
}

关于javascript - 将音频数据从 JS 发送到 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39875668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com