Как изменить кодек аудио файла в JavaScript - PullRequest
0 голосов
/ 02 октября 2018

Я собираю аудио из браузера с помощью MediaRecorder, и у создаваемого аудиофайла есть кодек, который несовместим с IBM Watson Speech to Text.Кодек "matroska", и мне нужен кодек PCM.

Как установить кодек аудиофайла, который я собираю из браузера?Вот код, который я использую:

var options = {
  audioBitsPerSecond : 32000
}
var mediaRecorder = new MediaRecorder(audioStream, options);
mediaRecorder.start();

var data = [];
mediaRecorder.ondataavailable = e => console.log(mediaRecorder.audioBitsPerSecond);
mediaRecorder.ondataavailable = e => e.data.size && data.push(e.data);
mediaRecorder.onstop = () => process(data);

function process(data) {
  var int16Array = [];
  const blob = new Blob(data, {
    type: 'audio/wav'
  })

1 Ответ

0 голосов
/ 02 октября 2018

Вы можете установить кодек, установив его во второй переменной аргумента mimeType нового MediaRecorder ().Спасибо Jaromanda X за указание на мою ошибку при взгляде на новый тип BLOB-объектов.Сделайте это так ...

var options = {
    audioBitsPerSecond : 32000,
    mimeType: 'audio/webm;codecs=pcm',
}
var mediaRecorder = new MediaRecorder(audioStream,options);

Проверьте документы MDN на нем: Сеть MDN: MediaRecorder

Вы можете увидеть, поддерживается ли mimetype с isTypeSupported, MediaRecorder.isTypeSupported () .

Итак, какие кодеки поддерживаются? Я много раз искал этот ответ, но лучшее, что я нашелэто еще одна публикация в стеке: Где находится полный список поддерживаемых типов носителей при записи с помощью Media * API?

...