【问题标题】:How to proceed multiple streamingRecognize request in Google Speech-to-Text API?如何在 Google Speech-to-Text API 中处理多个 streamingRecognize 请求?
【发布时间】:2020-02-28 13:15:46
【问题描述】:

我已经使用 Google Speech-to-Text API 构建了一个基于 Web 的 Speech-to-Text 应用程序。

申请流程:

  1. 从浏览器获取音频流
  2. 将音频数据流式传输到语音识别服务,并在我们的用户讲话时获得实时结果

我在我的应用程序中引用了sample codestreamingRecognize 请求与信号客户端调用完美配合,我的服务器可以接收来自 Google Speech API 的临时转录结果。 但是,当同时有多个客户端调用streamingRecognize 时,Google Speech API 会卡住。那么,我可以知道如何同时处理多个streamingRecognize 请求吗?我是否需要创建另一个client 来处理第二个streamingRecognize 请求?谢谢。

后端服务器规格:

  • NodeJS
  • Socket.io

【问题讨论】:

  • 感谢您的回复@nikolay-shmyrev,我已经尝试将创建的客户端推送到全局数组中,甚至使用 eval() 函数来创建动态客户端变量。但是,Google Speech API 仅将临时转录结果返回给第一个创建的客户端...

标签: node.js speech-recognition grpc speech-to-text google-speech-api


【解决方案1】:

您应该能够使用相同的StreamingRecognize() 客户端创建多个streaming 线程,这些线程可用于并行发送请求。您可以查看讨论此主题的 thisthis Github 帖子。

我建议您尝试这种替代方法,并验证您是否可以通过创建 2 个不同的对象客户端来执行这些流式调用,例如:

const client = new speech.SpeechClient();
const recognizeStream = client.streamingRecognize(request)
...
const recognizeStream2 = client.streamingRecognize(request)
...

另一方面,如果要批量进行音频识别,建议使用synchronousasynchronous 方法。

【讨论】:

    【解决方案2】:

    尝试做同样的事情,遇到与您相同的麻烦,或者他们停止工作,或者只有一个客户不时工作而其他人给出奇怪的结果,有时两者都有,看起来您的主帐户只有一个缓冲区,有吗尝试为每个用户生成 api/tokens?值得吗,还是会有相同的缓冲区

    【讨论】:

      猜你喜欢
      • 2012-10-04
      • 2021-02-10
      • 2020-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-26
      • 2019-07-09
      • 2019-10-20
      相关资源
      最近更新 更多