首页 文章

如何将来自AngularJS的音频流式传输到Google Cloud Speech API

提问于
浏览
2

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

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

Google提供了一组client libraries,允许您从服务器端平台(如C#,Node和Java)流式传输到其API,但我找不到示例,说明如何执行以下任一操作:

  • 将AngularJS的音频流直接传输到Google Cloud Speech API

  • 将来自AngularJS的音频流传输到自定义API,该API使用客户端库将Feed中继到Google Cloud Speech API

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

1 回答

  • 2

    一些选择:

    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);
    }
    

相关问题