我在 S3 存储桶中存储了 12 个短(3 秒)音频文件。我正在尝试开发一个 Alexa 应用程序,您可以在其中说“播放(声音名称)”,它会播放其中一个音频文件。我已经创建了我的 alexa 应用程序,我创建了我的 aws lambda 函数,但是,我不确定如何通过我的 AWS lambda 函数从我的 S3 存储桶中检索和播放音频文件。有谁知道如何做到这一点?我对 Node.js、AWS、S3 存储桶很陌生。
2 回答
这是音频播放器的文档:
https://developer.amazon.com/docs/custom-skills/audioplayer-interface-reference.html
就像布拉德说的那样,如果它是公开的,那么您可以按照该文档中的说明使用该网址。有内置的意图来处理诸如“跳过”和“停止”之类的事情,您可以使用 AudioPlayer 的方法来处理音频的实际播放:
AudioPlayer.Play:向 Alexa 发送命令以流式传输由指定 audioItem 标识的音频文件。
AudioPlayer.Stop:停止任何当前正在播放的音频流。
AudioPlayer.ClearQueue:清除所有音频流的队列。
本质上,您将在 Lambda 函数中编写一些逻辑,以将会话定向到您所需的意图处理程序,并将这些方法与指向您的 url 的对象一起使用。
您正在做的是将您的语音回复指向一个 s3 uri,正如评论中提到的,该 uri 需要具有公共访问权限,然后您将构建您的回复播放声音并且您的回复将使用 ssml 标签。
<speak> <audio src=" "</speak>
您在“”之间的声音剪辑的 s3 url。如果您遇到困难,文档在这里:https ://developer.amazon.com/docs/custom-skills/speech-synthesis-markup-language-ssml-reference.html#audio