Ingrid
Ingrid

Reputation: 161

Retrieve audio data in JSON format and play it through Amazon Alexa

I am working on a custom lambda function in JavaScript for the Amazon Alexa. Amazon's docs have clear details on building custom skills, and I have successfully built several "stock" skills from their templates.

I am writing a unique skill now which must retrieve the JSON data located at this link: https://api.ense.nyc/latest

and then 'play' that data (since the data is snippets of audio) through the Alexa. I am not sure what to write to bring about this functionality.

Upvotes: 0

Views: 1931

Answers (3)

a4anup
a4anup

Reputation: 1

1)The audio should be available to public in (.mp3) 2)The audio should be in Alexa-friendly format

Converting audio files to an Alexa-friendly format using Audacity

1)Open the file to convert. 2)Set the Project Rate in the lower-left corner to 16000. 3)Click File > Export Audio and change the Save as type to MP3 Files. 4)Click Options, set the Quality to 48 kbps and the Bit Rate Mode to Constant.

Upvotes: 0

German
German

Reputation: 10402

It seems that the audio files are short. In that case connect to the endpoint using an http fetch library (eg. httpm module, node-fetch or axios in node.js). Once you get the json file navigate to the properties that have the audio, get the url, surround them by audio tags <audio src="url"/> ands send them in a standard speech response of your skill. The audio tag has time and quality limitations so if you run into issues the audio is probably longer or a different quality than expected.

Upvotes: 0

SpaceDust__
SpaceDust__

Reputation: 4914

This is a bit complicated than your average stock skills, from the url it looks like a podcast skill.

You need to

Parse The JSON and get the audiourl from the list.
Set the skill state to PLAY_MODE.
Keep track of audio progress with audio event handlers.
Probably use a dynamodb alike database to persist incase your session ends and your audios are long so they keep on playing.

here is a sample skill, that parses a RSS feed for a podcast then plays the audios in a row

https://github.com/bespoken/streamer

Upvotes: 1

Related Questions