我使用浏览器录制音频,然后通过ajax将blob文件发送到我的服务器。我可以用播放器打开它并听到我的声音。尽管它已经损坏了,但是尽管录制了几秒钟,但播放器仍显示音频长达435小时。我想以二进制形式将其发送到转录服务,并且它无法识别这种形式的文件。我有什么选择?我可以用python修复它,还是可以用js正确设置元数据。
mediaRecorder.onstop = function() {
var blob = new Blob(chunks, {'type': 'audio/wav'});
var formData = new FormData();
formData.append('audio', blob, 'audio.wav');
$.ajax({
type: 'POST',
url: 'http://localhost:5000/ajax/get_file/',
data: formData,
processData: false,
contentType: false,
success: function(response) {
console.log(response)
}
});
[没关系,我改用Recorder.js,它内置了wav导出功能。现在已经正确设置了元数据
告诉记录器使用什么格式:
const recorder = new MediaRecorder(stream, {mimeType: 'audio/wav'});
然后不要在Blob构造函数中撒谎:
const blob = new Blob(chunks, {type: chunks[0].type});