Amazon Alexa 語音設計指南(二):用戶說什么

2 評論 12794 瀏覽 24 收藏 10 分鐘

本文為《Amazon Alexa 語音設計指南》系列譯文的第二篇,enjoy~

第二章 用戶說什么

人類對話,即實時合理的意圖交換。關于如何表達以及如何從對話中提取內涵,其實難度超乎我們的想象,你需要非常認真,并且有意識的去設計Alexa和用戶之間的對話。良好的語音體驗可以允許用戶通過不同的方式去表達意圖。

對話界面是由每一個以用戶提問為起始,以Alexa回答為結束的對話輪(turn)組成的。對于很多人來說,這是一種全新的交互模式。所以在設計之初,請先確保你的用戶能夠參與到對話當中來。

確保在搭建技能之前完成流程設計

你希望用戶從你的技能中體驗和感受到什么?這是在一開始就要明確的問題。一旦你已經定義好了技能(skill)的目的(purpose)、寫好了腳本(script),并且完成了流程(flow)設計(見第一章),你就可以著手設計意圖和表達方式了。

設計意圖

意圖(Intent)就是用戶能通過你的技能去完成的事情。你的技能可能是幫人計劃旅行、獲取某種狀態、講笑話,或者打怪獸,而這些也就是意圖。關于如何定義技能的意圖,請看上一章。

永遠不要相信人們會把你預期的意圖精確的描述出來。當用戶可以說“計劃旅行”時,他也許會圖方便的直接說“計劃去夏威夷的旅行”,盡量把用戶可能會說的句子、短語和單詞最大范圍的呈現出來,這樣才能保證用戶可以更好的使用你的技能。

下面是關于對話意圖的例子:

使用內置意圖

每個Alexa技能都需要提供“取消”、“停止”、“幫助”的能力。除此之外,還有其他的指令比如“重復”“播放”“下一個”等,都包含在內置意圖庫(built-in intent library中。內置意圖(built-in intent)是Alexa本身配置好的能力。比如,“幫助”意圖,對于用戶使用這一類命令,你無需再做特殊說明。如果你的技能需要增加一些內置意圖,也可以自定義擴展內置意圖?(extend built-in intents)。

定義表達方式

表達方式(utterance)是用戶會對Alexa所說的話。由關鍵詞命令(keyword command);自然詞匯,如贅詞(filler word)【譯者注:可以理解為漢語中的“的”“了”“是”等虛詞】;以及可變信息的槽(slot)組成。設計語音體驗最重要的部分就是定義用戶的表達范圍。

為了提供良好的體驗,你需要從那些只言片語或者模棱兩可的語句碎片中整理出完整的命令。為了保證覆蓋率,你需要考慮到語句非常細微的變化甚至是誤讀的情況。比如,當你在設計和“開關”有關的話題時,需要提供“打開”、“開啟”、“啟動”等同義詞,雖然他們其實表達的是同樣的意思。

one-shots:one-shot的表達是指用戶一口氣把觸發技能所需的信息全部都提供完整了。一般用在觸發技能時或技能之中。

部分信息(partial information):基于達成某項意圖所需的全部信息,用戶通常會只給出一些不完整的信息。這就會帶來多輪(Multi – turn),以便搜集補全完整信息。

處理過度回答(over- answering)

有些時候,雖然Alexa只問了一個問題,但用戶會給出超出這個問題的回答。比如Alexa問到一個出發日期,用戶可能不但回答了出發日期,也回答了出發地點。用戶甚至可能給出了所需的其他信息,比如說抵達的城市,還有要旅行的方式,然而卻沒有給出Alexa詢問的日期。

在設計對話的時候,需要重視這種情況。更多信息參考?(Dialog Interface Reference)和(Plan My Trip tutorial

處理用戶糾正(correction)

當用戶覺得Alexa出錯了,或當他們改變主意的時候,他們會去試圖去糾正這些錯誤。比如說,一個用戶可能會在他上一句表達后面跟上“不是的…”或者“我說的是…”。要恰如其分的處理這些問題。

確保能夠覆蓋寬泛、多樣化的表達方式

為了保證你的技能順利的執行,比較好的標準是為每個意圖提供三十個,或者更多的表達方式,甚至對于一些很簡潔的意圖,也需要提供足夠的表達方式。你不需要做到百分之百的覆蓋,但是例子越多越好。同時,計劃在迭代中持續增加表達方式以便不斷的提升技能的體驗。

增加多樣化表達方式的一些技巧

當用戶說:“我要制定一個行程?!盇lexa接下來需要收集到的信息包括出發地,到達地,旅行時間,旅行的方式。

這是一個和家人朋友玩角色扮演的絕好機會,通過這種對話扮演,你可以得到多種多樣的對話方式。

(1)one-shot方式

考慮用戶一次性說出所有信息的表達方式。

(2)部分信息的方式

考慮用戶一般會給你較少的信息。這一點至關重要,因為用戶很少會一次性把所有信息都提供給你。

定義槽

一句話中可變的部分就是槽(slot),比如說城市名稱或者日期。槽在任務-信息型(task-and information-focused)的技能中非常常見。你需要設計表達方式中的槽,并且從內置目錄中給槽位匹配賦值,或者自己給槽位賦值。

在下面的例子中{to city}和{traveldate}就是槽:

  • “I’d like to go to {toCity}”
  • “book a trip for {travelDate}”
  • “plan a vacation to {toCity}”

使用內置槽值

使用亞馬遜提供的內置槽值可以節省更多時間并且更加準確。為了適配你的技能,你也可以去自定義擴展一些內置的槽值(slot values。比如說,要增加一個本地區域名稱庫,你可以擴展AMAZON.US_CITY去添加所有的本地城市和城鎮名稱。了解更多,請參看?slot values you can extend?。

嚴格的審查槽值

雖然搜集、復制、粘貼槽值表這種事是比較容易的,但一定要確保認真的審核和編輯這些內容。錯誤的槽值會帶來技能的邏輯錯誤,并且給用戶帶來破壞性的體驗,你需要注意以下幾種情況:

  • 確保排除掉重復的槽值
  • 避免包含與槽位無關的詞匯
  • 注意不要拼寫錯誤或有標點格式上的錯誤:因為槽值可能會包含一些縮略符號,比如“child’s play”【譯者注:這種情況中文一般是沒有的】,保證編輯文檔的時候選擇正確的標點格式,參看supported punctuation。

相關閱讀

Amazon Alexa 語音設計指南(一):設計流程

 

原文地址:https://developer.amazon.com/designing-for-voice

譯者:Rachel Hu,阿里云OS VUI交互設計師

本文由 @Rachel Hu?翻譯發布于人人都是產品經理。未經許可,禁止轉載。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 樓主,可以加個微信么?我的微信:johnny2659644553

    來自廣東 回復