in srf-longrun-job-dataflow/srflongrunjobdataflow.py [0:0]
def stt_output_response(data):
from oauth2client.client import GoogleCredentials
from googleapiclient import discovery
credentials = GoogleCredentials.get_application_default()
pub_sub_data = json.loads(data)
speech_service = discovery.build('speech', 'v1p1beta1', credentials=credentials)
get_operation = speech_service.operations().get(name=pub_sub_data['sttnameid'])
response = get_operation.execute()
# handle polling of STT
if pub_sub_data['duration'] != 'NA':
sleep_duration = round(int(float(pub_sub_data['duration'])) / 2)
else:
sleep_duration = 5
logging.info('Sleeping for: %s', sleep_duration)
time.sleep(sleep_duration)
retry_count = 10
while retry_count > 0 and not response.get('done', False):
retry_count -= 1
time.sleep(120)
response = get_operation.execute()
# return response to include STT data and agent search word
response_list = [response,
pub_sub_data['filename']
]
return response_list