Javascript 如何修复谷歌语音API“;返回空白结果";问题

Javascript 如何修复谷歌语音API“;返回空白结果";问题,javascript,jquery,ajax,google-speech-api,Javascript,Jquery,Ajax,Google Speech Api,我看了谷歌的演示并试了一下。想在我的web应用程序中实现它,但它似乎不起作用。我已经用我的麦克风捕获了一个音频块,并像谷歌想要的那样用base64编码。问题是无论我做什么,它都不会作为错误返回,而是返回空。我通过ajax发送数据。下面是一些代码来演示: navigator.mediaDevices .getUserMedia( // constraints - only audio needed for this app { audio: tru

我看了谷歌的演示并试了一下。想在我的web应用程序中实现它,但它似乎不起作用。我已经用我的麦克风捕获了一个音频块,并像谷歌想要的那样用base64编码。问题是无论我做什么,它都不会作为错误返回,而是返回空。我通过ajax发送数据。下面是一些代码来演示:

 navigator.mediaDevices
    .getUserMedia(
      // constraints - only audio needed for this app
      {
        audio: true
      }
    )

    // Success callback
    .then(function(stream) {
      console.log(navigator.mediaDevices.getSupportedConstraints());
      var mediaRecorder = new MediaRecorder(stream, { sampleRate: 16000 });
      var chunks = [];
      $(".rec-button")
        .mousedown(function() {
          console.log("rec start");
          $(".rec-button i").addClass("recStart");
          mediaRecorder.start();
          console.log(mediaRecorder.state);
          console.log("recorder started");
        })
        .mouseup(function() {
          console.log("rec end");
          $(".rec-button i").removeClass("recStart");
          mediaRecorder.stop();
          mediaRecorder.ondataavailable = function(e) {
            chunks.push(e.data);
            var audio = document.getElementById("player");
            var blob = new Blob(chunks, { type: "audio/ogg; codecs=opus" });
            var player = document.getElementById("player");
            player.src = URL.createObjectURL(blob);
            chunks = [];
            console.log(blob);
            var reader = new window.FileReader();
            reader.readAsDataURL(blob);
            reader.onloadend = function() {
              var base64 = reader.result;
              base64 = base64.split(",")[1];
              var jsonRec = {
                audio: {
                  content: base64
                },
                config: {
                  encoding: "OGG_OPUS",
                  sampleRateHertz: 48000,
                  languageCode: "en-US",
                  audioChannelCount: 2,
                  enableSeparateRecognitionPerChannel: true,
                }
              };
              $.ajax({
                url:
                  "https://speech.googleapis.com/v1/speech:recognize?key=**my_api_key**",
                method: "POST",
                contentType: "application/json",
                dataType: "json",
                data: JSON.stringify(jsonRec),
                success: function(response) {
                  console.log(response);
                },
                error: function(err) {
                  console.log(err);
                }
              });
            };
            console.log(mediaRecorder.state);
            console.log("recorder stopped");
          };
        });
    })

    // Error callback
    .catch(function(err) {
      console.log("The following getUserMedia error occured: " + err);
    });
我可以让音频在标签中播放,所以我不使用似乎有问题的东西。我的回答总是{}。我想要它发送的是我演讲稿的抄本