如何使用 Node.js 在 AWS Lambda 函数上播放来自 S3 Bucket 的音频文件?

How to play an audio file from S3 Bucket on AWS Lambda function using Node.js?

我在 S3 存储桶中存储了 12 个短(3 秒)音频文件。 我正在尝试开发一个 Alexa 应用程序,您可以在其中说 "play (sound name)",它会播放其中一个音频文件。我已经创建了我的 alexa 应用程序,我创建了我的 aws lambda 函数,但是,我不确定如何通过我的 AWS lambda 函数从我的 S3 存储桶中检索和播放音频文件。有没有人知道如何做到这一点?我是 Node.js、AWS、S3 Buckets 的新手。

这是音频播放器的文档:

https://developer.amazon.com/docs/custom-skills/audioplayer-interface-reference.html

如 Brad 所说,如果它是 public,那么您可以按照该文档中的说明使用 url。有内置的意图来处理 "skip" 和 "stop" 之类的事情,您可以使用 AudioPlayer 的方法来处理音频的实际播放:

AudioPlayer.Play:向 Alexa 发送命令以流式传输指定 audioItem 标识的音频文件。

AudioPlayer.Stop: 停止任何当前播放的音频流。

AudioPlayer.ClearQueue: 清除所有音频流的队列。

本质上,您将在 Lambda 函数中编写一些逻辑以将会话定向到您想要的意图处理程序,并将这些方法与指向您的 url.

的对象一起使用

你正在做的是将你的语音响应指向一个 s3 uri,如评论中所述,它需要具有 public 访问权限,然后你将构建你的响应播放声音并且你的响应将使用 ssml 标签。

    <speak> <audio src="   "</speak> 

你的 s3 url 的声音剪辑在“”之间。 如果你遇到困难,文档在这里:https://developer.amazon.com/docs/custom-skills/speech-synthesis-markup-language-ssml-reference.html#audio