图中这个萌萌哒物体大家都不陌生,从2016年开始它已经将近火爆了3个年头,它就是——智能AI音箱。
与人可以有多种谋生的技能不同,智能音箱要想在人类生活中立足,它只需要一项很强的技能就够了,那就是语音技能。
什么是语音技能
语音技能是部署在音箱等以语音交互为主要交互形式的设备上的功能,可以理解为是以语音交互面向用户的app, 语音技能不需要下载,不需要安装,由端口直接对接,轻量级且几乎没有迁移成本,目前大部分的智能音箱都具备一项到多项的语音技能。
如何开发语音技能
第一、先规划好技能的使用流程
在开始设计您的技能之前。首先应该确定的是您的技能的功能和特点,然后想好用户可以使用他来做些什么事。最后你才需要考虑的是设计语音交互流程和相关细节。
确定技能的功能
你的技能应该是对应一个或者多个使用场景,通过思考以下的问题来明确技能的功能和他所能够提供的能力:
- 做这款技能的目的是什么?人们为什么要使用它?
- 在进行技能语音交互之前,期间和之后,用户将做什么?
- 用户能够从技能上获得什么,他们能不能通过另一种方式来获得?
确定用户的意图
根据技能的开发目的和功能来确定技能的各个步骤和他的实现方式。
- 用户在技能的步骤中可以做什么?或者是不可以做什么?
- 是否需要获得用户的个人信息?
- 用户的信息在当前技能中有哪些是可以利用的?
- 用户唤醒当前技能的方式是什么?
编写技能交互流程
技能的交互流程用来显示如何和用户来进行对话和相关逻辑的展示,就好像在制作一部电影之前需要有一个剧本一样,在设计一款技能也应当有一个剧本。 使用他可以来帮助识别您可能尚未考虑的情况。
编写技能交互流程时请考虑以下几点:
- 保持互动简短。
- 交互的形式应该是两个人在进行交谈,而不是阅读和写作。
- 避免重复的短语。
- 指示用户何时需要提供信息。
- 不要以为用户知道该怎么做或会发生什么。
- 清楚地呈现选项。
- 一般来说,一次提供不超过三个选择。
- 一次要求一个信息。
根据交互流程设计逻辑
一个基本的交互流程并不能完全代表人们如何在现实生活中和技能进行互动。用户可能会说太少,太多,或者说你不期待的东西。使用以下方法来扩展您的交互流程并捕获用户可能完成对话的各种方式:
设定完整流程的最快捷的路线
完整流程的最短路径是通常是当用户在当前技能已经绑定了相关账号的情况下一次性提供了所有信息时,那么当前用户则不需要在重新进行信息的录入和填写,直接进行相关功能的操作。
设定完整流程的备选方案
这是当用户说的与当前流程无关或者和当前技能无关的内容时需要采取的办法。在流程中,应当会有一个备选方案来帮助用户顺利进行技能流程当用户表述的与当前流程无关的内容时,如果用户说的内容和当前技能无关可以参考”设备该如何回应”中的策略。
设定对于不同用户的流程逻辑
需要识别用户的不同种类,例如新用户或老用户。后台对于不同用户的鉴别可以让其执行不同的操作。
在技能中设定一个帮助选项
在帮助中,包括明确的方向,用户可以使用该技能做什么。基于技能的复杂性,帮助可以提供一个简单的功能指引。
设定技能账户的关联提示(如果存在)
确定帐户关联所需的信息。流程还需要确定当帐户关联尚未完成时技能将如何响应。
一个基本的交互流程并不能完全代表人们如何在现实生活中和技能进行互动。用户可能会说太少,太多,或者说你不期待的东西。使用以下方法来扩展您的交互流程并捕获用户可能完成对话的各种方式:
设定完整流程的最快捷的路线
完整流程的最短路径是通常是当用户在当前技能已经绑定了相关账号的情况下一次性提供了所有信息时,那么当前用户则不需要在重新进行信息的录入和填写,直接进行相关功能的操作。
设定完整流程的备选方案
这是当用户说的与当前流程无关或者和当前技能无关的内容时需要采取的办法。在流程中,应当会有一个备选方案来帮助用户顺利进行技能流程当用户表述的与当前流程无关的内容时,如果用户说的内容和当前技能无关可以参考”设备该如何回应”中的策略。
设定对于不同用户的流程逻辑
需要识别用户的不同种类,例如新用户或老用户。后台对于不同用户的鉴别可以让其执行不同的操作。
在技能中设定一个帮助选项
在帮助中,包括明确的方向,用户可以使用该技能做什么。基于技能的复杂性,帮助可以提供一个简单的功能指引。
设定技能账户的关联提示(如果存在)
确定帐户关联所需的信息。流程还需要确定当帐户关联尚未完成时技能将如何响应。
进行技能开发
如果你已经有一个详细的交互流程和技能的设计剧本,那么就可以开始创建你的技能了,并且根据用户会说什么来和它进交互:
识别意图
意图代表你的技能能够做的独特的事情。举个例子,如果做一款翻译的技能可能会有4种意图用户需要来操作。例如:翻译、停止、退出、帮助。
识别话语
话语包括用户将会用来表达意图的词语、短语、或者句子。例如要使用翻译的意图时用户可能会说”翻译下你好”“把你好翻译下”或者“你好用英文怎么说”这些不同的表达实际上都在表达一个相同的意思,你不需要全都考虑上,但你需要让你的意图的表达的可识别性变得尽可能高。
有关识别用户话语的内容可以参考用户会如何说出指令
第二、基于用户的行为设计用户的表达
用户会怎么说
人与人之间的交流的目的就在于交换信息。 所以对于信息的表达和提取并不像看起来那么简单,需要仔细和有意地设计音箱和用户之间的对话。 一个好的语音设计是可以允许人们自由的表达他的意思。
会话由一个人说出话题开始,其次是回应。 这对许多人来说是一种新的互动形式,因此请确保您了解用户参与会话的方式,以便您可以进行设计。
识别意图
意图表示用户可以询问您的技能来做什么。 你的技能可能可以帮助用户进行养生,说笑话或播放下一首歌曲 。这些我们称之为意图。 有关确定意图的技巧的指导,请参阅设计流程。
不要指望用户会准确地说出你预期的意图的话。 虽然用户可能会说”打开翻译”,但是他也可以轻易地说“我想翻译”。为了确保你的技能能够让用户使用起来体验比较好,你应该提供广泛的句子,短语和词语来进行表达。
处理过度回答
处理用户的更正
涵盖各种各样的话语
不同信息的提供
识别槽位
槽位可以允许人们指定话语的可变部分,例如城市或日期。槽位值在以任务和信息为中心的技能上很常见。设计槽位在话语中的显示方式,然后从内置词表中选择槽位值,或提供您自己的槽位值。
在下面的例子中,{toCity}和{travelDate}是槽位:
- “我想去{toCity}”
- “预订{travelDate}的旅行”
- “计划去{toCity}吃烤鸭”
使用内置槽位值
内置槽位值是我们为您提前准备的一些预设的槽位值,他可能包括地区、人名、日期等信息,尽可能使用内置槽位值,以帮助节省时间并提高准确性。根据您的技能,您还可以扩展一些内置槽位值。例如,对于本地区域,您可以扩展mi_CITY以包括所有本地城市和城镇。
仔细查看槽位值
虽然可能很容易找到,通过批量导入和批量追加词表来填充槽位值,但请确保查看并编辑内容。错误的槽位值会使技能逻辑错误并破坏用户体验。请注意以下内容:
- 重复槽位值:确保消除重复的词条
- 词条与槽位无关:避免包含与槽位无关的词条
第三、基于用户的表达来设计技能返回结果
如何回应能够让人们能够轻易理解和回应?让音箱以自然和对话的方式通知并询问问题。 在设计音箱会对用户说什么时,请考虑以下最佳做法:
保持对话简洁
保持对话的简洁有助于他们了解音箱在说什么,并对发生的事情充满信心。更长的对话往往更难以跟踪和记住。
一口气测试
当写下音箱说的话时,你可以大声朗读你写的内容。如果你可以一口气说出一个对话的话,长度可能很好。如果您无法一句话说出你写的内容,请考虑缩短长度。
对于包括连续(如任务中的步骤)的响应,请单独阅读每个步骤。虽然整个反应可能需要一次以上的呼吸,但请确保您只是在两者之间切换时进行呼吸而不是在阅读步骤时。
保持对话自然
激励用户自己说出自己想要的东西。 不要提示选项菜单。 相反,让用户知道可能的内容,并指导用户进行有效的投入。
确保音箱说话方式像一个人,比如使用更加口语化的表达和避免行话。 这将有助于用户更轻松地了解技能,并鼓励用户自然而然地说话。
当音箱说话时,请务必听听您所做的提示语。 有时,一个书面的短语听起来不自然而且需要改写。
合理使用开关麦逻辑
音箱是和用户通过语音进行沟通,那么就需要留给用户思考和回答的时间。按照接口规范,字段/response/open_mic用来告诉音箱在输出完成后开麦等待用户输入,这样下一次用户就不需要再说唤醒词了
使用会话标记
当人们交谈时,他们使用一些连词或者短语来表示对话进行的各个阶段,这有助于将对话分成更易理解的大块。使用这些词组将帮助您的用户更好的理解和记忆您的技能。
先后顺序的标记
“首先”,“中途”,“那么”,“最后”可以帮助用户来明确目前所处的环节。当多个步骤或重要的环节进行时,使用这些词组可以让用户意识到接下来会进行的流程或者环节。
致谢和反馈
“谢谢”,“明白了”,“好的”,“好”,“是的”让用户知道他们的语句已经被理解或已经收到了这些信息。
指示参考
“这”,“那个”,“这里”和“它”有助于识别参考的内容或即将提及的主题。
转变进入
“现在”,“所以”,“好的”和“下一个”可以用于将现在的主题转到另一个主题时引入变化。
让互动变得更加丰富
将互动变得更加丰富和自然将会使重复交互变得更加容易记忆,例如通过从相同提示的合理同义词中随机选择。
如果用户会频繁听到相同的提示,那么用户会觉得当前技能很傻,但是如果在您的打开和关闭提示中,拥有更加丰富的提示的话,这会使您的技能变得非常有个性。
自适应提示
随着越来越多的人使用您的技能,你需要考虑每个用户是如何使用他们的,考虑使提示变得更短,更直接,甚至确认使用频率将会对用户的体验越来越友好。
谨慎使用确认
如果让用户过多地使用确认对话,会让用户使用信心受到伤害,熟练的用户也会嫌麻烦。所以要尽量避免使用确认,但出现以下的高风险的行为,需要加上确认。
- 用户的意图将要公开可见的(譬如:分享到朋友圈)
- 涉及到扣费、付款的(譬如:用户在购买电影票)
- 影响到其他的人(譬如:发送一条通知短信)
让交互变得更自然
设计时您应当想象是两个人在交谈而不是在阅读或者写作。
处理错误
当音箱听不到或者无法理解用户时,使用自然和温柔的措辞来帮助用户将对话回到正轨。
当音箱没收到用户的回答时,请使用一个重新提示:可以对原有内容稍微改写一下,这是添加细节的好机会,以防用户不了解。
音箱不理解的用户对话
如果音箱听到但无法处理用户说的内容,请先试图询问一下,并尝试让对话回到正轨。 使用一个简单的请求,帮助用户知道他下一步可以做什么。 这将有助于防止用户感到迷失。
“不明白“与”没听到“
如果音箱说她没有听到,用户可能会尝试更大声地说话,但这并不会解决问题。 事实是音箱听到了用户,但是却不明白用户说了什么。
听明白了但不能帮助
当用户要求不支持的功能时,请使用某种形式的”我不能帮助您…”,以通知用户该功能不可用,但可能在将来, 为了支持这一点,您需要实施计划功能的意图。 然后,您可以跟踪用户何时请求不支持的功能,这也可以帮助您了解如何确定功能的优先级。
错误消息
虽然错误的类型不尽相同,但是他却会让用户感觉困惑和混乱。所以尽可能让用户知道错误是什么,避免使用技术术语。如果错误可能只存在很短的时间,请告诉用户再次尝试。如果不是存在很短的问题时,在这种情况下避免去鼓励用户,因为用户可能会遇到相同的错误。举一个例子,如”你的空气净化器现在没有响应”。
尚未支持的情况
用户可以在语音界面中说出任何内容,优雅地处理错误并引导用户重新进行发问是很重要的。对于尚未支持的用例,请说”不好意思,目前我还暂不支持这样的功能”。当用户的说法无法理解的时候,说出“对不起,我不明白”。
重复
处理错误后,会再次提示用户音箱询问的最新问题。避免告诉用户您没有听到或不明白,因为您这样去鼓励用户会使他们更加缓慢或大声重复刚才的问题,而不是重新组织想要发问的语言。
错误退出
如果用户一直说着音箱不理解的话或者已经不再旁边时一直不停的在技能的流程中重复,这样的体验是不好的,所以需要配置一些情况下让技能自动退出:
目前来说,退出有两种方式:主动和被动。被动发生在用户多次无响应时,小爱开放平台会强制结束会话。具体来说,小爱开放平台会在用户无响应时发送信号给开发者:设置/request/no_response为true,开发者应当在无响应发生时按照产品规范回复提示话语,当到达第三次时,开发者仍有回复结束话语的机会,之后音箱会主动结束会话。
功能指引
告诉用户技能可以做什么,然后支持用户可以访问功能的各种自然方法。 在任务结束后和用户保持友好的互动可以让用户更多的和您的技能进行交互,例如”您想听到更多内容吗?”或“是的,我可以帮助您吗?”如果用户没有对功能引导进行答复请遵循自动退出机制来让技能自动退出。
澄清
澄清允许用户自然地与音箱通话,无需一次提供所有信息,无需知道需要哪些信息。 如果遗漏或含糊不清,音箱会问问题澄清。 请记住,最好在收听用户回应之前立即向用户询问问题。 如果音箱提出问题并继续发言,可能会让用户感到困惑,因为用户期望音箱正在听,然而她其实还在说话。
使用预录音频
在有用的时候考虑使用预先录制的音频,特别是如果您可以进行自由的语音理解工作,那么你可以尝试像”冒险世界”这样的技能来设计更富有沉浸感的设计。
短格式音频
小于90秒的音频剪辑被认为是短格式音频。短格式音频允许技能会话保持打开状态,这意味着用户不必再次通过音箱的唤醒词来重新调用该技能。在播放音频剪辑后,当您希望与用户进行额外的交互时,请使用短格式的音频。
文件类型:.mp3
规格:16000Hz w /比特率(48kbps)
长度:最多90秒
有关实现短格式音频的更多信息,请参阅文档
长格式音频
如果您有基于音频技术的技能,您将使用长格式的音频。超过90秒的音频剪辑被认为是长形音频。当音频开始播放时,该技能的麦克风会关闭。用户可以通过没有调用名称的请求来控制音频,例如通过说”小爱同学,暂停”。为了再次与技能交互,用户需要通过说“小爱”和调用名称来调用该技能。当您期望用户交互包含音频控制请求时,请使用长格式的音频。您的技能还可以将新的音频文件添加到音频列表中以进行连续播放,例如播放列表。
文件类型:.acc .mp4 .mp3 .hls .pls .m3u
规格:从16kbps到384 kbps的比特率
长度:无限制
有关实现短格式音频的更多信息,请参阅自定义技能接口文档
使用不同的唤醒方式
对于一个技能来说,单一的打开方式对于用户的记忆程度虽然低,但是会让用户感觉到不智能,适量的配上不同的唤醒方式会让你的技能变得别具一格。直接唤醒表示用户在唤醒技能的同时指定了意图,例如让印象笔记记一下今天吃饭花了50元,这个时候小爱开放平台会直接唤醒印象笔记技能,并且给印象笔记技能传送”今天吃饭花了50元”作为query,并且设置/request/intent/is_direct_wakeup为true,表示是直接唤醒,开发者可以自由选择是否在回复后结束(如果想单轮搞定,就设置is_session_end为true即可)
第四、技能认证标准
包括完善技能信息,查询技能是否符合规范等
谢谢阅读,欢迎分享给您的朋友:『优雅派』 » 一篇文章了解智能音箱与你的对话是怎么发生的?