【问题标题】:How make Google Speech to Text API Async如何使 Google Speech to Text API 异步
【发布时间】:2020-06-25 08:20:37
【问题描述】:

我正在使用 Google Speech to Text API 来转换音频文件。问题在于,在 Google Speech to text 中,即使我们使用 long_running_recognize() 将其设为异步,我们也必须等待操作完成。

有没有办法让它完全异步?这样当我们上传音频文件时,它会为我们提供一个 operation_id,我们可以使用它随时异步下载转录。

【问题讨论】:

标签: python google-cloud-platform google-api speech-to-text google-speech-to-text-api


【解决方案1】:

这很好奇,答案是肯定的,但直接否定。

从任何客户端库发送异步请求时,您将收到一个 Operation object,其中包含两个重要元素:

  • 名字。这将是已发送请求的标识符。

  • 完成。这是告诉我们请求是否完成的布尔值。

在您的实施中,您可以使用long_running_recognize 发送请求,获取名称并返回以查询该名称:

 curl -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
 -H "Content-Type: application/json; charset=utf-8" \
 "https://speech.googleapis.com/v1/operations/your-operation-name"

这个来自docs,关于如何转录长音频。即使它还没有完成,您也应该收到它的答复。

看看this Github issue,用户的代码从代码本身达到了超时,这让他们认为请求没有完成他们能够在到达后检索数据超时。

Github 问题告诉我们什么?即使脚本等待响应超时,该请求仍由 Speech to text 服务处理。我不确定停止脚本是否会保持对 Speech to Text 的实际请求运行,但我可以想到以下几点:

  • 让您的脚本在后台进程或类似线程的实现中运行。

  • 您可以从中删除成绩单打印,因为您想稍后查看此数据。

  • 确保打印您的操作的名称并保存以备后用。

您可以使用上述方法来检索数据或使用另一个脚本来读取数据,只需在需要时传递操作名称即可。通过这些步骤,我们可以模拟对服务的异步调用。

希望这有帮助! :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-08
    • 1970-01-01
    • 1970-01-01
    • 2019-10-20
    • 1970-01-01
    • 1970-01-01
    • 2018-03-24
    • 2019-07-09
    相关资源
    最近更新 更多