我需要使用 SSML 在我的 Alexa 技能中播放带有标签的音频文件(按照亚马逊的说明)。
问题是,我不知道如何在 Python 中使用 SSML。我知道我可以将它与 Java 一起使用,但我想用 Python 培养我的技能。我已经查看了所有内容,但没有在 Python 脚本/程序中找到任何 SSML 的工作示例 - 有谁知道?
我已经设置了 Alexa 智能家居技能,完成了所有设置,完成了 oauth2 处理,并且在我的 Amazon Echo 设备上启用了技能。Lambda 函数已设置并链接到技能。当我“发现设备”时,我可以在日志中看到负载命中了我的 Lambda 函数。我实际上是通过 context.succeed() 方法返回以下带有测试设备的 JSON。但是 Echo 告诉我它找不到任何设备。
{
"header": {
"messageId": "42e0bf9c-18e2-424f-bb11-f8a12df1a79e",
"name": "DiscoverAppliancesResponse",
"namespace": "Alexa.ConnectedHome.Discovery",
"payloadVersion": "2"
},
"payload": {
"discoveredAppliances": [
{
"actions": [
"incrementPercentage",
"decrementPercentage",
"setPercentage",
"turnOn",
"turnOff"
],
"applianceId": "0d6884ab-030e-8ff4-ffffaa15c06e0453",
"friendlyDescription": "Study Light connected to Loxone Kit",
"friendlyName": "Study Light",
"isReachable": true,
"manufacturerName": "Loxone",
"modelName": "Spot"
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
上面的payload看起来正确吗?
是否可能?如果可以,如何在不同语言的技能范围内做出反应?例如,我正在为德国技能商店开发一项技能,该技能可以从互联网上读取各种文本。这些可以是任何语言,当我要发出响应时我可以确定语言。
据我所知,Alexa 实现的 SSML 子集没有指定给出响应的语言。但 Alexa 自己的 Kindle 技能可以为我阅读德语或英语的电子书(也许亚马逊自己的技能很特殊)。
使用Bespoken Tools在本地开发和调试 Alexa 技能时,连接到 Dynamo(使用Alexa Node.js SDK)时发生错误。
我成功地将我的 Alexa 应用程序(客户端)链接到我们公司的 OpenID Connect 平台(授权服务器)。
我们的授权服务器将以下信息返回给 Alexa 客户端:
{
"access_token":"eyAi",
"refresh_token":"kfQ",
"scope":"openid profile",
"id_token":"eyA",
"token_type":"Bearer",
"expires_in":3598
}
Run Code Online (Sandbox Code Playgroud)
Alexa 客户端成功接收此信息,并在调用技能时将“access_token”传递给我们的代码。
所以总而言之,两个系统是链接的,alexa 正在向我们发送 access_token。到现在为止还挺好。
然而,问题是我们的平台需要“id_token”而不是“access_token”。所以我希望 Alexa 向我们发送 id_token。
我找不到有关如何实现这一目标的任何文档。请帮忙。
这是在alexa下链接帐户的链接
我正在尝试编写我的第一个 Alexa 技能,但应用程序流程有点令人困惑,甚至阅读了有关对话委托等的所有文档。我真的很想得到一些建议。
“Alexa,开始电影时间测验。”
欢迎来到电影时间测验。在我们开始之前,您属于哪一队:红队还是蓝队?
“蓝色的。”
蓝色永远是最好的球队。问题 1:以下哪部电影不是阿尔弗雷德·希区柯克执导的?A:眩晕,B:绳子,C:快乐吉尔摩。
“C。”
正确的!蓝队得10分。问题2...
这是一个简化的示例,旨在以最短、最清晰的方式说明我的问题,然后您就会想知道为什么团队需要参与其中。
让初始启动请求处理程序说出欢迎和团队内容,然后有两个意图。第一个显然是 AnswerQuestionIntent,它监听“A”、“B”、“C”或“D”。第二个是 SetTeamIntent,它监听“红色”或“蓝色”。
我有一个包含约 100 个琐事问题的数组。游戏开始时,将会话属性“currentQuestion”设置为 0。在 AnswerQuestionIntent 中,处理用户的正确/错误响应后,增加该数字,如果为 9,则结束游戏;如果没有,请随机询问一个问题。
我实际上无法弄清楚如何让 Alexa 使用单个插槽作为话语。我的意思是,我想要一个“团队”插槽类型(值“红色”和“蓝色”)和一个“答案”插槽类型(值“A”、“B”、“C”和“D”) )。SetTeamIntent 应该由话语激活{team},AnswerQuestionIntent 应该由激活{answer},但是当我尝试设置它时,developer.amazon.com 技能构建器给了我“错误请求”错误。
我尝试查看 GitHub 上的 SDK 示例,但我有点迷失,因为我在学习时一直在使用 GUI 技能构建器,并且不确定它到底是如何映射的——无论如何,还不够好,无法阅读解决方案。
我已经从 URL 下载了一个文件到 AWS Lambda 的 /tmp 目录中(因为这是 Lambda 中唯一可写的路径)。
我的动机是创建一个 Alexa Skill,它将从 URL 下载文件。因此我创建了一个 lambda 函数。
如何从 lambda 中的 /tmp 文件夹访问下载的文件?
我的代码是:-
#!/usr/bin/python
# -*- coding: utf-8 -*-
from __future__ import print_function
import xml.etree.ElementTree as etree
from datetime import datetime as dt
import os
import urllib
import requests
from urllib.parse import urlparse
def lambda_handler(event, context):
""" Route the incoming request based on type (LaunchRequest, IntentRequest,
etc.) The JSON body of the request is provided in the event parameter.
""" …Run Code Online (Sandbox Code Playgroud) 是否可以使用 Alexa Skill Kit 的ASK CLI deploy命令来构建,例如,debug部署development环境release的应用程序版本和部署到test环境的应用程序版本?
我和我的团队正在尝试将相同的技能部署到两个不同的环境中,因此我们的测试团队可以在测试环境中完成他们的工作,而开发团队可以在开发环境中完成他们的工作。
这将是一项私人技能,因此通过发布应用程序来使用http://developer.amazon.com分离测试和“产品”不是一种选择。
我有一个聊天机器人,它已插入后端和DialogFlow / ApiAI。我正在尝试建立Alexa的技能,以便我可以掌握所讲技能的所有内容,然后将其转发给后端,以便可以使用现有的基础架构和convo设计。
我一直在努力与Alexa建立一种意图,以抓住一切并转发它。据我了解,您应该使用AMAZON.SearchQuery,但在尝试设置意图时出现以下错误:
意图“ CATCH_ALL”的构建失败样本话语“ CATCH_ALL {any}”必须包含一个载体词组。短语类型的样本意图发声不能仅包含空位。错误代码:MissingCarrierPhraseWithPhraseSlot-
有人知道怎么做吗?我也尝试使用AMAZON.Literal,但它似乎已被弃用,使用时我无法建立该技能。我有点卡住了。如果有人有解决方案,那就太好了...
谢谢。
alexa-skills-kit ×10
alexa ×6
aws-lambda ×3
node.js ×2
python ×2
alexa-skill ×1
amazon-echo ×1
api-ai ×1
datetime ×1
oauth-2.0 ×1
ssml ×1
timezone ×1