Как сохранить аудио объект в JavaScript - PullRequest
0 голосов
/ 27 марта 2020

Я новичок в JavaScript. Я использую NodeJS и электрон для создания веб-приложения для распознавания речи. Теперь я знаю, что в vanila JavaScript есть объект SpeechRecognition, но он не поддерживается в электронном формате. Но MediaRecorder разрешен. Теперь моя цель - записать аудио от пользователя и преобразовать его в текст. Итак, я использовал объект MediaRecorder для записи аудио от пользователя и преобразования его в объект blob, а затем преобразовал его в аудио объект. Теперь я хочу сохранить аудио в виде файла. Или как-то напрямую преобразовать его в текст.

Вот мой код: (JavaScript) (средство визуализации. js)

window.onload = () => {
  document.querySelector("#b").addEventListener("click", sttr);
  console.log(document.querySelector("#b"));

  var c = document.querySelector('#c');

  function sttr() {
    navigator.mediaDevices.getUserMedia({ audio: true })
    .then(stream => {
      const mediaRecorder = new MediaRecorder(stream);
      mediaRecorder.start();

      const audioChunks = [];
      mediaRecorder.addEventListener("dataavailable", event => {
        audioChunks.push(event.data);
      });
      mediaRecorder.addEventListener("stop", () => {
        const audioBlob = new Blob(audioChunks);
        console.log(audioBlob)

        const audioUrl = URL.createObjectURL(audioBlob);

        console.log(audioUrl)
        const audio = new Audio(audioUrl);
        audio.play();
      });

      setTimeout(() => {
        mediaRecorder.stop();

      }, 3000);


    });
  }
}

(HTML) (index. html):

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Hello World!</title>
    <script>
      window.nodeRequire = require;
      delete window.require;
      delete window.exports;
      delete window.module;
    </script>
  </head>
  <body>
    <h1>Speech Recognition!</h1>
    <br>
    <p>Demo speech recognition with html javascript, nodejs and electron!</p>
    <button id="b">Start Recording</button>
    <button id="s">Stop Recording</button>
    <br>
    <p id="c"></p>
    <a></a>
    <audio></audio>

    <script src="./renderer.js"></script>

  </body>
</html>

Скажите, пожалуйста, что мне делать.

...