После поиска больше, один пользователь в этой проблеме github опубликовал пару решений:
1)
client = speech.SpeechClient()
api = operations_v1.OperationsClient(client.transport.channel)
op = api.get_operation(operation_name)
Для него это не вернуло метаданных, хотя для меня (используя google.cloud.speech_v1p1beta
) он вернул некоторые метаданные, но не все (например, вернул имя, не вернул другие, такие как startTime, progressPercent и т. д. c).
2)
speech_service = discovery.build('speech', 'v1p1beta1')
operation = speech_service.operations().get(name=operation_name).execute()
(без вызова execute
будет возвращен объект запроса HTTP http, а не операция). Это работало лучше и возвращало объект, более похожий на объект операции, возвращенный исходным запросом long_running_recognize
.
Хотя я до сих пор не нашел официальную документацию для любого решения. Существует пример, который можно более или менее индуктивно получить из исходного кода .