在亚马逊Lex中,如何改变输出语音

时间:2017-06-09 22:25:21

标签: android amazon-web-services amazon-lex

我能够使用包含几个新意图的新机器人构建Amazon Lex示例应用程序。

我现在想要支持的是改变角色和输出声音

例如,

目前我们默认有7个角色: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.

为了达到目标,我需要知道3件事。 (至少第三个)

  1. 如何获取当前输出的声音
  2. 如何在话语答案中添加当前输出语音名称
  3. 如何使用system命令更改输出语音(可能是Lambda with Restful API?)
  4. 我尝试从API文档(http://docs.aws.amazon.com/en_en/lex/latest/dg/API_Reference.html)获取信息,但没有帮助。

    欢迎任何评论。

    感谢。

1 个答案:

答案 0 :(得分:1)

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

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

选项1 - 即时编辑机器人

使用Put Bot API拨打命令行来切换机器人,提供新语音的语音ID。

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

<强>问题:

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

选项2 - 多个机器人

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

<强>问题:

  • 很多开销。
  • 很多机器人要维护。
  • 保留用户状态的其他服务。