Во внешнем интерфейсе у меня есть аудиоблок, который я пытаюсь отправить на сервер Flask, где мне нужно выполнить некоторую обработку звука. строка base64 в Flask. Затем в Flask я кодирую строку в base64 и пытаюсь сохранить ее в локальной файловой системе. Он сохраняется как файл webm, но, когда я пытаюсь воспроизвести звук, это 0 секунд, хотя строка base64 сохранена в файле.
Знаете ли вы, почему звук может не воспроизводиться должным образом? Как мне заставить звук правильно воспроизводиться на бэкэнде?
Frontend:
mediaRecorder.addEventListener("stop", () => {
const audioBlob = new Blob(audioChunks, { 'type' : 'audio/webm'});
const reader = new FileReader();
reader.readAsDataURL(audioBlob);
reader.onload = () => {
const base64AudioMessage = reader.result.split(',')[1];
console.log(reader.result)
fetch("http://localhost:5000/api/audio", {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ message: base64AudioMessage })
}).then(res =>
{console.log(res)});
}
})
Backend:
@app.route('/api/audio', methods=['POST'])
def audio():
content = request.get_json(silent=True)
print(type(content["message"])) #This is type string
ans = base64.b64encode(bytes(content["message"], 'utf-8'))
print(type(ans)) #This is type bytes
with open("audioToSave.webm", "wb") as fh:
fh.write(base64.b64decode(ans))
theAnswer = 'no'
return theAnswer