我是Alexa开发的新手。我创建了一个Alexa技能,连接到使用Nodejs的AWS lambda函数。
我这项技能的目标是根据我(完成)的提要找出当天的专辑是什么,并阅读有关它的简介(完成)并播放专辑。
我获取数据并大声朗读数据的简单意图正在发挥作用。但是我不知道如何使"游戏"意图起作用。
如果当天的专辑是"Witness by Katy Perry",我希望用户说"alexa,要求(myskill)播放当天的专辑",它会回复"Play Witness by Katy Perry"并开始播放该专辑。
这可能吗??
谢谢!
您可以在响应中使用 SSML 类型与 outputSpeech 的<audio src="..."/>
。响应示例:
"response": {
"outputSpeech": {
"ssml": "<speak> Playing 'Witness by Katy Perry': <audio src="https://.../output.mp3" /> </speak> ",
"type": "SSML"
},
...
}
但它有一个限制:音频文件不能超过 90 秒。有关mp3文件的要求可以在这里找到。作为一种解决方法,也许您可以将mp3文件拆分为持续时间为90秒的块。
要为 Alexa 准备 mp3 文件,您可以从终端使用以下命令(它从输入.mp3转换为输出.mp3):
ffmpeg -y -i input.mp3 -ar 16000 -ab 48k -codec:a libmp3lame -ac 1 output.mp3