Воспроизведение альбома из каталога Amazon с помощью пользовательского навыка Alexa
Я новичок в разработке Alexa. Я создал навык Alexa, связанный с лямбда-функцией AWS, которая использует Nodejs.
Моя цель для этого навыка состоит в том, чтобы выяснить, какой альбом дня основан на канале, который у меня есть (сделано), прочитать об этом (сделано) и воспроизвести альбом.
Мои простые намерения, которые получают данные и читают их вслух, работают. Но я не могу понять, как заставить "играть" намерение работать.
Если альбомом дня является "Свидетель Кэти Перри", я хочу, чтобы пользователь сказал: "Алекса, попроси (myskill) проиграть альбом дня", и он ответил бы "Играя Свидетелем Кэти Перри" и начал играть этот альбом.
Это возможно??
Спасибо!
1 ответ
Вы можете использовать тип SSML с <audio src="..."/>
outputSpeech в ответе. Пример ответа:
"response": {
"outputSpeech": {
"ssml": "<speak> Playing 'Witness by Katy Perry': <audio src="https://.../output.mp3" /> </speak> ",
"type": "SSML"
},
...
}
Но у него есть ограничение: аудиофайл не может быть длиннее 90 секунд. Требования к mp3-файлу можно найти здесь. В качестве обходного пути, возможно, вы можете разделить mp3-файл на фрагменты продолжительностью 90 секунд.
Чтобы подготовить mp3-файл для Alexa, вы можете использовать следующую команду из терминала (она преобразует из input.mp3 в output.mp3):
ffmpeg -y -i input.mp3 -ar 16000 -ab 48k -codec:a libmp3lame -ac 1 output.mp3