-1

I was able to build Amazon Lex sample app with a new bot including several new intents.

What I'm trying to support now is to change the character and output voice

For example,

Currently we have 7 characters in default : Joanna, Salli, Kimberly, Kendra, Justin, Joey, Ivy.

User : Who are you?
Bot : (Salli's Voice) I'm Salli.

User : I want to change to Joey.
Bot : (Salli's Voice) Ok. I'll change to Joey
      ( --> System Command : Change the voice to Joey)

User : Who are you?
Bot : (Joey's Voice) I'm Joey.

In order to achieve the goal, I need to know 3 things. (At least third one)

  1. How to get the current output voice
  2. How to add the current output voice name in the utterance answer
  3. How to change the output voice with system command (maybe Lambda with Restful API?)

I tried to get the information from the API doc (http://docs.aws.amazon.com/en_en/lex/latest/dg/API_Reference.html), but it wasn't helpful.

Any comments will be welcomed.

Thanks.

4

1 回答 1

1

这不是 Lex 构建的目的,因为语音设置是针对机器人本身配置的,而不是基于每次使用的。

虽然如果你真的想要它,我可以想出几种方法来破解它。

选项 1 - 即时编辑机器人

使用Put Bot API 进行命令行调用以切换机器人,并提供新语音的语音 ID。

您可以使用Get Bot API 查看机器人当前拥有的声音。

问题:

  • 机器人可能需要重建,这可能需要一些时间并且响应缓慢。
  • 此更改将影响对机器人的所有请求,因此所有用户都将拥有新的声音。

选项 2 - 多个机器人

为您要使用的每个语音创建一个机器人。通过 lambda 函数调用您的机器人,该函数跟踪用户当前想要使用的机器人(例如,将请求中提供的用户 ID 映射到所需机器人的数据库表/S3 文件)。将请求路由到所需的机器人。

问题:

  • 很多开销。
  • 很多机器人需要维护。
  • 保留用户状态的附加服务。
于 2017-06-11T19:59:25.290 回答