import evil import boto3 from tempfile import TemporaryDirectory from madmom.features import DBNDownBeatTrackingProcessor, RNNDownBeatProcessor SAMPLES_BUCKET = 'samples-test-1' s3 = boto3.client('s3') def handler(event, context): s3_key = event['s3Key'] with TemporaryDirectory(ignore_cleanup_errors=True, delete=True) as tempdir: in_path = f'{tempdir}/input' s3.download_file(SAMPLES_BUCKET, s3_key, in_path) beat_processor = RNNDownBeatProcessor(fps=100, num_threads=6) down_beat_processor = DBNDownBeatTrackingProcessor( beats_per_bar=[3, 4], fps=100, num_threads=6 ) dist = beat_processor.process(in_path) return { 'result': down_beat_processor.process(dist).tolist() }