Google演讲API超时时间



我正在尝试使用语音API客户端API,以将音频文件转换为文本。

到目前为止,我已经成功地转换了一个简短的音频剪辑,但是现在使用更长的文件(10分钟),我得到了此错误:

Retry total timeout exceeded before anyresponse was received

我已经在文档中阅读了,与async呼叫的最多分钟数为每电话60,我已将文件上传到Google Cloud Storage,因为文件需要超过1分钟的时间。

所以我真的不明白为什么要遇到错误,有任何帮助吗?

默认情况下,系统超时为10分钟。这是其他Google Cloud Services的已知问题,但是修复建议对我不起作用,我认为当您运行代码并启动连接时还需要设置其他问题。

无论如何,有一个解决方法!您可以获得长期运行的操作名称,然后停止程序。该操作将继续在Google服务器上,然后您将获取结果!

文档中写的

异步语音识别开始了长期运行的音频处理操作。

我将在此处参考node.js样本,类似的概念将适用于其他概念。因此,当您得到响应时(请勿使用Promise版本)将其传递给回调,就像此处所述,而不是

operation
    .on('error', function(err) {})
    .on('complete', function(transcript) {
      // transcript = "how old is the Brooklyn Bridge"
    });

只是做

之类的事情
console.log(operation)

记下操作名称,然后在使用操作方法

时使用

您可以在Google Oauth Playground上进行测试

对于其他任何问题,Google现在通过删除超时值修复了此错误。请参阅https://github.com/googleapis/gax-nodejs/pull/140/files我的语音API请求现在在更新到最新的Google-Gax NPM软件包后成功工作。

我找不到将超时设置为10分钟以上的正确方法,因此我直接修改了node_modules/google-gax/lib/longrunning.js。有一个称为backoffSettings的可变性,它具有超时值,这是对node_modules/google-gax/lib/gax.js中函数createBackoffSettings的调用。在我修改该变量之前,就是这样:

backoffSettings =
        createBackoffSettings(100, 1.3, 60000, null, null, null, 600000);

我将其更改为处理1小时的超时:

backoffSettings =
        createBackoffSettings(100, 1.3, 60000, null, null, null, 3600000);

createBackoffSettings功能调用中的最后一个参数为totalTimeoutMillis,如您所见,默认情况下是10分钟。

如果有人知道一种更好的处理方法,请分享。希望它有帮助。

相关内容

  • 没有找到相关文章

最新更新