首页 > 解决方案 > 试驾 Speech-to-Text 异步操作 - 无结果

问题描述

我正在尝试 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
  }
}

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

文档说 get 返回的“操作” JSON 对象将包含我在响应中看不到的参数。

例如,没有“完成”节点。相反,这就是我得到的全部:

{
  "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"
  }
}

知道为什么吗?至少应该返回一个状态,也许是一个错误(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."
  }
}

标签: google-apigoogle-cloud-platformspeech-to-text

解决方案


乍一看,您的要求是将不受支持的mp3 格式与受支持的音频编码(AMR_WB) 混合在一起。

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

要缩小您的问题范围,您可以按照最佳做法转换您的声音文件。将您的文件转码为具有 16,000 Hz 或更高采样率的无损 FLAC 或 LINEAR16 编码就足够了,但是有关完整建议,请阅读先前的链接。

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

如果您的问题在新文件中仍然存在,最好在他们的公共问题跟踪器中报告这种情况。

问候!


推荐阅读