Захват аудио из JavaScript и распознавание его с помощью Google Speech API - PullRequest
0 голосов
/ 01 июля 2018

Я использую библиотеку https://github.com/mattdiamond/Recorderjs для захвата звука.

recorder.exportWAV((data)->
        fileReader = new FileReader;
        fileReader.onload = (blob) ->
            blob = blob.target.result;
            send(btoa(blob))
        fileReader.readAsBinaryString(data)
      )

Но я получил следующую ошибку: Must use single channel (mono) audio, but WAV header indicates 2 channels.

Когда я использую exportMonoWAV качество звука очень низкое, а результаты распознавания плохие.

Как я могу пройти Mono WAV без потери качества?

1 Ответ

0 голосов
/ 10 июля 2018

По умолчанию Recorder.js записывает 2-канальный звук (путем дублирования моноканала, поступающего с микрофона). Вместо этого, чтобы записать монофонический звук (и уменьшить его вдвое), используйте numChannels:1 в конструкторе Recorder.js следующим образом:

var rec = new Recorder(source,{numChannels:1})

numChannels является недокументированной функцией Recorder.js, но отображается в ее js-коде .

Источник (моя статья): https://addpipe.com/blog/using-recorder-js-to-capture-wav-audio-in-your-html5-web-site/

...