node.js - 直接从 Lambda/tmp 文件夹播放音频

标签 node.js amazon-s3 aws-lambda alexa

我目前正在使用 Lambda 在 Node 中构建 Alexa 应用程序。我需要转换和合并多个音频文件。我目前正在使用谷歌文本转语音创建一个音频文件(关于需要它的长篇故事),我将其写入/tmp 并从 s3 中提取一个音频文件,我也将其写入/tmp。然后,我使用 sox 合并两个文件(见下文)并写回 S3(当前公开),然后我对其进行硬编码以播放该特定剪辑。

我的问题是是否可以直接从/tmp 文件夹播放音频,而不是必须将文件写回 S3。

await lambdaAudio.sox('-m /tmp/google-formatted.mp3 /tmp/audio.mp3 /tmp/result.mp3')

// get data from resulting mp3
const data = await readFile('/tmp/result.mp3');
const base64data = new Buffer(data, 'binary');

// put file back on AWS for playing
s3.putObject({
  Bucket: 'my-bucket',
  Key: 'result.mp3',
  Body: base64data,
  ACL:'public-read'
},function (resp) {
  console.log('Done');
});

return`<audio src="https://s3.amazonaws.com/my-bucket/result.mp3" />`;

最佳答案

我通常会上传 lambda 函数,压缩代码和模块以及我的代码所需的所有文件。 https://developer.amazon.com/blogs/post/Tx1UE9W1NQ0GYII/Publishing-Your-Skill-Code-to-Lambda-via-the-Command-Line-Interface 因此,如果您压缩/tmp 目录并将其作为 lambda 代码的一部分发布,则您的 lambda 函数将可以访问音频文件

关于node.js - 直接从 Lambda/tmp 文件夹播放音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55303357/

相关文章:

aws-lambda - 如何在 Netlify lambda 函数之间共享代码

node.js - 如何安装旧版本的 express.js

javascript - 连接 MEAN 堆栈的 A 和 M 组件 - 需要提示和指导

linux - 如何将 AWS CLI 升级到最新版本?

ios - 如何使用 AWS iOS SDK 从设备上传图像并设置为公开

amazon-web-services - 使用 Lambda - Node.js 获取调用 AWS HTTP API 的 URL

java - 如何将网络书通知中的参数获取到我的 AWS Lambda 函数中?

node.js - 如何将触发操作中的对话框与提示分开 (Microsoft Botbuilder SDK)

python - 一个文件启动所有服务... mongodb、redis、node、angular 和 python

java - 第三方以编程方式拥有的 Amazon S3 存储桶数据下载