内部服务器错误,代码7,谷歌语音节点客户端

时间:2017-07-19 00:16:51

标签: node.js google-cloud-speech

我使用node.js模块与google语音API进行交互。

例如

const Speech = require('@google-cloud/speech');

我正在处理成千上万的音频片段转录,正如您所期望的那样....

speech.recognize(filepath, requestOptions)
  .then((results) => {
    //...
  }

MOST成功。但是,每隔一段时间,我就会收到这个错误:

Error: Internal server error, code=7. Try your request again.
  at /home/ubuntu/video_captions/source/node_modules/grpc/src/node/src/client.js:434:17

代码7到底是什么?我无法在文档中找到它。

更新:我似乎找到了grpc错误代码,但代码是由变量名指定的,而不是原始数值: https://grpc.io/docs/guides/error.html#general-errors

1 个答案:

答案 0 :(得分:2)

权限被拒绝错误

gRPC错误代码7表示GRPC_STATUS_PERMISSION_DENIED

  /** The caller does not have permission to execute the specified
     operation.  PERMISSION_DENIED must not be used for rejections
     caused by exhausting some resource (use RESOURCE_EXHAUSTED
     instead for those errors).  PERMISSION_DENIED must not be
     used if the caller can not be identified (use UNAUTHENTICATED
     instead for those errors). */
  GRPC_STATUS_PERMISSION_DENIED = 7,

gRPC错误代码为also documented similarly here

Speech API Error Codes

Cloud Speech API记录了不同的错误代码和PERMISSION_DENIED is documented as follows

  

PERMISSION_DENIED

     

调用方无权执行指定的操作   操作。 PERMISSION_DENIED不得用于引起的拒绝   耗尽一些资源(使用RESOURCE_EXHAUSTED代替那些资源)   错误)。如果调用者不能使用,则不能使用PERMISSION_DENIED   已识别(使用UNAUTHENTICATED代替那些错误)。这个错误   代码并不意味着请求有效或请求的实体   存在或满足其他先决条件。

     

HTTP映射:403禁止

云存储权限

同样根据您的问题,尚不清楚音频内容的来源是什么。如果它位于Google云端存储上,您可能需要确保拥有访问内容的正确权限,我认为这可能是查看权限被拒绝错误的原因。

一次性错误与请求相关的错误

此外,当您收到此错误时,您可以检查如果再次发出相同的请求会发生什么 - 它是以相同的方式失败还是成功?这将有助于确认它们是否是一次性错误,或者是否与您的请求标头和/或有效负载相关。

请求限制

speech API does have request limits which are also enforced,请确保您不会超过它们,并且您也可能会遇到类似的错误。虽然,对于这种情况,我认为您会看到不同的错误RESOURCE_EXHAUSTED而不是PERMISSION_DENIED。我只是作为一个FYI添加它。

  

Cloud Speech API的当前API使用限制如下   (并且可能会有变化):

Type of Limit              Usage Limit
---------------------------------------------------
Requests per 100 seconds*  500
Requests per day*          250,000    
Processing per 100 seconds 5000 seconds of audio    
Processing per day         480 hours of audio
     
      
  • 每个StreamingRecognize会话都被视为单个请求,即使它包含多个StreamingRecognizeRequest帧   流中的音频。
  •   
     

超出这些限制的音频处理请求和/或尝试   会产生错误。

     

这些限制适用于每个Cloud Speech API开发人员项目,并且是   使用给定的a在所有应用程序和IP地址之间共享   开发人员项目。