2

I am making an extremely simple skill to test out Alexa's SSML capabilities. For simplicity's sake I am building the whole thing in Alexa's online Developer Portal. Here is the LaunchRequest I have in my index.js:

const LaunchRequestHandler = {
    canHandle(handlerInput) {
        return Alexa.getRequestType(handlerInput.requestEnvelope) === 'LaunchRequest';
    },
    handle(handlerInput) {    
       var speechOutput = '<prosody pitch="low">Hello.</prosody>';
        return handlerInput.responseBuilder
            .speak(speechOutput)
            .reprompt(speechOutput)
            .getResponse();
    }
};

When I go to the Test Page of the Developer Console and run my skill it performs exactly as it should, with Alexa saying "Hello" in a low voice. But when I try to launch the same skill from any of my Echo devices she tells me "Sorry, I'm having trouble. Please try it in a little while."

I have other skills that don't use SSML and they work just fine on all my devices, so what's going on in this case?

miken32
  • 42,008
  • 16
  • 111
  • 154
ArcaneLight
  • 83
  • 1
  • 11

2 Answers2

0

When Alexa responds with "Sorry, I'm having trouble. Please try it in a little while." it usually means it's not even getting to the skill for one of multiple reasons, it's therefore unlikely to be related to SSML.

This often is a problem with internet or the device acting up (try checking for updates), restarting it usually solves this issue for me.

Are you logged in with the same developer account on your devices as the one you created the skill on?

If not, the devices won't be able to see your skill (as it's not live yet) when you call it from a different account. Another option is to add your echo device's account as a beta tester on your developer account under distribution.

Another reason could be that Alexa is not understanding what you're saying (either pronunciation issue or ambiguous skill name).

To check what Alexa is hearing when you speak, you can view your utterance history, listen to what you said and read how Alexa interpreted it and the action taken.

You can view that here (change .com to whatever you're using): https://alexa.amazon.com/spa/index.html#settings/dialogs

shini
  • 188
  • 2
  • 13
  • Thank you, but I'm quite sure it isn't any of these. If I remove the tags and deploy it then the same skill works immediately on all of my devices. It may very well be that it isn't getting to the skill at all, but I have to assume that is because the presence of SSML is causing the build to break somehow. – ArcaneLight Sep 23 '21 at 13:12
0

This behavior work well on my devices.
What I did >

  1. Create a new custom Alexa Skill Hosted (local en-US)
  2. Set the invocation name to : "test one"
  3. Update the speak output from
const speakOutput = 'Welcome, you can say Hello or Help. Which would you like to try?';

to:

const speakOutput = '<prosody pitch="low">Welcome, you can say Hello or Help. Which would you like to try?</prosody>';

Then I tested on the developer console: OK.
Then I tested on Echo Dot 4: OK

Now you need to debug what is wrong:

  • Go to the log on cloudwatch (if it is not on the default region, try the other one)

enter image description here

  • Then go inside your latest log

enter image description here

You should be able to see what went wrong here.

If not, provide detail about your skill (local, logs, ...) & which device you've used to test.

callmemath
  • 8,185
  • 4
  • 37
  • 50