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



我是HTML5 Web Audio API和Google Cloud Speech API的新手。我正在尝试将语音识别构建到 AngularJS 应用程序中,以便用户可以使用语音转文本执行搜索,而不是使用键盘键入搜索。

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

Google提供了一组客户端库,允许您从C#,Node和Java等服务器端平台流式传输到其API,但我找不到显示如何执行以下任一操作的示例:

  • 将音频从 AngularJS 直接流式传输到 Google Cloud Speech API
  • 将音频从 AngularJS 流式传输到自定义 API,该 API 使用客户端库将源中继到 Google Cloud Speech API

有没有人找到一种方法将音频从AngularJS/HTML5客户端流式传输到像Google Cloud Speech API这样的API?

几个选项:

  1. 流式传输客户端示例代码:

    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. 使用快速和 WebSocket 连接或以首选语言进行的类似配置在服务器端进行流式传输。

相关内容

最新更新