我们有IOT传感器,可将wav文件上传到S3存储桶。
我们希望能够使用 aws lambda
从每个要上传的文件(创建obj事件)中提取声音功能。为此,我们需要:
- python librosa 或 pyAudio分析包+ numpy和scipy。 (〜240mb,未压缩)
- ffmpeg(未压缩的〜70mb)
如您所见,没有办法将它们全部放在同一个lambda包中(最大250mb未压缩)。当收集wav文件时,如果不在图层中不包含ffmpeg,则会出现错误:
[ERROR] FileNotFoundError: [Errno 2] No such file or directory: 'ffprobe': 'ffprobe'
与ffmpeg有关。
我们正在寻找实施建议,我们考虑过:
-
将ffmpeg文件放入s3,并在每次调用时将其获取(无需将其放置在层中。(即使可能)
-
绑定两个lambda :1用于通过ffmpeg处理输入文件,并将输出文件放入另一个存储桶中> 2调用函数并从处理后的数据中提取特征。 (使用snS /链接机制)(如果可能的话)
- 移至EC2 ,当同时上传两个文件时,在此处进行并发调用会产生问题。
必须有一种简便的方法,在开始实施之前,很高兴听到其他意见, 谢谢大家!