1234567891011121314151617181920212223242526272829303132 |
- import json
- import boto3
- import os
- import urllib
- import requests
- BUCKET_NAME = os.environ['BUCKET_NAME']
- s3 = boto3.resource('s3')
- transcribe = boto3.client('transcribe')
- def lambda_handler(event, context):
-
- job_name = event['detail']['TranscriptionJobName']
- job = transcribe.get_transcription_job(TranscriptionJobName=job_name)
- uri = job['TranscriptionJob']['Transcript']['TranscriptFileUri']
- print(uri)
-
- job_name = job_name.split('input-')[1]
-
- content = urllib.request.urlopen(uri).read().decode('utf-8')
- #write content to cloudwatch logs
- print(json.dumps(content))
-
- data = json.loads(content)
- transcribed_text = data['results']['transcripts'][0]['transcript']
-
- print(job_name)
- file_name = "output/" + job_name.replace('-', '/', 1).rsplit('.wav',1)[0] + ".txt"
-
- object = s3.Object(BUCKET_NAME, file_name)
- object.put(Body=transcribed_text)
|