4

我是 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?

4

1 回答 1

2

几个选项:

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

于 2017-05-09T18:54:10.670 回答