Почему я не могу получить доступ к результатам запроса Google Speech? - PullRequest
0 голосов
/ 19 января 2019

Я хочу иметь возможность запускать несколько одновременных длинных заданий распознавания, поэтому я написал следующий код Python.

client = speech.SpeechClient()
config = types.RecognitionConfig(
    encoding=enums.RecognitionConfig.AudioEncoding.FLAC,
    language_code='en-US')
audio = {"Brooklyn": types.RecognitionAudio(uri='gs://cloud-samples-tests/speech/brooklyn.flac')}
jobs = {}
output = {}

for name, job in audio.items():
  jobs[name] = client.long_running_recognize(config, job)

while len(jobs) > 0:
  time.sleep(5)
  for name, job in jobs.items():
    if job.done() == False:
      print(name + ' progress: ' + str(job.metadata.progress_percent))
    else:
      print(name + ' is done!')
      output[name] = job
      jobs.pop(name)

for name, result in output.items():
  print(u'Transcript: {}'.format(result.alternatives[0].transcript))
  print('Confidence: {}'.format(result.alternatives[0].confidence))

Он работает нормально, но при попытке распечатать результат стенограммы на второмдо последней строки я получаю ошибку AttributeError: 'Operation' object has no attribute 'alternatives'.Я думаю, что упускаю что-то довольно очевидное в том, как атрибуты вложены в объект клиента, но я просто не могу понять это.

1 Ответ

0 голосов
/ 19 января 2019

Понял, что мне нужно использовать import pdb; pdb.set_trace() в другом, чтобы выяснить, что Google на самом деле возвращает мне. Оказывается, я был прав, было какое-то дополнительное вложение, о котором я не знал. print(u'Transcript: {}'.format(result._result.results[0].alternatives[0].transcript)) сделал свое дело.

...