Аудио файл блоба поврежден после записи в браузер с помощью getUserMedia - PullRequest
0 голосов
/ 08 октября 2019

Я записываю аудио в своем браузере, а затем отправляю BLOB-файл на свой сервер через ajax. Я могу открыть его с помощью плеера и услышать мой голос. Однако он поврежден, несмотря на пару секунд записи, проигрыватель показывает, что звук длится 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)
        }
    });

Ответы [ 2 ]

0 голосов
/ 10 октября 2019

Сообщите рекордеру, какой формат использовать:

const recorder = new MediaRecorder(stream, {mimeType: 'audio/wav'});

Тогда не врите насчет формата в конструкторе BLOB-объектов:

const blob = new Blob(chunks, {type: chunks[0].type});
0 голосов
/ 08 октября 2019

Неважно, я использовал Recorder.js, вместо этого он имеет встроенный экспорт WAV. Метаданные теперь установлены правильно

...