awslabs / amazon-transcribe-streaming-sdk

The Amazon Transcribe Streaming SDK is an async Python SDK for converting audio into text via Amazon Transcribe.
Apache License 2.0
142 stars 37 forks source link

Unable to deploy to AWS Lambda #18

Open etozzato opened 3 years ago

etozzato commented 3 years ago

The SDK is very promising! The local prototype works like a charm.

However, I haven’t been able to deploy to AWS lambda. When the handler is loaded, an error about the undefined module _awscrt terminates the execution.

I’ve installed transcribe as a dependency, Python 3.8 locally and on the lambda.

Perhaps the binary must be added as a layer?

vrbros commented 3 years ago

Hi, I had a similar issue while deploying to Lambda.

I used this link to download the awscrt-0.6.1-cp38-cp38-manylinux2014_x86_64.whl file. Unzipped it and packaged within a ZIP file along with the lambda_function.py file to upload onto the AWS console Lambda function.

I do like the idea of having it as a Layer though!

Hope this helps.

cheers!

bangnguyen commented 3 years ago

Hi etozzato,

Sorry my question is not related with your issue. You said "The local prototype works like a charm", Did you test the streaming for audio that have a long duration 30 minutes or 1 hour? If yes is it working until end of audio? I have an issue_here and really want to know if anyone have the same?

joguSD commented 3 years ago

@vrbos Is on the right track, you'll need to include the wheel compiled for the appropriate platform. This help page has some more information on including native dependencies in python here:

https://aws.amazon.com/premiumsupport/knowledge-center/lambda-python-package-compatible/

We should update the readme/docs to include a note about lambda usage.

etozzato commented 3 years ago

Thank you for your participation in this issue!

Thank you @vrbros/ @joguSD we shall try to deploy the complied awscrt along with the rest of the lambda, we were on the right track, but python is completely new territory for us and we ended up implementing the transcribe functionality in Ruby and invoke that single responsibility lambda from the "main" lambda... Not optimal, but it ended up working for our small, 100k attendee event with five channels;

@bangnguyen I can't answer that, as we're extractig audio from HLS video segments and they are small (±300kb) files

etozzato commented 3 years ago

I might try this again during holidays and open a PR to update the documentation!

ReyanshKharga commented 3 years ago

@vrbos Is on the right track, you'll need to include the wheel compiled for the appropriate platform. This help page has some more information on including native dependencies in python here:

https://aws.amazon.com/premiumsupport/knowledge-center/lambda-python-package-compatible/

We should update the readme/docs to include a note about lambda usage.

Does this mean there is no way to include this in the lambda layer? I've been bugging my head the whole day :disappointed:

ReyanshKharga commented 3 years ago

Hi @vrbros I used your method but couldn't make it work. Please look at the image below:

https://ibb.co/RP4zDfn