SSML 音素在 Alexa 服务模拟器中运行良好,但在 Echo 硬件上不起作用

SSML phonemes work fine in Alexa service simulator but don't work on Echo hardware

我正在创建一个简单的 Alexa 技能,并希望使用 SSML 正确发音一些非英语单词。虽然在 Amazon Service Simulator 中一切正常,但我无法在实际的 Amazon Echo 硬件上运行它。

例如,我从 Lambda 服务发送以下响应:

var cardTitle = "Test"
var speechOutput = "Test 1, red stick in French is <phoneme alphabet=\"ipa\" ph=\"bɑˈtɔn ˈɹuʒ\">baton rouge</phoneme>"
callback(session.attributes, buildSpeechletResponse(cardTitle, speechOutput, "", true));

Amazon Service Simulator 将收到的响应显示为:

{
  "version": "1.0",
  "response": {
    "outputSpeech": {
      "type": "PlainText",
      "text": "Test 1, red stick in French is <phoneme alphabet=\"ipa\" ph=\"bɑˈtɔn ˈɹuʒ\">baton rouge</phoneme>"
    },
    "reprompt": {
      "outputSpeech": {
        "type": "PlainText",
        "text": ""
      }
    },
    "shouldEndSession": true
  },
  "sessionAttributes": {}
}

如果我在 Service Simulator 中单击“Listen”,响应拼写正确,如 Test 1 , red stick 在法语中是 baton rouge.

然而,当我在实际的 Echo Dot 硬件上测试相同的技能时,响应是: 测试一,法语中的red stick是phoneme alphabet equals ipa ph equals.......

知道我做错了什么吗?

我认为你只需要更改:

 "type": "PlainText"

成为

  "type" "SSML"