替换语音助手,语音助手开发语言( 八 )


·检测到语音,但没有识别
·正确识别语音,但无法处理
·部分语音识别错误
·延迟
一般有两种方法来处理这些情况,明确地说出来,最好能增加更多的细节让用户明白现在的状况,比如“抱歉,我没听懂 , 请说出您所在的城市和区域名称”,或者什么也不做 。如何选择要取决于VUI系统的交互模式与用户场景 。
b.万能指令
比如“帮助”、“停止”、“请重复一遍”、“退出”等等 。设计时不仅要考虑用户可能的需要,也要考虑用户会怎样表达这些需要 。
③条件阈值(threshold)设计
每个应用程序都会定义系统能承受的最大错误,对话系统也不例外,尤其是上文对交互流程的描述也向我们清晰地展示了,从用户、到技术模块、再到数据资源,VUI的运行充满了不确定性 。
《Designing Voice User Interface》 一书建议我们考虑设置三种阈值:单个对话状态中的最大连续错误数(特定于状态的错误计数),全局计算的最大错误数,以及最大错误确认数 。
牢记这一点便很容易理解Detailed design需要做什么,即深入到单条对话中 , 详细设计对话流程、辅助提示、以及异常情况处理方案 。包括:
①对话设计
设计对话流程很像写剧本,即什么样的角色在什么情况下应该说什么话,不同之处在于对话系统的情节和部分角色是写定的 。
各大平台上,Google、Amazon、Microsoft , 都有对话设计的相关指导,可以通过 这篇汇总文章 来进一步了解 。
②提示列表(prompt lists)
回想一下,人与人之间的沟通也要建立在共同知识的基础上,与机器对话也是一样 。让用户了解系统能做什么、不能做什么、怎么做是对的等等 , 才能够实现高效率的对话 。
这一点可以通过设计提示列表(prompt lists)来辅助实现 , 提示类型包括:
A.初始提示,
B.错误提示,
C.帮助提示,
D.特殊应答等等
提示的形式有多种,语音、文本、图像 , 甚至声音,都可以 。
比如图中Google assistant采用带有文字的按钮来告诉我它能识别屏幕上的内容 , 而我只需点击或者说出指令即可;右边的两张图里 , Google通过[视觉元素变换+“进入对话”“离开对话”的文字提示+音效(earcon)]来隐喻游戏的开始与结束 。
Google在designguideline for Google assistant里总结了 他们运用在提示语(prompt)中的不同元素(types of conversational components),是一份非常好的参考 。
设计过程其实与一般产品并无大异,需要考虑:
1). 用户研究结果 。包括用例、使用场景 、用户语言模式与心理模式等 。可以参考博主@Lu的设计手记《语音理财案例分析》。
2). 业务场景与目标 。主要是据此确定功能列表、功能优先级、交互方式等 。推荐百度AI社区的《酒店语音助手实例教程》。
特殊的是 , 人工智能产品的形态多种多样 , 设计师必须对于产品所依附的硬件设备、产品背后的数据与技术支持有所了解 , 以确定产品边界、发现设计机会、持续优化用户体验 。因此也需要考虑:
3). 技术与硬件基础 。
比如设备联网程度,ASR引擎是否允许你设置N-best列表、自定义语音终止超时的时长 , 系统的负载量等 。
4). 数据资源 。
比如当前资源是否能满足该功能 , 哪些数据会影响系统响应时间等 。
人们往往通过语音识别准确度来评估应用程序的运行效果,这也许是最糟糕的度量方式 。一个应用程序能达到90%的识别准确度,同时自动实现85%的业务呼叫;另一个应用程序达到97%的识别准确度,且自动实现40%的业务呼叫 , 前者就一定比后者更差或更好吗?