我正在使用Amazon Lex服务。我的输入始终是一条短信,但有时我希望收到语音回复,而不是短信。我在Lex设置中配置了输出语音。
我尝试将标头amz-lex:accept-content-types=SSML
添加到请求中,但它返回Invalid Bot Configuration: No usable messages given the current slot and sessionAttribute set. (Service: AmazonLexRuntime; Status Code: 400; Error Code: BadRequestException;
。当我要求PlainText
时,相同的请求也可以正常工作。即使我要求SSML,PlainText
,它也只会以纯文本形式答复。
我是否需要在Lex中配置其他功能以允许它进行语音响应?
答案 0 :(得分:2)
Lex不能实际输出声音。
Lex将始终输出JSON响应,并且该响应需要由用户访问Lex的通道进行处理。因此,该通道根据它处理Lex传递的响应消息的方式输出文本或语音。
Amazon Lex可以处理语音到文本。
Amazon Polly可以相反:从文本到语音。
如果您转到上面的Lex页面,他们有一些使用Lex进行对话逻辑,然后使用Polly进行文本到语音并将语音输出给用户的示例。
答案 1 :(得分:0)
您甚至可以使用SSML(语音合成标记语言)来使用消息内容类型在Lex Test Bot Console中测试语音。
使用SSML标签,您可以自定义和控制语音的各个方面,例如发音,音量和语速。
SSML带有各种指令,您可以使用这些指令来自定义发音并根据需要创建。例如-以说为准的指令
`"message": {
"contentType": "SSML",
"content": "<speak> Hi " + data["User ID"].split('.')[0]+", Your Reference Number <say-as interpret-as="characters">" + "ABC"+event.currentIntent.slots.RefNo+ "</say-as> is ," + data["Status"] +"</speak>"
}`