测试 Speech-to-Text 异步操作 - 无结果

Test ride Speech-to-Text asynchronous operation - no results

我正在尝试 Speech-to-Text API (https://cloud.google.com/speech-to-text/docs/reference/rest/v1p1beta1/speech/longrunningrecognize) 的长 运行 识别方法,并指定了所有需要的参数,例如:

{
  "audio": 
  {
    "uri": "gs://xyz/blabla.mp3"
  },
  "config": 
  {
    "languageCode": "en-US",
    "encoding": "AMR_WB",
    "sampleRateHertz": 16000
  }
}

这 return 我可以在 get 操作中使用的名称 (https://cloud.google.com/speech-to-text/docs/reference/rest/v1/operations/get)。

文档说由 get 编辑的 "operation" JSON 对象 return 将包含我在响应中看不到的参数。

例如没有"done"节点。相反,这就是我得到的:

{
  "name": "xxxxx",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.speech.v1.LongRunningRecognizeMetadata",
    "progressPercent": 100,
    "startTime": "2018-06-08T14:40:54.663240Z",
    "lastUpdateTime": "2018-06-08T15:05:01.161911Z"
  }
}

知道这是为什么吗?至少应该 return 一个状态并且可能是一个错误 (https://cloud.google.com/speech-to-text/docs/reference/rest/v1p1beta1/operations#Operation)?

更新: 现在我得到了结果。服务器问题,但是?这只是暂时的故障吗?

{
  "name": "xxxxx",
  "metadata": {
    "@type": "http://type.googleapis.com/google.cloud.speech.v1.LongRunningRecognizeMetadata …",
    "progressPercent": 100,
    "startTime": "2018-06-08T14:40:54.663240Z",
    "lastUpdateTime": "2018-06-08T15:05:01.161911Z"
  },
  "done": true,
  "error": {
    "code": 13,
    "message": "Server unavailable, please try again later."
  }
}

乍一看,您的请求混合了不受支持的 mp3 format versus a supported audio encoding (AMR_WB)。

让我们假设这种混合物没问题。如果您收到空响应(未返回抄本且未发生任何错误),则可能是您文件中的编码为 wrong。检查前面 link 中的一些验证步骤以确定您的声音文件是否有问题,例如 Cloud Speech-to-Text 服务目前仅支持一个音频通道。

为了缩小问题范围,您可以按照 best practices 转换声音文件。将您的文件转码为采样率为 16,000 Hz 或更高的无损 FLAC 或 LINEAR16 编码就足够了,但是对于完整的建议,请阅读之前的 link。

您上次更新的错误似乎是暂时的,您是否仍然面临这个问题?

如果新文件的问题仍然存在,最好在 public issue tracker 中报告这种情况。

此致!