For the last month I've been working on a Flask extension called Flask-Ask I want to plug. The "Ask" part stands for the "Alexa Skills Kit", which is the service behind the Amazon Echo family of devices.
I've used a lot of web frameworks, and I love Flask! The Alexa Skills Kit is based on its own Request/Response model built in JSON on top of REST, so it made sense to incorporate mitsuhiko's architectural patterns like decorator-based routing, context locals, and templates, and adapt them for Flask-Ask.
Awesome! Thank you so much for this :) I've been experimenting with using Echo for home automation (mainly TV/Logitech Harmony related stuff) and this is really, really cool for that. A tangent: Siri on the AppleTV 4th gen was pretty cool until I got Echo - now having to have that remote and press a button seems archaic. Apple and Google will definitely release something similar soon.
Clever use of flask & ngrok was news to me too. Thanks.
I can imagine asking alexa "whats the best 2 man tent on the wirecutter; order it for me, delivered to work by Friday"*
Do you think the technology will get there anytime soon?
I don't know much about Siri or Google Now voice activation APIs ("Hey Siri" and "OK Google"). Also (as you're probably aware), Google just came out with an Echo competitor called Google Home, which presumably operates on APIs like Echo's.
I think the model itself is probably a generic one. For Echo, speech maps to actions executed on a server, so you can say:
"Alexa, ask calculator what's two plus three"
and from there, Alexa does the non-trivial work of determining that:
1. "calculator" is a skill (i.e. program)
2. "what's two plus three" maps to a function of the program
3. "two" and "three" are arguments of the function.
The Alexa Skills Kit's job is to parse the speech, break it down into those elements, and pass it securely to your program using JSON over HTTPS.
Flask-Ask provides natural mappings to corresponding Python constructs (programs, functions, parameters) through a decorator-based API.
iOS doesn't have an API for custom voice commands, even for native apps. Though there are rumors that they might do something like this, maybe they'll show something at WWDC.
Awesome - looks like a really easy and quick way to get started. I'll be trying this out this weekend. And good job on the video - you got right to the point :)
I'll be making more to cover all aspects of the API: 8 or 9 3-min videos. I think that's all it will take for anyone to become proficient with Flask-Ask and the Alexa Skills Kit. They're easy.
If you try it out this weekend, the Ask constructor has changed from the one in the video
Ask(app)
to
Ask(app, "/")
Also, you don't need to add /_ask to the end of the ngrok URL anymore.
[+] [-] johnwheeler|9 years ago|reply
For the last month I've been working on a Flask extension called Flask-Ask I want to plug. The "Ask" part stands for the "Alexa Skills Kit", which is the service behind the Amazon Echo family of devices.
https://github.com/johnwheeler/flask-ask
I've used a lot of web frameworks, and I love Flask! The Alexa Skills Kit is based on its own Request/Response model built in JSON on top of REST, so it made sense to incorporate mitsuhiko's architectural patterns like decorator-based routing, context locals, and templates, and adapt them for Flask-Ask.
I put up a 5-min tutorial for Flask-Ask here:
https://www.youtube.com/watch?v=eC2zi4WIFX0
You can develop without an Echo Device using Amazon's Echosim service: https://echosim.io/
Thanks!
[+] [-] beggi|9 years ago|reply
[+] [-] gregn610|9 years ago|reply
I can imagine asking alexa "whats the best 2 man tent on the wirecutter; order it for me, delivered to work by Friday"* Do you think the technology will get there anytime soon?
*other review sites are available
[+] [-] mohaps|9 years ago|reply
[+] [-] cdnsteve|9 years ago|reply
Do you know if Android or iOS can expose custom voice commands API like this, without building an entire native app?
[+] [-] johnwheeler|9 years ago|reply
I don't know much about Siri or Google Now voice activation APIs ("Hey Siri" and "OK Google"). Also (as you're probably aware), Google just came out with an Echo competitor called Google Home, which presumably operates on APIs like Echo's.
I think the model itself is probably a generic one. For Echo, speech maps to actions executed on a server, so you can say:
"Alexa, ask calculator what's two plus three"
and from there, Alexa does the non-trivial work of determining that:
1. "calculator" is a skill (i.e. program)
2. "what's two plus three" maps to a function of the program
3. "two" and "three" are arguments of the function.
The Alexa Skills Kit's job is to parse the speech, break it down into those elements, and pass it securely to your program using JSON over HTTPS.
Flask-Ask provides natural mappings to corresponding Python constructs (programs, functions, parameters) through a decorator-based API.
[+] [-] DasIch|9 years ago|reply
[+] [-] arms|9 years ago|reply
[+] [-] johnwheeler|9 years ago|reply
I invested in a Blue Snowball mic, and I'm making more videos:
https://www.youtube.com/watch?v=4FjlV1PeK2w
https://www.youtube.com/watch?v=62WIaU_eVGE
I'll be making more to cover all aspects of the API: 8 or 9 3-min videos. I think that's all it will take for anyone to become proficient with Flask-Ask and the Alexa Skills Kit. They're easy.
If you try it out this weekend, the Ask constructor has changed from the one in the video
Ask(app)
to
Ask(app, "/")
Also, you don't need to add /_ask to the end of the ngrok URL anymore.
Thank you for your interest!
[+] [-] unknown|9 years ago|reply
[deleted]
[+] [-] unknown|9 years ago|reply
[deleted]