2017-12-12 36 views
0

私のコードはかなり簡単です。単一チャネルのFLACオーディオファイルでlong_running_recognizeを実行し、Google Cloud Speech APIを使用して結果を保存します。私はlong_running_recognize操作の現在の進捗状況を取得する方法を見つけることを試みています。私はそのトピックに関するいくつかの文書を見つけましたが、私はそれを理解するのに問題があります。long_running_recognize操作の進捗状況を取得する(Google Cloud Speech API)

client = speech.SpeechClient() 
operation = client.long_running_recognize(
    audio = speech.types.RecognitionAudio(
    uri = str('gs://speech-clips/'+self.audio_fqid), 
), 
    config = speech.types.RecognitionConfig(
    encoding = enums.RecognitionConfig.AudioEncoding.FLAC, 
    sample_rate_hertz = sample_rate, 
    enable_word_time_offsets = True, 
    language_code = 'en-US', 
), 
) 
response = operation.result() 

はここで私が見つけた文書の一部です:

すべてのヘルプは大歓迎されます。

答えて

0

長時間の音声認識であるため、APIは操作応答のnameというトークンを与えます。処理が完了するとはtrueになります。

import googleapiclient.discovery 
    import time 
    service = googleapiclient.discovery.build('speech', 'v1') 
    service_request = service.speech().longrunningrecognize(
     body= { 
      "config": { 
       "encoding": "FLAC", 
       "languageCode": "en-US", 
       "enableWordTimeOffsets": True 
      }, 
      "audio": { 
       "uri": str('gs://speech-clips/'+self.audio_fqid) 
      } 
     } 
    ) 
    operation = service_request.execute() 

    name = operation['name'] 
    service_request = service.operations().get(name=name) 
    while True: 

     # Give the server a few seconds to process. 

     print('Waiting for server processing...') 

     time.sleep(1) 

     # Get the long running operation with response. 

     response = service_request.execute() 

     if 'done' in response and response['done']: 
      break 
    return response 
:ここ

は擬似コードです: 私はうまくいけば、それはあなたのために働く可能性があり、要求を行うためにRESTfulなAPIを使用しました