如何向 Amazon Alexa Skills Kit (ASK) 混合字符串和数字输入?

2023-12-02

我正在尝试创建一个 Amazon Alexa 技能套件来进行某种自动化,这需要接受由字符串和数字组成的语音输入(a-test12fish).

当我在 Alexa Skills Kit 中使用自定义插槽时,它不允许我键入带有数字的字符串。当我尝试输入时ask alexa, dangerZone find a-test12fish,我收到以下错误:

错误:文本输入无效。文本应以字母开头,并且只能包含字母、空格、句点或撇号

我怎样才能克服这个错误?


这是一个解决方案。

您可能不想在意图模式中完成此操作。相反,请尝试使用 Node.js 创建自定义模式,将字母、数字和符号编译为单个响应。这是我对字母数字输入模式的演绎。请注意:我只是为了回答您的问题而写下此内容,尚未在更大的技能中对其进行测试。话虽如此,我已经取得了巨大的成功MODES当我有机会时,我一定会用自己的技能来实现这一点。

这段代码背后的想法是,你将用户推入一个单独的模式,忽略除NumberIntent, LetterIntent, SymbolIntent,以及一些帮助功能。用户快速输入他们的字母数字值,完成后激活 CompletedIntent。然后,该字母数字值可以在您的技能中的其他地方使用。如果您还没有使用过Modes请注意,完成或退出后,您将被重定向回LOBBYMODE您可以在其中继续访问您技能中的其他意图。

var lobbyHandlers = Alexa.CreateStateHandler(states.LOBBYMODE, {

    'enterPasswordIntent': function () {
      this.attributes['BUILDPASSWORD'] = '';
      this.handler.state = states.PASSWORDMODE;
      message = ` You will now create a password one letter, number or symbol at a time.  there will be no message after each entry.  simply wait for alexa's ring to become solid blue then stay your next value.  When you are satisfied say complete. Begin now by saying a number, letter, or keyboard symbol. `;
      reprompt = `Please say a number letter or symbol`;
      this.emit(':ask', message, reprompt);
    },

    //Place other useful intents for your Skill here

    'Unhandled': function() {
        console.log("UNHANDLED");
        var reprompt = ` You're kind of in the middle of something.  Say exit to end createing this password.  otherwise say complete if you've stated the whole password.  or repeat to hear the current password you've entered.  `;
        this.emit(':ask', reprompt, reprompt);
    }
});


