Execute Alexa Skill programmatically - alexa

I'm wondering if there's a way to execute an Alexa skill programmatically. Specifically, I want a Raspberry Pi to tell my Alexa device to play a specific song from Amazon Music.
I'm really new to Alexa but the docs I'm reading are all about how to create and manage skills, not call them.
Is this possible?

You should try slightly different product from Amazon. It called Alexa Voice Service

Maybe you are looking to reuse the logic you already have via voice with Alexa to play your songs and use another way via raspberry pi to control the music. This could help you:
How can I trigger Alexa intent with clicks rather than voice

Related

How to call Alexa externally?

I have set up an Echo Dot device for my account. My intent is to call an Alexa skill on this device externally.
I have seen a lot of tutorials, but I could only see that these skills were started by voice.
Is there any way to trigger an Alexa skill by using an API, and not using voice at all? If not, what would be the market available alternatives for such a workflow?
It's not possible yet to trigger Alexa directly without Alexa wasn't asked. You could use notifications. Alexa will have a yellow ring and user has to ask for messages.
See https://developer.amazon.com/en-US/docs/alexa/smapi/proactive-events-api.html for details.
I've found a way of achieving this.
By using IFTTT, there is a skill called IFTTTriger that you can install in your Alexa device, and later on, install the https://mkzense.com/iftttrigger . In that way, I was able to create an IFTTT applet that could trigger Alexa using a virtual device.
That is the only way available as of now. Worked perfectly well.

Alexa appliance discovery in custom skill

I have been checking around on this topic, but have not seen a concrete solution on how to get it working. I am building a Custom Skill for Alexa, which currently supports speech. Now I would like to extend the skill with video streaming to a TV.
The only thing the Custom Skill seems to support for this is streaming to Echo Show with the VideoApp directives?
I have seen answers that say it is possible, just return a list of devices, but these devices and their appliance id's seem to be hardcoded, I would need to get an actual list of devices linked to the users account.
So the question is: is it actually possible to incorporate Video Skill functionality (and device discovery) in a custom skill, or would it need to be a separate skill?
Since the SmartTV is not an Alexa-enabled device, streaming to it will be a separate API from the Alexa APIs.
An Alexa skill is similar to a web API, where the front end, user interface, is Alexa.
Imagine if you were building a website that had a couple of buttons on it and a text box. Users would enter some info in the text box and press one of the buttons to start streaming on the TV. The code behind the website would have to communicate with the smart TV somehow to stream the content.
The same way, your skill code would have to figure out a way to communicate with the Smart TV.
This is not something that Alexa would support directly, so it become necessary to identify the API for your SmartTV and a way to communicate to it from the internet which won’t be trivial.

How to use voice recognition in an Alexa Skill to personalize responses

Is there a way I can use voice recognition to personalize responses in an Alexa Skill? I am creating an Alexa Skill where I want Alexa to generate responses based on the user who utters the command. Currently I'm thinking of simply configuring the app such that it asks the user who they are before responding to their command/question. However, this is a very naive approach, so I was wondering if there is a way Alexa can use voice recognition to figure out who is talking to it. Couldn't find anything useful online, so it would be great if anyone here who has done something similar could share their insights.
Amazon is working on this capability, and is current accepting requests to receive more information as it is released. You can sign up with Amazon to receive information here.

Amazon Alexa custom skill and smart home skill. Control devices

I try to implement devices control from Alexa.
I created smart home skill and successfully added user authorization.
I can turn on/off my devices. I understand, that I can add new commands (like stop, play last video, get status and etc.) only using custom skills. But on the basis of this knowledge, I still can not figure out. Can I control devices using additional commands?
For example "Alexa, ask manager to play bedroom TV last video" or "Alexa, ask manager get kitchen camera status".
Yes, you can control.. Refer this project with sample code and steps to interact with amazon alexa. This will help you to get start from the basics.
https://github.com/krvarma/particle-alexa-smart-home-skill

How to amazon alexa api for a web or mobile app?

I want to use amazon alexa api for my website/ mobile application. I would like to know if it is possible to use and how to integrate alexa, given that I develop my custom skill.
You can use the Alexa Voice Service. You will need to collect the user's audio and then submit it to Amazon. The voice snippet does not need to contain the hotword (e.g. Alexa). You should be able to use most features that don't involve the device and aren't asynchronous. For example, you can utilize the alarm or timer features nor the music streams.
It sounds like you are asking how to allow the user to talk to your website or mobile app.
An Alexa custom skill is something you create to extend Alexa's vocabulary, so to speak. It isn't an alternative to using a mouse or keyboard with an existing app.
A website and a mobile app are, or can be, two different ways for a user to access the functionality you provide. Think of an Alexa skill as a 3rd way to access that functionality. A user could ask the Alexa device (Echo, Dot, iPhone Lexi app, etc) to get or perform the same things that your website does.
So for example, if your website explains how your widgets work, then you could create a widget Alexa skill that would allow Alexa user's to ask about your widgets.
The Alexa Voice Service is something entirely different. It is an API to enable adding Alexa voice to a different piece of hardware. For example, my friend Thaddeus created an Alexa Voice Service app called Lexi that runs on an iPhone. This allows a user to talk to Alexa using their iPhone. However, it doesn't add any new capability to Alexa. It only allows me to do things on my iPhone that I can already do on my Echo.

Resources