我正在寻找一种使用get operations来与Google语音API相关的official Google Python Client的方法。
似乎具有与List Operations
和Get Operations
API进行交互的能力,如图here所示。但是,似乎由客户端公开的only three methods被识别,long_running_recognize和streaming_recognize。 (我链接了Beta文档,但非beta版本似乎相同)。
是否有一种方法可以通过Python客户端执行此操作,而不仅仅是直接击中HTTP路由?
经过更多搜索后,this github issue中的一位用户发布了一些解决方案:
1)
client = speech.SpeechClient()
api = operations_v1.OperationsClient(client.transport.channel)
op = api.get_operation(operation_name)
对他来说,这没有返回元数据,尽管对我来说(使用google.cloud.speech_v1p1beta
)它确实返回了一些元数据,但不是全部(例如,没有返回名称,没有返回诸如startTime,progressPercent等的其他元数据)。
2)
speech_service = discovery.build('speech', 'v1p1beta1')
operation = speech_service.operations().get(name=operation_name).execute()
((不调用execute
将返回Google http请求对象,而不是操作)。这样效果更好,并且返回的对象更像原始long_running_recognize
请求返回的操作对象。
尽管我仍未找到任何一种解决方案的官方文档。有一个可以或多或少地从source code归纳得出的例子。