var buildAlphaNumericPasswordHandlers = Alexa.CreateStateHandler(states.PASSWORDMODE, {
    'numberIntent': function () {// Sample Utterance: ninty nine  AMAZON.NUMBER
      var number = this.event.request.intent.slots.number.value; //I believe this returns a string of digits ex: '999'
      this.attributes['BUILDPASSWORD'] = this.attributes['BUILDPASSWORD'].concat(number);
      message = ``; //No message to make saying the next letter, number or symbol as fluid as possible.
      reprompt = `Please say the next number letter or symbol`;
      this.emit(':ask', message, reprompt);
    },
    'letterIntent': function () {// Sample Utterance: A   -- Custom Slot LETTERS [A, b, c, d, e, ... ]
      var letter = this.event.request.intent.slots.letter.value;
      this.attributes['BUILDPASSWORD'] = this.attributes['BUILDPASSWORD'].concat(letter);
      message = ``; //No message to make saying the next letter, number or symbol as fluid as possible.
      reprompt = `Please say the next number letter or symbol`;
      this.emit(':ask', message, reprompt);
    },
    'symbolIntent': function () {// Sample Utterance: Dash -- Custom Slot SYMBOLS [Pound, Dash, Dollar Sign, At, Exclamation point... ]
      var symbol = this.event.request.intent.slots.symbol.value;

      // Create a dictionary object to map words to symbols ex Dollar Sign => $.  Will need this because you likely cant put $ as a custom slot value. Can also map multiple names to the same value  ex. Dash => Tack = \> "-"
      var singleCharacterSymbol = symbolDict[symbol]; //^^^ Need to create dictionary

      this.attributes['BUILDPASSWORD'] = this.attributes['BUILDPASSWORD'].concat(singleCharacterSymbol);
      message = ``; //No message to make saying the next letter, number or symbol as fluid as possible.
      reprompt = `Please say the next number letter or symbol`;
      this.emit(':ask', message, reprompt);
    },
    'CompleteIntent': function() { //Sample Utterance: Complete
        console.log("COMPLETE");
        this.handler.state = states.LOBBYMODE;
        var reprompt = ` Your entry has been saved, used to execute another function or checked against our database. `;
        this.emit(':ask', reprompt, reprompt);
    },
    'ExitIntent': function() { //Sample Utterance: Exit
        console.log("EXIT");
        this.handler.state = states.LOBBYMODE;
        message = `You have returned to the lobby, continue with the app or say quit to exit.`;
        this.emit(':ask', message, message);
    },
    'RepeatIntent': function() {
        var currentPassword = this.attributes['BUILDPASSWORD'];
        var currentPasswordExploded  =  currentPassword.replace(/(.)(?=.)/g, "$1 "); //insert a space between each character so alexa reads correctly.
        var message = ` Your current entry is as follows. `+currentPasswordExploded;
        var reprompt = `  say complete if you've stated the whole password. Otherwise continue to say numbers letters and symbols. `;
        this.emit(':ask', reprompt, reprompt);
    },
    'Unhandled': function() {
        console.log("UNHANDLED");
        var reprompt = ` You're kind of in the middle of something.  Say exit to end creating this password, say complete if you've stated the whole password, say repeat to hear the current password you've entered, or continue to state letters, numbers and symbols  `;
        this.emit(':ask', reprompt, reprompt);
    }
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何向 Amazon Alexa Skills Kit (ASK) 混合字符串和数字输入? 的相关文章

  • 如何在 Lambda 中将对象上传到 S3?

    似乎无法将对象上传到 Lambda 中的 S3 本地一切正常 日志中没有错误可以显示出了什么问题 代码如下 console log Loading function var AWS require aws sdk var s3 new AW
  • 调用 IndexFaces 操作时出现 InvalidS3ObjectException

    我正在尝试以下教程 https aws amazon com blogs machine learning easily perform facial analysis on live feeds by creating a serverl
  • AWS CLI 从 AWS CLI 获取私有存储桶的下载 S3 URL

    我可以将文件上传到private使用以下命令成功S3存储桶 aws s3 cp myfile txt s3 myfolder myfile txt region us east 1 output json 我想发出 AWS CLI 命令来返
  • 如何在亚马逊 EC2 上调试 python 网站?

    我是网络开发新手 这可能是一个愚蠢的问题 但我找不到可以帮助我的确切答案或教程 我工作的公司的网站 用 python django 构建 托管在亚马逊 EC2 上 我想知道从哪里开始调试这个生产站点并检查存储在那里的日志和数据库 我有帐户信
  • AWS Lambda 不读取环境变量

    我正在编写一个 python 脚本来查询 Qualys API 中的漏洞元数据 我在 AWS 中将其作为 lambda 函数执行 我已经在控制台中设置了环境变量 但是当我执行函数时 出现以下错误 module initialization
  • 将大型高清视频文件上传到 Amazon Web Services S3

    最终目标 将大型视频文件 内容制作者将是专业用户 因此他们的一点额外工作并不是一个巨大的负担 然而 对他们 和我 来说 保持尽可能简单是理想的 如果可以使用网络表单来启动那就最好了 内容制作者不会有数百个 因此可以投入一些额外的时间或精力为
  • 如何使用 AWS CodeCommit 作为 Spring Cloud Config 的存储库

    我正在尝试将 AWS CodeCommit 存储库与 Spring Cloud 配置结合使用 我已经设法让它与 SSH 一起工作 但我想使用 https 而不是 SSH AWS 建议使用凭证助手 有谁知道如何配置 spring config
  • Spark s3 写入(s3 与 s3a 连接器)

    我正在从事一项在 EMR 上运行的作业 它在 s3 上保存了数千个分区 分区为年 月 日 我有过去 50 年的数据 现在 当 Spark 写入 10000 个分区时 使用以下命令大约需要 1 小时s3a联系 它非常慢 df repartit
  • 对于 aws s3,预检响应无效(重定向)

    我正在尝试将图像上传到我的 Amazon S3 存储桶 但即使我已经正确设置了 CORS 配置 我仍然收到此 CORS 错误 这是我的 CORS 配置
  • 当操作系统为 Windows Server 2019 时,ec2 私有子网无法到达 169.254.169.254

    我有多个 ec2 实例在私有子网中运行 仅允许 vpc 内的流量 其中一些实例是自定义操作系统 其中一些实例运行 AWS windows server 2012 ami 有些运行 AWS Windows Server 2019 ami 在所
  • 如何计算 OpenID Connect 服务器的指纹?

    创建 OpenID Connect 提供商 例如 AWS 时 我需要指定一个指纹对于连接器 它是什么 我如何获得它 例如 从如何在不使用密钥的情况下将 GitHub 操作与 AWS 部署连接起来 https stackoverflow co
  • 具有行为路径重定向的多个 Cloudfront 起源

    我有两个 S3 存储桶用作我的 Cloudfront 源服务器 example bucket 1 example bucket 2 两个存储桶的内容都位于这些存储桶的根中 我正在尝试将我的 Cloudfront 发行版配置为基于 URL 模
  • 身份验证 AWS Cognito SRP

    我正在编写一个控制台 POC 来演示 AWS 认知身份验证 应用程序池而不是联合身份 作为我们的 API 网关身份验证机制 不在 AWS 中托管 这是用 C 编写的 我已经成功创建了一个用户 并确认了他们 但现在我需要进行身份验证以检索我可
  • 有人试图破解我的服务器吗?请告诉我我能做什么? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我在我的服务器日志文件中找到了这些请求 我在亚马逊EC2上使用nodejs manager html manager html manag
  • 如何更改AWS ECS集群中的实例类型?

    我在 AWS EC2 容器服务中有一个集群 设置完毕后 我使用了 t2 micro 实例 因为这些实例足以进行开发 现在我想使用更强大的实例 例如 m4 large 我想知道是否可以仅更改实例类型 这样我就不需要重新创建整个集群 我找不到如
  • 亚马逊 CloudFront 延迟

    我正在为我正在开发的 Web 应用程序尝试使用 AWS S3 和 CloudFront 在应用程序中 我允许用户将文件上传到 S3 存储桶 使用 AWS SDK 并通过 CloudFront CDN 提供该文件 但问题是 即使文件已上传并在
  • 无法正确停止我的 AWS EC2 实例

    作为 AWS 新手 我有一个支持我的 Elastic Beanstalk 应用程序的 t2 micro EC2 实例 它是在我将 WAR 文件部署到 Elastic Beanstalk 时创建的 我的 EB 应用程序不需要每天 24 小时运
  • 如何使用 lambda 和 python 在 s3 上压缩文件

    我需要存档 s3 上存在的多个文件 然后将存档上传回 s3 我正在尝试使用 lambda 和 python 由于某些文件超过 500MB 因此无法在 tmp 中下载 有什么办法可以将文件一一流式传输并将其存档吗 不写入磁盘 流式传输至 S3
  • AWS EC2 自动缩放没有持续警报?

    我为自动缩放组创建了以下两个警报 Scale up如果 CPUUtilization gt 75 更改为状态 则有 1 个实例ALARM Scale down如果 CPUUtilization gt 30 更改为状态 则有 1 个实例OK
  • 如何使用 cloudfront/route53 将通配符域 (*.example.com) 指向 s3 存储桶

    我已通过 SSL 认证 并使用 Cloudfront Route 53 和 s3 存储桶为我的网站设置主页 example com 和 www example com 该网站只是一个基本的静态网站 我正在尝试设置我的 Cloudfront

随机推荐

  • 在java中绘制文本,外观和感觉问题

    我重写了扩展 JToggleButton 的paintComponent 方法 以便在切换按钮时可以使用TexturePaint 填充文本 我遇到的问题是 我似乎无法使用与我的外观和感觉默认使用的字体相同的字体来绘制文本 我试过 g2d s
  • 使用 JavaScript 将参数添加到 URL

    在使用 AJAX 调用的 Web 应用程序中 我需要提交请求 但在 URL 末尾添加一个参数 例如 原文网址 http server myapp php id 10 结果网址 http server myapp php id 10 启用 真
  • 如何从 python 中的 stdout 中删除行?

    我有一个程序可以使用 paramiko 通过 ssh 获取一些数据 ssh paramiko SSHClient ssh connect main Server IP username main Username password main
  • 使用递归在 Java 中以正确的格式打印菱形图案

    我的程序从文件中读取值 并使用递归方法根据这些值打印星号模式 我只是在让所有东西正确排列方面遇到问题 输出应该如下所示 关于输出的格式 说明如下 请注意 图案关于中心线对称 垂直 对齐 图案也应在每条线上对称 水平 对齐 提示 使用线值来帮
  • 尝试 CSV 导入时,nil:NilClass 的未定义方法“路径”

    我正在关注导入 CSV Railscast它是直截了当的 I added require csv to my config application rb In my BuildingsController我创建了一个新的import像这样的
  • 如何在 GatsbyJS 项目中显示图像?

    如何显示图像 下面无法正确显示 In the src components Header js file img src images logo png style width 1 将资源直接导入到文件中 import React from
  • 是否可以在非交互模式下运行 WSL Bash?

    人们可能想在任务计划程序中使用 Windows 上的 Bash 或作为版本控制挂钩脚本 可以或者支持吗 如果没有 为什么 这是一个错误还是防止某些问题的措施 使用 3d1t0r的解决方案 但也可以通过管道连接到cat wsl bash c
  • Opencart 中的支付网关集成

    我想将 CitrusPay 印度支付网关 集成到我的 opencart 应用程序中 我收到了 PHP 集成工具包 但不知道在 opencart 中从哪里开始 请告诉我如何添加 Citruspay 作为付款方式 您可以编辑和修改这些文件 va
  • 虚拟主机的路由前缀如下

    我有一个 Symfony 应用程序 它有 2 个包 一个公共包 可通过 URL public blahblah test 调用 和一个 API 包 可通过 URL api getIt 调用 我创建了 2 个带有 2 个虚拟主机的子域 一个用
  • Visual Studio 项目属性中的各种“生成操作”设置是什么以及它们的作用是什么?

    在大多数情况下 您只需将 Visual Studio 设置为默认值即可 我指的是构建动作在解决方案资源管理器中选择的每个文件的属性 有多种选择 很难知道其中每一种会做什么 None 该文件不包含在项目输出组中 并且不会在构建过程中进行编译
  • 根据用户权限隐藏中继器列

    有人可以向我解释如何根据用户权限隐藏转发器列 假设我有
  • StringBuffer equals方法是否比较内容? [复制]

    这个问题在这里已经有答案了 可能的重复 将 StringBuffer 内容与 equals 进行比较 StringBuffer s1 new StringBuffer Test StringBuffer s2 new StringBuffe
  • 帮助将字符串日期转换为日期时间

    我在带有提交按钮的文本框中使用 Ajax 控件工具包日历扩展器 简单的 调试器显示文本已正确传输到调用方法 但是这行转换代码将文本框文本转换为 1 1 0001 12 00 00 AM 文本框日期是这样的 4 15 2011 DateTim
  • 检测 UIWebview 中的滑动手势

    我是新来的iPhone开发商 我制作了 epub 阅读器并将 epub 的每一页加载到我的webview 我想要的是 当用户这样做时right swipe gesture第二次我想导航到新页面 当用户这样做时我不想做任何事情right sw
  • 自动将 LF 和 CR (EOL) 添加到多个 .csv 文件的末尾

    我有一堆 csv外部生成并定期发送给我的文件 它们各自包含一行文本和 31 个 列 然而 他们都没有任何形式的EOL 没有 LF 本身或与 CR 一起使用 因此当我尝试组合这些文件中的任何一个时 我会在同一行上获得更多列 而不是每个文件一行
  • Perforce 到 git 的迁移 [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我需要将存储库从 perforce 迁移到 git 以及所有历史记录 我尝试在网络上搜索 但没有找到任何明确的文档详细提及每个步骤 我看到了一个名为 git p4 的实用程序 但
  • Android 版 Google 登录

    我尝试了谷歌开发人员文档并尝试登录我的应用程序 该代码是从 git 复制的 并添加了来自文档 并定义在登录活动 as Public class LoginActivity extends AppCompatActivity implemen
  • 当服务器发送的事件运行时,带有 session_start() 的页面不会加载

    我正在开发一个小项目来制作 1v1 聊天系统 我想做一个项目 我可以把Server Sent Events好好利用 它运行得很好 但最近我对代码进行了一些更改 以便总的来说聊天会更有效 当我运行事件源时 我遇到了一个奇怪的问题 当我尝试访问
  • 使用Glide无法刷新验证码图片

    我尝试使用 Glide 将验证码图像加载到 ImageView 中 第一次加载没问题 但是 当我将验证码图像重新加载到同一个 ImageView 中时 ImageView 不会刷新到新图像 有谁知道如何解决这个问题 String url h
  • 如何向 Amazon Alexa Skills Kit (ASK) 混合字符串和数字输入?

    我正在尝试创建一个 Amazon Alexa 技能套件来进行某种自动化 这需要接受由字符串和数字组成的语音输入 a test12fish 当我在 Alexa Skills Kit 中使用自定义插槽时 它不允许我键入带有数字的字符串 当我尝试