如何让 Amazon Lex 以语音方式回复短信?
How to get Amazon Lex to respond with voice to a text message?
我正在使用 Amazon Lex 服务。我的输入始终是文本消息,但有时我希望除了文本之外还有语音响应。我在 Lex 设置中配置了输出语音。
我尝试在请求中添加 header amz-lex:accept-content-types=SSML
,但它 returns 和 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 中配置其他东西以允许它进行语音响应?
Lex实际上不能自己输出语音。
Lex 将始终输出 JSON 响应,并且该响应需要由用户访问 Lex 所用的通道处理。因此,该通道根据其处理从 Lex 传递的响应消息的方式输出文本或语音。
Amazon Lex 可以处理语音转文本。
Amazon Polly 可以反过来:文字转语音。
如果您转到上面的 Lex 页面,他们有一些使用 Lex 进行对话逻辑,然后使用 Polly 进行文本转语音并向用户输出语音的示例。
您可以为此使用 SSML(语音合成标记语言),甚至可以使用消息内容类型在 Lex 测试机器人控制台中测试语音。
使用 SSML 标签,您可以自定义和控制语音的各个方面,例如发音、音量和语速。
SSML 附带了多种指令,您可以使用这些指令自定义发音并根据您的要求进行创建。例如 - say-as 指令
`"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>"
}`
我正在使用 Amazon Lex 服务。我的输入始终是文本消息,但有时我希望除了文本之外还有语音响应。我在 Lex 设置中配置了输出语音。
我尝试在请求中添加 header amz-lex:accept-content-types=SSML
,但它 returns 和 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 中配置其他东西以允许它进行语音响应?
Lex实际上不能自己输出语音。
Lex 将始终输出 JSON 响应,并且该响应需要由用户访问 Lex 所用的通道处理。因此,该通道根据其处理从 Lex 传递的响应消息的方式输出文本或语音。
Amazon Lex 可以处理语音转文本。
Amazon Polly 可以反过来:文字转语音。
如果您转到上面的 Lex 页面,他们有一些使用 Lex 进行对话逻辑,然后使用 Polly 进行文本转语音并向用户输出语音的示例。
您可以为此使用 SSML(语音合成标记语言),甚至可以使用消息内容类型在 Lex 测试机器人控制台中测试语音。
使用 SSML 标签,您可以自定义和控制语音的各个方面,例如发音、音量和语速。
SSML 附带了多种指令,您可以使用这些指令自定义发音并根据您的要求进行创建。例如 - say-as 指令
`"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>"
}`