本文为《AmazonAlexa语音设计指南》系列译文的第五篇,enjoy 设计自查表 如何知道你的设计是否正确呢?当你设计了一系列的语音交互体验,请考虑以下几点: Alexa技能术语表 你可以通过下面的介绍,学习AmazonAlexa语音设计指南中经常出现的一些术语。 A Alexaapp:为Alexa用户提供的,用于和Alexa配合使用的应用。主要用于配置设备、相关设置、记录和查看历史对话。 AAlexa:基于云端,为AmazonEcho、AmazonEchoDot、AmazonTap等设备提供语音服务。你可以在云端搭建个人服务,为Alexa增加新功能。 AlexaSkillsKit:为Alexa创建新功能所需的API、工具、文档的集合。参看GettingStartedwiththeAlexaSkillsKit。 Alexaenableddevice:可以为Alexa服务提供接口的设备,以及使用Alexa语音服务的设备。比如AmazonEcho、AmazonEchoDot、AmazonTap。 Ask:用户在试图调用某个特定技能时,对Alexa说的一句话。该命令需要和技能的invocationname有机结合。比如说:“Alexa,AstrologyDmyhoroscope。”(“Alexa,问问每日占星,我的星座运势怎么样”)用户可以选择非常丰富词汇,去开启一段和Alexa的对话。参看UnderstandingHowUsersInvokeCustomSkills。 C Cloudenableddevice:具备联网能力的智能家居设备,如灯泡、开关、调温器等。这些设备通常由devicecloud控制。 Confirmation:Alexa试图向用户确认其是否已经知道Alexa理解正确了用户意图,以下是确认的类型: Implicitconfirmation(隐含确认)(又名landmarking):一种将Alexa听到的信息巧妙重复给用户,以 获取用户确认的提问方式。例如: User:Alexa,问问每日占星,我的星座运势怎么样。 AstrologyDaily:你是什么星座? 此处,重复“星座”这个词就是一个landmarking技巧。用于与用户建立信任,同时也不破坏对话的 自然流畅。 Explicitconfirmation(明确确认):一种将Alexa听到的信息重复给用户,并且明确要求用户确认的提问 方式。例如: User:Alexa,问问每日占星,我的星座运势怎么样。 AstrologyDaily:你想向每日占星询问你的星座运势,对吗? 想获得何时提供确认的建议,参看VoiceDesignBestPractices。 Custominteractionmodel:你自定义技能()时用到的交互模型。由意图模式(intentschema)构成。意图模式定义了技能可以支持的命令,以及一系列用户可以用于调用命令的表达样例(sampleutterances)。 Customskill:使用的自定义技能。开发者可以自定义你技能支持的命令,(intents)以及自定义用户可以说的语句,这些语句将用于完成(或调用)这些命令(sampleutterances)。意图和表达样例之间的映射构成了交互模型,或者说构成了技能的语音用户界面。 一个完整的自定义技能包括基于云服务的代码托管,以及能够提供Alexa服务所需信息,向服务器发送请求的配置器。这是一种你可以搭建的最灵活的技能,但同时也是最复杂的。你必须自己设计语音交互界面。 D Detailcard:显示在Alexa应用中,包含技能相关信息和技能使用方法的卡片。用户可以查看详情卡片并且选择开启他们喜欢的技能。详情卡上显示的大部分信息都是在开发平台的PublishingI部分准入的。参看SubmittinganAlexaSkillforCertification。 Devicecloud:可以控制智能云设备。对于某个智能家居技能,你的技能适配器将把命令从Alexa智能家居技能API传输到设备云。 Devicecloudaccount:用于登录设备云的独立用户账户。用户使用Alexa应用通过Alexa服务器连接设备云账户。OAuth2。0是首选的连接机制。 Devicediscovery:Alexa智能家居技能API通过技能适配器发现可控设备的过程。 Dialogueerrors:用户和Alexa之间发生的出乎意料之外的对话。以下是对话错误的类别: Lowconfidenceerrors(低置信度错误):当Alexa对她理解的正确程度信心不足时,她将再次询问刚 才的问题,或者结束对话。 TimeoutsSilenceNoinput(超时、沉默、无输入):当用户没有回答Alexa的问题时,通常会使用 reprompt鼓励用户回答。 Falseaccept(误解):Alexa对她理解的正确程度具有较高的置信度,但实际上理解错误。 获取更多错误处理方面的建议,请看VoiceDesignBestPractices中“处理对话”部分。 E Examplephrase:向用户展示如何启用技能的短语。你可以在开发平台的PublishingI提交这些短语。这些短语必须包含在你的sampleutterances列表中。参看SubmittinganAlexaSkillforCertification。 Exitcommand:用户试图停止交互或退出对话的命令。 H Homecard:Alexaapp中,用来描述和强调某个自定义语音交互技能的构件。在测试和调试Lambda函数和网络服务时,卡片也很有用。参看IncludingaCardinYourSkill’sResponse。 I Intent:用户对于某个技能命令相关的核心请求或动作。比如:“Alexa,问一下历史迷六月三号发生过什么。”在这句话中“六月三号发生过什么。”映射到一个特定意图,该意图能被Alexa的某项特殊技能所处理。这告诉Alexa用户希望“历史迷”提供历史上的某天的相关信息。 关于如何定义意图的细节,参看DefiningtheVoiceI以及CustomInteractionModelReference。 Intentschema:是一种JSON结构,用于声明某些能被技能服务所处理的意图。关于细节,参看DefiningtheVoiceI以及CustomInteractionModelReference。 Interaction:用户和Alexa之间的对话。可能是单一的请求响应,或一组扩展的多轮对话。 Interactionmodel:用户对于技能提出的要求,包括单词和短语。对于自定义技能,你可以通过创建一个intentschema和sampleutterances定义交互模型(definetheinteractionmodel)。对于一个smarthomeskill,通过SmartHomeSkillAPI定义。 Interruptions:Alexa和用户间的对话被另一个事件打断。比如Alexa和用户对话时忽然响起了闹钟或计时器的铃声。 Invocation:调用,开启某个特定技能的行为。比如“Alexa,问问每日占星,我的星座运势怎么样。”这是一个典型的例子,说明用户可以如何唤醒Alexa并且直接向“每日占星”技能提问。之后Alexa继续问道:“你是什么星座?”。以下是invocation的类别: Fullintent(完全意图):用户的请求包含了Alexa完成任务所需要的所有信息。如:“Alexa,问一 下历史迷八月十二号发生过什么。” Partialintent(部分意图):用户的请求包含了意图,但丢失了某些槽(slot)。如:“Alexa,问问 每日占星,我的星座运势怎么样。”在这里,丢失了具体“星座”,Alexa需要继续获取用户的信息。 Nointent(无意图):用户请求中不包含意图也没有槽。如:“Alexa,打开历史迷” 关于处理不同类别调用词的更多建议,参看VoiceDesignHandbook。 Invocationname:用户想要使用自定义技能的名称。用户使用结合了调用名称的短语同技能进行交互。如:“Alexa,问一下历史迷八月十二号发生过什么。”。在例子中,“历史迷”就是调用名称,是一个能够检索历史事件的技能。请注意,智能家居技能没有调用名。 M Maxerrorcondition:对话发生连续错误的情况。此时会终止对话,这样设计的目的是避免让Alexa陷入无限的错误循环之中。 N Notification:用户让Alexa稍后提醒他们的事件。最常用的情况是闹钟和计时器。通知可能会发生在Alexa安静的状态下,也可能发生在和用户交互的过程之中。 P Prompt:为了询问更多信息对用户说一段话。提示问句包含在你给予用户的回答中。以下是提示的类型: Openended(开放式提问):可以引出的答案范围较广。例如:“你有什么需要?” Menustyle(菜单式):提供一系列的可选项(建议不多于5个)。例如:“我们有摩卡、拿铁、美式以及卡布奇诺,你想选择哪个?” Reprompt(重复提问):当对话发生错误时,为了帮助用户恢复错误,再次询问用户。例如: User:Alexa,打开记分员。 ScoreKeeper:有什么要更新的? User:(无应答) ScoreKeeper:你可以给游戏者加分,询问目前得分,或者开始一轮新游戏。如果想得到更多帮助信 息,请说“帮助”,那么,你需要什么帮助呢? L(又称implicitconfirmation):详见,隐含确认。 S Sampleutterance:一种连接特定意图和表达方式的结构化文本。你需要提供一系列表达样本作为自定义技能的交互模型。当用户触发了这些表达方式,Alexa服务会向你的服务器发送包含相应意图的指令。你只为自定义技能提供表达样本()智能家居技能通过智能家居技能API定义(definedbytheSmartHomeSkillAPI)。Service:基于云端的服务,用于支持技能。服务器从Alexa获取请求并且返回应答。对于一个自定义技能来说,服务器接收包含意图的请求,并且返回包含语音生成的结果给用户。对于一个智能家居技能来说,这项服务是一个需要设备指令的,然后和设备云关联,以便控制诸如灯、恒温器这样的设备。你可以用AWSLambda函数或者webservice去部署服务。智能家居技能适配器只能使用Lambda。Skill:Alexa的技能或功能。Alexa提供一系列的内置技能(比如音乐播放),开发者可以使用Alexa技能工具包去开发新的技能。一个完整的技能包括代码(基于云服务的格式)以及开发者平台所提供的配置。参看和smarthomeskill。 Slot:槽,一个意图中的可变信息。比如:“Alexa,问一下历史迷六月三号发生过什么。”在这句话中“J”就是一个日期slot的值。 对于一个意图来说,slots包括必须提供或者可供选择两类。 Required(必须提供):一个槽的取值对于Alexa完成用户请求是必须的。比如说:“Alexa,问问每日占星,金牛座的星座运势怎么样”,如果没有具体的星座,每日占星就不能提供星座运势。如果用户没有提供必须的槽值,你必须询问用户这个槽值。 Optional(可供选择):一个槽的取值对于Alexa完成用户请求不是必须的。比如说:“Alexa,问一下历史迷六月三号发生过什么。”在这里,六月三号是可选项,因为如果用户没有提到特定的日期,历史迷可以提供当日相关的信息。在这种情况下,就无需询问槽值。 关于定义槽,参看DefiningtheVoiceI和CustomInteractionModelReference。 Smarthomeskill:一种可以控制智能家居的技能,比如控制灯,或者恒温器。SmartHomeSkillAPI定义了技能可以支持的指令,以及用户的表达方式。 Systemerrors:与用户和Alexa之间的对话无关,而是系统出现了错误。比如:数据服务用于获取用户请求的信息向Alexa发送失败。 T Tell:用户可以要求Alexa调用某个技能的词语,和调用词相关联。比如:“Alexa,ColorEmyfavoritecolorisred。”有丰富的短语可以用于调用。参看UnderstandingHowUsersInvokeCustomSkills。 TexttoSpeech(TTS):将文本合成语音(Alexa的声音)。Alexa服务能够将纯文本转化为语音。 Turn:对话的一轮由一个请求和答案构成,而不是单指某一句话。所以“Alexa,打开星座运势”,“你想看什么星座?”,“双鱼座”,“今天双鱼座的运势是”这是一个两轮的对话,而不是四轮对话。 U Utterance:用户表达给Alexa他们想做什么,或者回答Alexa的问题。对于自定义技能,你需要提供一系列的匹配意图,作为你自定义交互模型的一部分。对于智能家居技能,SmartHomeSkillAPI提供了一系列预制的utterances。 V VoiceIVoiceUserInterface(VUI):主要通过语音对话进行的一种人机交互的方式。对于一个自定义技能,语音界面由云端服务器可处理的和intent匹配构成。参看DefiningtheVoiceInterface。 W Wakeword:唤醒词,当用户想要和Alexa说话,会通过这种命令唤醒Alexa。比如:“Alexa,askHistoryBuffwhathappenedonDecemberseventh。”在这里,“Alexa”就是唤醒词。Alexa用户可以在一系列定义好的的唤醒词中进行选择。