Как преобразовать аудиоблоб в файл WAV, используя Reactjs или Javascript? - PullRequest
1 голос
/ 03 июня 2019

Я работаю над интерфейсом VUI с интерфейсом Reactjs. У меня есть BLOB-файл, который я могу воспроизвести, но я хочу преобразовать его в .WAV-файл, используя REACT или Javascript, чтобы отправить его на мой сервер.

Я много чего перепробовал, но не нашел решения

toggleRecording() {
    if (this.state.start === 1) {
      console.log("we start recording", this.state.start)
      this.setState({ start: 0, recognition: "" })

      const constraints = {
        audio: {
          sampleRate: 16000,
          channelCount: 1,
        }
      }

      navigator.mediaDevices.getUserMedia(constraints)
        .then(stream => {
          console.log(this);
          this.recorder = new MediaRecorder(stream);
          this.recorder.start();

          const audioChunks = [];
          this.recorder.addEventListener("dataavailable", event => {
            audioChunks.push(event.data);
          });

          this.recorder.addEventListener("stop", () => {
            const audioBlob = new Blob(audioChunks, { 'type': 'audio/wav' });

            const audioUrl = URL.createObjectURL(audioBlob);

            console.log("test: ", audioUrl)
            console.log(audioBlob.type)

            fetch('http://127.0.0.1:6060/api/sendaudio', {
              method: "post",
              headers: { 'Content-Type': 'audio/wav' },
              body: audioBlob
            })
              .then(response => {
                return response.text()
              }).then(text => {
                console.log(text);
                this.setState({ recognition: text })
              });

            //to play the audio file:
            const audio = new Audio(audioUrl);
            audio.play();
          });
        });
    }

Я ожидаю получить файл Wav для публикации на моем сервере, но не знаю, как это сделать ....

...