我是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?
几个选项:
-
流式传输客户端示例代码:
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); }
-
使用快速和 WebSocket 连接或以首选语言进行的类似配置在服务器端进行流式传输。