Воспроизведение альбома из каталога 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
Другие вопросы по тегам