We're now on test round 11 with Alpha v0.2.0.3. The purpose of the Alpha stage is to expand the available commands to the final set and test as we go. So far, the following commands have been added;
We previously has a 'List Devices' command which would return an enumerated list of devices connected to the LMS with their connected status. A tester suggested that we could extend this lits to include volume and other parameters. Rather than do that, I decided to keep the list devices command a basic list and add a new 'Status' command. Now, saying, 'Alexa, tell Squeeze Box to give me a status update (for player X)' will return a detailed list for the nominated device or all devices indicating number, name, connected status, playing status, volume and whether muting is enabled or not. This will later be expanded to include details of the track/stream playing.
The skill now includes commands to control the power state of discrete or all devices, switching them on or off as required.
One of the frustrating voice UX aspects of echo interaction, particularly for this skill, is having to ask 'Alexa, tell squeeze box to...' for every command. Alexa does support sessions allowing the skill to remain open to listen for additional commands that don't need to be prefixed with the wake work or skill invocation. Initial testing revealed a number of issues;
The main problems were sounds from 3x principle sources being picked up and generating phantom commands. These sources were;
- Alexa herself reacting to the tail end of her own prompts (!!)
- Music from the users squeeze box
- Extraneous and environmental sounds
The first one was dealt with by introducing a very short pause after Alexa speaks and before she listens. The second is addressed by lowering the volume of squeezeboxes while she's listing. The third is addressed by allowing users turn off extended listening if environmental noise is an issue
So, it now works like this;
- 'Extended Listening' is enabled by default
- Users can set it on or off by saying 'Alexa, tell squeezebox to turn extended listening on/off'
- Users can check the status by asking 'Alexa, ask squeeze box to give me my settings'
- If extended listening is Off, the skill will only continue listening after the user says 'Alexa, Open Squeeze Box'
- If it's on, she will continue listening unless the command is likely to play or not stop music (play, resume, set volume)
- In cases where extended listening is active, volume on all squeezeboxes is reduced to 10%
- Volume is restored to previous levels when she stops listening
- There's a failsafe of 60 seconds, after which the volumes are restored automagically
This feature is the focus of v0.2.0.x testing round and we're making slow but steady progress on refining it. The inspiration here is how inbuilt music playback skills work. For example, if Alexa is playing music from Spotify and the user speaks the wake word, the volume is automatically reduced for the duration of the listening session. Unfortunately, a custom skill does not get notification of the wake word and only knows the user is speaking once the command has been issued. Therefore, we cannot be as slick as the inbuilt skills. but we can get close.
Here's a demo of some of these features;
We've also welcomed a number of new testers on board. It's great to have an infusion of new blood and they're already finding previously unknown issues due to specific configurations etc.