我正试图进入ASK,我只是尝试了一个使用SSML的虚拟示例。 我正在使用Amazon Lambda和Python。如果我从Lambda控制台测试我的代码,我得到预期的输出:
{
"version": "1.0",
"response": {
"outputSpeech": {
"text": "<speak><audio src='https://s3.amazonaws.com/aws-website-resources-1183x/dice-die-roll.mp3' />Three</speak>",
"type": "SSML"
},
"shouldEndSession": true,
"card": {
"content": "Three.",
"type": "Simple",
"title": "Dice"
}
}
}
当我去Alexa服务模拟器并尝试任何请求时,输出语音中的文字消失了,&#34; Listen&#34;控制台中的按钮被禁用,如果我在Echo上尝试它,它就不会播放任何内容:
{
"version": "1.0",
"response": {
"outputSpeech": {
"type": "SSML"
},
"card": {
"content": "Three.",
"title": "Dice",
"type": "Simple"
},
"shouldEndSession": true
}
}
如果我将SSML <speak><audio src='https://s3.amazonaws.com/aws-website-resources-1183x/dice-die-roll.mp3' />Three</speak>
复制/粘贴到语音模拟器中,我可以播放它并按预期播放。我已经使用ffmpeg:ffmpeg -y -i a.mp3 -ar 16000 -ab 48k -codec:a libmp3lame -ac 1 output.mp3
转换了mp3文件,我知道亚马逊的S3应该是可信的,可能是什么问题?我曾尝试在SSML中使用单引号和双引号,我尝试转义引号无济于事。任何人都知道我应该研究什么?
答案 0 :(得分:7)
愚蠢的错误。输出应该在text
而不是"outputSpeech": {
"ssml": "<speak><audio src='https://s3.amazonaws.com/aws-website-resources-1183x/dice-die-roll.mp3' />Three</speak>",
"type": "SSML"
},
。
{{1}}