question

fatball avatar image
fatball asked

Device names in utterances

Suppose I have a skill that allows me to control ... say ... automatic window blinds. In a perfect world there would be a connected home API for those, but currently there are only lighting and thermostat APIs. I'm sure Amazon will add more but they can never add *everything*. I can make a skill to control the blinds: Alexa, ask Blindy to raise the blinds Alexa, tell Blindy to lower the blinds But what if I have more than one set of blinds? Sure I can hard-code a list of rooms, but it would be nice if the users could actually name their products as they can with the connected home APIs: Alexa, tell Blindy to raise {deviceName} Is there any way to allow this? Ideally I would be able to supply Amazon with a list of device names it could match against to improve accuracy.
alexa skills kitvoice-user interface
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

jjaquinta avatar image
jjaquinta answered
You can certainly supply Amazon with a list of device names. It's called a custom slot. However, I think that's what you mean by "hard coding". Is what you are really asking for "dynamic slots"? I.e. the ability to change the values in a custom slot on-the-fly, either as a periodic update that does not require certification, or on a per-user basis. If so, there are a few threads in Feature Requests already asking for this. You can go and +1 them if you like. Personally, I do not think this is something that Amazon will do. If you note, when you submit a new interaction model, it spins for a bit. That pauses is when it "compiles" your interaction model into the internal structures they use for parsing the audio stream. This is compute intensive and proprietary. The same delay would be incurred each time you change the interaction model. Therefore it isn't something practical to do on-the-fly. I have some hope that they will allow for periodic non-certified updates to custom lists. I have slimmer hope they will let you upload 2-8 additional interaction models that your skill can select among at run time. But I'm not holding my breath.
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

fatball avatar image
fatball answered
Correct; I didn't mean custom slots. It also wouldn't need to be completely dynamic - i.e. the list of devices changes infrequently, but it is per-user. I don't think it is technically impossible - the connected home API already works with custom device names, though the possible utterances seem less flexible there so maybe it works differently.
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Joseph Jaquinta avatar image
Joseph Jaquinta answered
Trust me. It is technically impossible. At least for the 3rd party skills API. All we can hope for is a change...
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Steve A avatar image
Steve A answered
jjaquinta is right, of course: no dynamic slots. Out of curiosity, why not use custom slots? They're going to be along the lines of: Living Room Dining Room Master Bedroom Bob's Room etc. If you have a lot along those lines, I bet you'll get pretty good results. Another option is to use account linking for the user to enter their blind names, store those, and then match their utterances against what you've stored. (You could even just collect this information "in-skill".) That said, I haven't looked at the connected home API, so maybe there's something specific to that to preclude these approaches.
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.