如何将音频从 AngularJS 流式传输到 Google Cloud Speech API

How to stream audio from AngularJS to Google Cloud Speech API

我是 HTML5 网络音频 API 和 Google 云语音 API 的新手。我正在尝试将语音识别构建到 AngularJS 应用程序中,以便用户可以使用语音到文本执行搜索,而不是使用键盘输入搜索内容。

目的是使用 getUserMedia() 从客户端捕获音频并将其流式传输到 Google Cloud Speech API,并异步接收返回结果。

Google 提供一组 client libraries 允许您从服务器端平台(如 C#、Node 和 Java 流式传输到他们的 API 但我不能找不到显示我如何执行以下任一操作的示例:

有没有人找到将音频从 AngularJS/HTML5 客户端流式传输到 API 的方法,例如 Google Cloud Speech API?

几个选项:

  1. 流客户端sample code:

    function sendBytesToSpeech (bytes, encoding, rate, callback) {
      gapi.client.speech.speech.syncrecognize({
        config: {
          encoding: encoding,
          sampleRate: rate
        },
        audio: {
          content: bytes
        }
      }).execute(function (r) {
        callback(r);
      });
    }
    
    function sendBlobToSpeech (blob, encoding, rate) {
      var speechSender = new FileReader();
      speechSender.addEventListener('loadend', function () {
        sendBytesToSpeech(btoa(speechSender.result), encoding, rate, uiCallback);
      });
      speechSender.readAsBinaryString(blob);
    }
    
  2. 使用 Express and a WebSocket connection 或您首选语言的类似配置在服务器端流式传输。