У меня есть 12 коротких (3-х секундных) аудиофайлов, хранящихся в ведре S3. Я пытаюсь разработать приложение Alexa, в котором вы можете сказать «play (название звука)», и оно будет воспроизводить один из этих аудиофайлов. Я уже создал свое приложение alexa, я создал свою лямбда-функцию aws, однако я не уверен, как получить и воспроизвести аудиофайл из моей корзины S3 с помощью моей лямбда-функции AWS. Есть ли у кого-нибудь идеи, как это сделать? Я новичок в Node.js, AWS, S3 Buckets.
Как воспроизвести аудиофайл из S3 Bucket в функции AWS Lambda с помощью Node.js?
Ответы (2)
Вы указываете свои речевые ответы на s3 uri, который, как упоминалось в комментариях, должен иметь открытый доступ, тогда вы создадите звук воспроизведения ответов, и ваш ответ будет использовать теги ssml.
<speak> <audio src=" "</speak>
ваш s3 url звукового клипа между "". Документация, если вы застряли, находится здесь: https://developer.amazon.com/docs/custom-skills/speech-synthesis-markup-language-ssml-reference.html#audio
Вот документация к аудиоплееру:
https://developer.amazon.com/docs/custom-skills/audioplayer-interface-reference.html
Как сказал Брэд, если он общедоступен, вы можете использовать URL-адрес в соответствии с инструкциями в этой документации. Есть встроенные намерения для обработки таких вещей, как «пропустить» и «остановить», и вы можете использовать методы AudioPlayer для обработки фактического воспроизведения звука:
AudioPlayer.Play: отправляет Alexa команду для потоковой передачи аудиофайла, идентифицированного указанным audioItem.
AudioPlayer.Stop: останавливает любой воспроизводимый в данный момент аудиопоток.
AudioPlayer.ClearQueue: очищает очередь от всех аудиопотоков.
По сути, вы напишете некоторую логику в своей лямбда-функции, чтобы направить сеанс в желаемый обработчик намерений, и использовать эти методы вместе с объектом, указывающим на ваш URL-адрес.