6

我一直在使用 Chromium Google Speech API,最近改用了 Google Cloud Speech API。自从谷歌云语音 API 发布以来,在识别准确率方面,性能似乎有所下降。我还看到有越来越多的“空结果”返回用于流式传输的音频。

我将音频同时流式传输到多个不同的服务,Google Cloud Speech API 返回空结果,而其他一些服务返回转录文本。让我想知道 Chromium Speech API 和 Google Cloud Speech API 的工作方式是否有任何变化?

我验证了音频的正确标题,并验证了我正在将音频流式传输到 Google。

有没有人遇到过谷歌有时(更像是大多数时候)返回空结果?

4

3 回答 3

3

这种类型的问题更适合公共问题跟踪器,因为它需要更多详细信息才能重现您的确切错误。确保使用所需信息填写此表格,或者至少使用代码的最小工作示例清楚地突出问题。为了准确再现,提供您执行并返回错误的示例代码或命令以及您流式传输的音频文件的配置文件和 URI(或文件)以及返回空结果的示例代码或命令非常重要。

事实上,目前处于测试阶段的语音 API 存在已知问题,因此可能会阻止转录正常工作。同时,您可以参考以下文档来确定是否有任何最佳实践适用于您的案例。

于 2016-10-06T22:04:54.980 回答
1

我也有同样的问题,谷歌语音 API 返回空结果。我使用FFmpgeg将我的音频文件转换为 LINEAR16。为了安装这个工具,我使用了 Homebrew:

brew install ffmpeg

为了将我的音频文件转换为 LINEAR16,我使用了以下命令:

ffmpeg -i input.flac -f s16le -acodec pcm_s16le output.raw

在我将它加载到我的 Google 存储库之后:https ://console.cloud.google.com/storage/browser/

这是我的 JSON 文件,其中包含用于发出请求的配置:

{
  'config': {
      'encoding':'LINEAR16',
      'sampleRate': 16000,
      'languageCode': 'en-US'
  },
  'audio': {
      'uri':'gs://your-bucket-name/output.raw'
  }
}

对于超过 1 分钟的文件,您需要使用 Asyncrecognize 方法:

curl -s -k -H "Content-Type: application/json" \
-H "Authorization: Bearer [YOUR-KEY]" \
https://speech.googleapis.com/v1beta1/speech:asyncrecognize \
-d @sync-request.json

它将返回操作 ID。您可以通过获取操作结果来检查它是否准备好:

curl -s -k -H "Content-Type: application/json" \
-H "Authorization: Bearer " [YOUR-KEY]\
https://speech.googleapis.com/v1beta1/operations/[OPERATION-ID]
于 2017-01-22T07:08:14.300 回答
1

我也收到了空的回复,但最终通过使用不同的设置进行编码得到了结果。

sox async.wav -t raw --channels=1 --bits=16 --rate=16000 --encoding=signed-integer --endian=little async.raw

于 2016-11-04T03:25:22.507 回答