本申请要求于2009年4月10日提交的、题为“GLYPH ENTRY ONCOMPUTING DEVICE(在计算设备上的字形输入)”的美国申请序列号No.12/422,185的优先权,在此通过引用并入其公开内容。
具体实施方式
本文档描述了通过其移动设备可以与这样的设备的用户交互的***和技术。这样的交互可以通过移动设备对在许多情况下可以以罗马/拉丁字母表字符形式的、简单字符或字形的用户输入作出响应来产生。例如,用户可以通过在显示屏上在所显示的播放列表上方描绘字母,使得显示将跳转到列表中的以用户所输入的字符开始的第一条目,来跳转到诸如音乐播放列表的按字母表顺序排序的列表中的位置。
另外,可以允许用户将他或她自己的字形分配给操作***或运行于操作***中的应用中的各种不同对象。例如,用户可以导航到对象,诸如联系人、歌曲、另一种类型的媒体文件或其他类似的对象。用户可以选择与该对象相关联的控件来指出将字形分配给该对象的意图,以及然后可能被指示在计算设备的显示上绘制字形。字形可以如他们绘制其的那样出现,以使他们能够确认他们想要他们已经绘制来分配的字形(或他们能够选择重新绘制字形)。当用户稍后使用设备时,他们可以绘制他们已创建的字形,以跳转到该对象。在某些情况下,字形可以在设备上的任何位置绘制,以及可以针对对象被辨析,而在其他情况下,字形可以仅当设备处于某一语境中才被辨析(例如,用于特定应用中的位置的字形可以仅在该应用是活动的时才是可用的)。
图1示出移动触摸屏设备的滚动到列表中的与用户输入的字符相对应的位置的一系列截屏。总的来说,截屏是以移动智能手机以及用户在设备的触摸屏上输入各种字母字形的形式的移动计算设备的显示的截屏。六个截屏中的每一个示出了在用户输入序列期间的不同显示。
字母(a)所指明的显示示出了用户正在查看其设备上的联系人列表。联系人列表是按字母表顺序排序的,并且在动作之初,被置停在以字母“C”开始的名字上。如可以看见的,用户正在屏幕上描绘小写字母“b”的过程中,以及该字符随着用户描绘正在显示上被模仿。在字母(b)所指明的显示处,用户已完成对字母的描绘,以及可以看到姓名列表已自动跳转到以与用户所描绘的字母相对应的字母“B”开始的姓名,其中第一字母表顺序的B姓名在列表顶部。因此,设备已辨识了用户描绘的字形匹配按字母表顺序的“b”的表示,并且促使显示跳转到列表中的该位置。
在字母(c)所指明的显示处,用户已决定其意欲查看以字母“C”开始的条目,因此他们开始在设备的屏幕上描绘该字母。如可以被示出的,显示随着他们输入而重复他们的输入,以及在字母(d)所指出的显示处,字母“C”已随着用户从触摸屏表面抬起其手指而完成。在该点,设备确定用户的输入完成,并且将主要圆形、但开口的输入解释为字母“C”,以及立即并自动地将列表滚动到以字母“C”开始的条目。
在由字母(e)和(f)标记的显示处,用户继续其输入,分别输入字母字符“d”和“e”。在每一个输入处,列表滚动到以用户已输入的字符开始的条目。
如所示,用户输入正好在显示列表的应用正提供所显示的组分的显示区域上方发生。如此,可能需要将字形的输入与可以在同一区域中发生的其他数据输入进行区分。如此,设备在前进到辨识字形自身之前,可能需要辨识用户的输入字形的意图。
辨识和识别特定用户描绘所意指的字形的方式可以使用多种不同的机制来实现,包括在Wobbrock等人的“Gestures without Libraries,Toolkits or Training:$1 Recognizer for User Interface Prototypes,″UIST′07,October 7-10,2007,Newport,Rhode Island,USA(ACM978-1-59593-679-2/07/0010)中所提及的$1辨识器和其他辨识器及分类器,用于辨识所输入的字形的特定机制对在此使用字形的方式来说不是关键性的,只要辨识器提供足够的准确性。
可能需要将在长列表上对字符的输入与意在促使列表滚动的用户输入进行区分。可以以多种方式进行这样的区分。例如,可以围绕任何初始垂直输入(其中列表垂直地滚动)或初始垂直输入的一部分构建边界框,以及可以使用边界框的纵横比来推断用户的意图——其中较宽的边界框将指示输入字形而不是滚动的意图。边界框可以但不必与输入在其上发生的屏幕的边缘正交。由于该技术使用运动的最小边界框,其能够有效地区别滚动和字形绘制。例如,滚动运动可以不是完全垂直的——许多实际上是斜线或轻微斜线的。或者用户可能上下滚动列表而没有抬起手指,其导致锯齿形运动。所有这些将仍然导致“狭窄”边界框,即在该情境下较低的纵横比。
边界框还可以仅当初始敲击超过预先确定的最小长度时才被检查,其中假设非常短的用户移动不指示输入字符的意图,因为其关于触摸屏向用户展现的画布太小了。
并且,可以考虑原始拖动运动的速度,其中快速轻击将指示滚动的意图,而较慢输入将指示输入字形的更蓄意的意图。也可以使用其他速度数据或速度数据的组合。例如,非常慢的垂直运动可以指示在列表中滚动非常小量的意图,而非常快速的移动可以指示轻击列表的意图,同时中间范围的速度可以指示输入字形的意图。并且,如果***没有编码有具有垂直元素的字形,则任何垂直输入可以立即被假设为指示滚动的意图。滚动还可以在作出输入意在是字形输入还是滚动输入的初始确定时被抑制,或在输入字形期间可以开始并且可以继续,然后一旦用户完成字形输入,作为滚动的一部分,设备能够跳转到列表的通过与所输入的字形相对应的字符所表示的部分。
并且,所输入的字符可以在其正被输入时或仅在其输入完成之后被辨识。后者辨识可以由触摸屏上的“指示器向上”事件触发,而前者可以涉及在字形正被输入时继续向辨识器提供描绘信息,以及将所输入的数据与可能的解答集进行比较,直到除一个解答之外全都被排除。在该点,可以进行辨识,即使用户尚未完成他或她的输入。当设备正在确定输入是字形的还是用于滚动的时,可以最初使跟随用户的手指的描绘的线的显示变得暗淡,以及一旦作出用户的意图是输入字形的确定,就可以使其变得更亮、更粗和/或不同的颜色。
除其他确定之外或结合其他确定,对用户意图的确定还可以包括确定用户所应用的压力水平,所述其他确定诸如开始垂直敲击的角度和该敲击的速度。例如,非常轻并且快的用户输入可以指示轻击,以及快速滚动的意图。较高压力可以指示更蓄意的输入,因为用户正试图勾画出字符或其他字形,因此意在绘制输入而不是滚动。
图2示出移动触摸屏设备的以自定义字形编程的一系列截屏。一般地,截屏示出了移动设备显示,在其中用户正在输入自定义、用户定义的字形以到达以用于为用户的朋友的某人的联系人记录形式的用户界面项目。再次,截屏中的每一个在在前截屏之后按时间顺序发生。
以字母(a)指明的第一显示示出了用户在以按字母表顺序的用户的联系人列表中的朋友的名字上长按。这样的选择带出在以字母(b)指明的显示中示出的多部分菜单,其中向用户展现有以下选项:查看联系人(例如,看到朋友的照片以及一个或多个电话号码和电子邮件地址)、将朋友添加到收藏夹列表(其是用户在其设备上可能具有的这种类型的所有对象的子列表,以及其能够比在设备上的所有对象列表所能够的更便利地向用户展现)、编辑联系人(通过向用户示出联系人信息,并且允许用户对其作出改变)、删除联系人以及编辑到联系人的快捷方式。在该图像中,用户正在点击或长击为朋友的联系人记录的对象或项目编辑快捷方式的选项。
用户选择该选项导致了以字母(c)所指明的显示,其中已在菜单上方显示部分透明的画布以及用于用户绘制或描绘字形的指令,所述字形的输入此后将与用于该朋友的联系人记录相互关联。(在对图的线绘制时,画布是完全透明的,尽管实际上实施方式可以使用各种可视效果来允许用户在他们正输入字符时维持在***中的场所感。)在该显示中,用户正在描绘字母“P”,大概因为朋友的名以字母“P”开始——因此,对于该用户稍后记住用于该朋友的适当的字形来说是自然的记忆工具。
在由字母(d)所表示的显示处,用户再次为同一朋友的联系人记录选择了菜单“编辑快捷方式”,并且处于以标准五角星形式绘制字形的过程中——可能因为用户知道该朋友总是擅长于他做过的所有事情,因此是明星执行者。用户还处于按压“添加”按钮的过程中,以除所描绘的字母“P”之外,将星形字形添加为用于该朋友的表示中的一个。
在由字母(e)所表示的显示处,用户已返回到联系人列表,其中该过程在显示(a)中开始,并且正处于描绘五角星的过程中,以及在由字母(f)所表示的显示处,对星形字形的输入完成,已由设备解释为匹配用户在显示(d)中输入的字形。在字母(g)所表示的显示中,用户已轻击显示以导致其滚动到另一个字母(其中已将垂直轻击与字母或其他字形的输入进行区分),然后通过在由字母(h)所表示的显示处重新输入五角星,促使其返回到表示该朋友的联系方式的记录。(在图中一些条目的双重显示表示随着快速滚动发生,那些条目的模糊运动。)
在某些情况下,可以使标准字形与自定义字形混合。标准字形是诸如软件开发者的第三方所分配的字形,而定制字形是设备的用户自身所绘制的。因此,例如,可以使用标准字形来表示在如同音乐列表和联系人列表的字母数字列表中的位置,而可以使用自定义字形来表示对用户的设备来说是唯一的特定对象。用户还可以为特定对象创建多个字形,使得例如他们能够分配来自非英语字母表的字符,以根据这样的字符的输入而促使列表的滚动,其中列表将滚动到列表中的等价的英语字符的位置。
用于识别标准字形的标准可以比用于识别自定义字形的那些更宽松。具体地,标准字形被开发来供许多不同人使用,因此可能需要跨较大变化水平来辨识,而自定义字形由特定用户绘制,因此可以被假设具有更大程度的重复性。因此,通过“调低”允许用于这样的字形的变化性水平,可以为自定义字形减少误报辨识的盛行。
图3示出移动触摸屏设备的示出与对象相对应的多个字形的一系列截屏。总的来说,这些截屏表示示出了可以如何将多个不同字形分配给单个对象的显示,所述多个不同字形包括使接受用户的带有更大变化性的输入是可能的多个相似字形。
在字母(a)所表示的显示处,示出了用户选择编辑到熟人的联系人记录的快捷方式的菜单控件,类似于图2中的字母(b)的选择。如同图2中的字母(c),在图3中的字母(b)所表示的显示中,向用户展现在其上绘制或描绘字形的画布,所述字形在该情况下用户描绘为小写字母、草书“I”。在字母(c)所表示的显示处,用户已返回到联系人列表,并且已经输入小写字母“I”,尽管其具有比用户先前为特定联系人记录输入的更细的环。在这样的情况下,在所输入的字形与足够程度并且已存储的字形——或至少与当前语境相关的任何已存储的字形不相匹配的情况下,设备可以向用户指出输入没有适当地注册。例如,用户绘制字母的颜色可以从白色变成红色以指示失败的输入。替选地,设备可以发出声音(诸如Bronx cheer(讥讽声)或Raspberry(咂舌声)),或可以促使设备轻微震动,使得用户能够听见或感到有些事情不寻常。
当接收这样的通知时,在该示例中,用户决定查看他们已与该朋友的联系人记录相互关联的字形,并且选择了该记录(其已在显示的顶部)。字母(d)至(h)所表示的显示表示用户已分配给该联系人记录的五个不同字形,其中字形中的三个类似于大写印刷的“L”字母,以及字形中的两个表示小写字母草书“I”字符。用户通过选择在触摸屏上或以其他适当方式显示的“前一”和“下一”控件,可以使不同的显示循环通过。在该示例中,用户可以看到其在字母(c)中输入的字形的错误,然后可以添加新的字形或改变其未来的实践以更好匹配在字母标注为(g)和(h)的显示中所示的已存储的字形。
在字形被辨识但是其含义有歧义的情况下,可以利用各种机制来解决歧义。例如,如果用户正在查看按字母表顺序的列表,并且已将以字母形式的字形分配给了播放列表、应用以及朋友的联系人记录,则输入将是有歧义的,因为其可能表示那些对象中的任何一个。在一个实施方式中,可以使用一个或多个规则来推断用户的意图。例如,由于在列表的语境下,设备可以假设用户意欲在列表内滚动。替选地,如果用户已在桌面上,则设备可以假设用户想要启动应用。在作出这样的确定时可以应用各种优先规则,以及规则可以由特定用户修改以及定制。
在用户的初始输入有歧义的情况下,设备还可以允许用户提供后续输入。因此,在上面的示例中,可以向用户图形地展现与用户所输入的字形相对应的对象列表。用户然后可以诸如通过在显示上按压对象或通过说出与对象在所显示的列表中的位置相对应的数字,来从列表选择对象中的一个。
在某些实施方式中,字形的输入可以是通用的,以及在其他实施方式中,其可以是语境的。并且,某些字形的输入可以仅在某些语境下被定址,而其他字形的输入在所有语境下被定址。作为后者情况的一个示例,与活动的诸如联系人记录的某一对象相关的字形可以在任何语境中被唤起。
还可以将字形链接到存储在设备上的宏、脚本或其他对象。例如,用户可能已编写了改变其设备上的各种设置的宏或脚本,以匹配他们在工作时的他们的需求,然后匹配他们远离工作时的不同需求——跨多个不同对象有效改变设备的设置。在这样的实施方式中,用户可以促使字形与宏或脚本相关联,使得当用户无论在桌面上还是从应用内输入该字形时,在设备上自动改变所有相关对象。
例如,关于用户指示的搜索查询,可以利用字形,无论字形是标准字符还是用户定义的字形。例如,用户可以绘制字母“H”以引发在按反向时间顺序的列表中或以其他适当方式列出的设备的最近访问的网站的历史。同样地,用户可以定义他或她意欲提交的持久性搜索,并且可以将字形分配给该搜索。例如,用户可能想要重复地搜索关于他自身或她自身的新闻,以及能够将星形的字形编程为被解释为包含他或她的名字以及被提交到新闻相关搜索引擎的搜索请求。在设备上从任何语境输入该字形可以促使浏览器启动、搜索查询被提交以及搜索结果被递送到浏览器中。
图4是响应于触摸屏输入而提供用户交互的***400的示意图。***400可以使用诸如设备402的移动设备来实现。设备402包括各种输入和输出机制,诸如触摸屏显示404和滚轮球406。在设备402内的多个组件可以被配置成诸如通过在显示404上绘制一个或多个字形,来在显示404上提供各种选择功能。
一个这样的组件是显示管理器412,其可以负责呈现内容以在显示404上展现。显示管理器412可以从多个源接收图形相关的内容,以及可以确定如何向用户提供该内容。例如,可能需要显示用于设备404上的各种应用410的多个不同窗口,以及显示管理器412可以确定哪些待显示、哪些待隐藏以及当在各种图形对象之间存在重叠时哪些待显示或隐藏。并且,当设备404的另一个组件辨识出用户正试图在触摸屏显示上绘制字形时,显示管理器可以帮助在用户绘制的位置处协调在显示上生成字形。
显示管理器412可以包括提供特定功能以与所显示的组件交互的各种组件,其可以跨多个应用共享以及可以例如由设备402的操作***供给。在其他所显示的组件上方输入字形可以使用绘制的用户输入控制器417在显示管理器412的协同下来管理。这样的控制器可以负责辨识何时用户正在显示上输入字形而不是执行不同功能、以及将输入的字形改变成可以由设备上的其他组件解释的命令。为了产生这样的命令,通过将定义用户所输入的字形的形状的信息传递给字形解释器415,绘制的用户输入控制器417可以引用字形解释器。字形解释器415然后可以将输入的字形与存储在设备上的标准和自定义字形两者进行比较,并且返回字形的身份,诸如字形ID号。
绘制的用户输入控制器417可能先前已映射并且存储字形ID以及当特定字形被输入时发生的动作。结果,控制器417可以将这样的信息传递给设备的其他组件。例如,各种应用410可以被存储在设备上并且在设备上运行。例如,在控制器417表示已与联系人记录相互关联的字形的情况下,控制器417可以调用联系人应用,并且将该记录的身份传递给联系人应用,使得该记录将响应于用户的对该字形的输入而自动显示。以这种方式,控制器417可以充当操作***的核心组件以及设备上的应用之间的一种干预器。
输入管理器414可以负责翻译设备402的用户所提供的命令。例如,这样的命令可能来自键盘、触摸屏显示404、描绘球406或其他这样的源,包括专用按钮或软按钮(例如,功能可以随着时间的推移而改变的按钮、以及功能可以在显示404的邻近特定按钮的区域上显示的按钮)。输入管理器414可以例如确定命令正在显示的哪个区域中被接收,因此命令打算供在正在显示上示出的哪个应用中使用。另外,其可以将触摸屏404上的输入运动解释为命令格式,并且将那些经解释的运动(例如,短按、长按、轻击以及直线拖动)传递给适当的应用。输入管理器414还可以向事件管理器(未示出)报告这样的输入,事件管理器进而向适当的模块或应用报告这样的输入。当为设备激活IME功能时,输入管理器可以将在软键盘区域中的输入传递给IME415。
控制器417可以向输入管理器414注册,以被通知在触摸屏上的用户输入,以及可以进而在其将特定输入辨识为是绘制的输入时,通知输入管理器,以阻止输入管理器将输入传递给可能将输入不正确地解释为是其他一些东西的其他组件。
多种应用410通常可以在设备402上的通用微处理器上操作。应用410可以采用多种形式,诸如地图应用、电子邮件和其他消息应用、web浏览器应用、音乐和视频播放器以及在web浏览器内运行或运行web浏览器的扩展的各种应用。应用410可以包括存储了记录或具有字母数字名称的其他组分,因此能够通过用户在触摸屏404的前端绘制字母数字字符来快速访问的应用。
无线接口408管理与无线网络的通信,该无线网络可以是还载送语音通信的数据网络。无线接口408可以诸如根据下述示例以熟悉的方式操作,以及可以提供设备402与诸如文本消息、电子邮件和电话语音邮件消息的消息服务的通信。另外,无线接口408可以支持通过无线网络下载以及上载内容和计算机代码。
诸如使用固定盘驱动和/或固态存储器设备,可以提供各种形式的持久性存储。在此示出了两个示例。第一,列表、地图等存储416包括对可以存储在设备402上并且由设备402展现的对象的各种定义。这样的对象包括其他对象列表,诸如设备上的歌曲、电视节目、电影或其他媒体的列表。列表还可以包括文件名列表,其中设备402存储大量的文件。并且,诸如地图的其他对象(例如,作为可以从远程服务器预取的图形地图瓦片),以及关于地图的元数据,诸如地图上的城镇和街道的名称以及地图上的感兴趣的点和企业的名称可以被存储。
其他存储包括用户默认418,其可以是存储在与列表、地图等416相同的介质上的用于用户的简档信息。用户默认418包括关于设备402的用户的各种参数。在此相关示例中,用户简档可以包括定义用户已输入的各种自定义字形的数据以及与那些字形的输入相关联的对象或动作。可以以多种形式,诸如以一个或多个XML文件或Sqlite文件来存储字形数据和其他信息。
使用所描绘的组件,以及为清楚起见在此省略的那些,设备402可以响应于用户输入而提供特定动作。具体地,设备402可以通过将输入辨识为是字形快捷方式来响应用户的输入,以及通过使设备跳转到与该字形相关联的位置或对象来对这样的数据输入作出响应。
图5A-5D是用于处理经由计算设备的用户的字形输入的示例过程的流程图。图5A一般地示出了一个过程,通过该过程,用户在设备上显示的列表之上输入的字母数字字形可以促使设备自动跳转到列表中的新位置。
该过程在框502开始,其中接收字形。字形可以是用户先前编程来指示该用户想要显示列表的形式的,所述列表诸如联系人列表、歌曲列表或其他类型的列表。例如,用户可能已将高音谱号的形状编程入其设备以表示使在其移动设备上的歌曲列表显示的意图。列表通常以字母数字方式来排序,例如其中以数字开始的标题靠近列表的顶部以及以字母Z开始的标题靠近列表的底部。字形可以以由接触点、释放点以及在接触点和释放点之间的绘制的路径定义的字符形式输入。
在框504,(例如,通过在已存储的字形库中找到与字形的最接近匹配,然后确定匹配的已存储的字形被分配给引发歌曲列表的动作)将字形与列表相互关联,以及列表在其最后位置处显示。例如,如果列表先前已被激活,以及用户已使用另一个应用来起动,则列表可以以用户最后查看它所处的状态显示。在该示例中,用户想要跳转到列表中的不同位置,因此在框506,用户诸如以图1中所示的方式在列表上方绘制字母表的字母的字形——其中字母表示列表中用户想要跳转到的位置。
在框508,该过程首先确定用户意在输入字形,然后识别与用户所输入的字形相对应的字母数字字符。例如,该过程可以确定用户试图输入字母表的特定字母。因此,在框510,该过程使列表滚动,使得列表中的第一文件以用户所输入的字符开始。例如,如果用户输入了字母B,则可以使列表滚动,使得示出用于用户的歌曲列表,其中显示的顶部以标题Badlands开始,后跟The Ballad of John and Yoko,后跟Bang,Bang,Bang,Bang(John Lee Hooker)等。
以这种方式,可以允许用户快速跳转到项目列表中明确定义的位置,而不必上下长时间滚动列表。结果,用户可以比如果他们被要求滚动更快速并且更可靠地到达期望的位置。并且,用户可以能够描绘字形,而不必查看他们的设备,使得他们能够在不对他们正做的其他事情失去专注力的情况下控制他们的设备。
图5B大体上表示类似于图5A中的过程的过程,但是示出了另外的细节,通过该另外的细节,设备可以在允许用户跳转到列表中的新位置中操作。该过程在框516开始,其中用户输入字形以示出用户的使特定类型的列表显示的意图。在框518,该过程将所输入的字形与特定列表相互关联,并且促使列表在列表中的其最后位置处显示。在框520,诸如通过用户将手指按压到正示出列表的触摸屏显示,以及通过用户在显示上勾画出路径,该过程接收用户的在列表上方的输入。
在框522,该过程确定用户输入是否是选择输入。例如,用户轻敲显示上的对象可以指示用户意在选择该对象,诸如通过在姓名列表中选择姓名以使关于所选择的姓名的联系人记录在设备上显示。如果输入是选择输入,则该过程可以示出选择框524,然后可以继续等待来自用户的另外输入。
在框526,该过程确定输入是否是以滚动输入形式的,诸如输入是否是用户在显示屏上的快速垂直重击。如果输入是以滚动输入形式的,则如在框527所示,该过程将列表滚动到新的位置,然后返回以接收另外的用户输入。
在框528,如果输入不是滚动输入,并且不是选择输入,则该过程确定输入是否是字形输入。可以例如通过识别经由用户的初始输入的线的边界框,并且确定边界框的纵横比是否指示用户意在输入诸如字形的字符,来作出这样的确定。如果输入不是字形输入,则该过程可以再次返回以接收另外的用户输入。不匹配任何所辨识的输入的这样的输入例如可以包括在不存在可选对象的显示区域上作出的选择。
在框530,字形在屏幕上如其被绘制的那样被示出。例如,线或折线可以在用户在其上按压并且拖动了他们的手指的屏幕上的线下面的位置处出现。以这种方式,可以向用户提供指示设备正以恰当方式辨识其输入的反馈,使得用户可以继续提供输入。
在框532,该过程确定用户输入是否已辨识任何字形。例如,该过程可以使用各种机制来将为字形绘制的形状与表示诸如字母数字字符的已知字形的已存储的形状进行比较。如果没有字形被辨识,则在框536,该过程以红色显示字形,并且使字形逐渐消失,使得其不再向用户示出。以这种方式,该过程向用户指示对字形的辨识失败,以及用户应当尝试输入其他字形或执行其他动作。该动作然后返回以等待另外的用户输入。
如果字形被辨识,则在框534,该过程确定输入是否是有歧义的,其中其确定是否辨识了多个字形。如果只有一个字形被辨识,则在框538,该过程可以立即将列表滚动到与所输入的字形相关联的字符。如果多个字形能够匹配用户所输入的字形,则该过程可以以多个方式中的一个对输入进行消歧。在该示例中,示出了对输入进行消歧的两个不同方式。第一个,在框540,该过程可以从可能的候选字形中挑选用户意欲输入的最可能的字形。例如,如上所述,可以使用多个规则来确定最重要的字形或最可能的字形。例如,如果用户处于特定应用中,则可以偏爱与该应用明确相关联的字形,而不喜欢更一般的字形,诸如将促使用户跳转到不同应用中的对象的字形。替选地,在框542,可以向用户示出可能动作的列表,以及用户可以选择他们在他们输入字形时意欲调用的动作。在任一情况下,该过程再次将列表滚动到被确定为是用户意图的字符的字符,并且该过程返回以从用户接收另外的输入。
图5C示出了用于使用字形输入来在地理地图上导航的方法的流程图。总的来说,该过程涉及接收以字母数字字符形式的字形或指示对可能当前未在地图上表示的点的用户兴趣的其他输入,以及将地图自动扫视到与字母或数字字符或其他输入相对应的感兴趣点。
该过程在框550开始,其中计算设备向用户显示地图。地图可以诸如以GOOGLE MAPS(谷歌地图)所提供的形式,由多个瓦片组成,在框552,设备接收用户在地图的表面上对字形的输入。使用如同上述那些的机制,可以将字形与诸如选择、或地图上的扫视或缩放运动的其他输入进行区分。
在框554,该过程识别与所输入的字形相对应的字母或数字。另外,该过程可以识别用户关联到字形的快捷方式。在框556,该过程识别以与该字形相关联的字母开始的地标。地标可以以多种不同方式来识别。例如,当将地图的瓦片从中央服务器下载到设备时,可以与下载一起提供地图的另外元数据。例如,可以向设备提供街道、地标、建筑物、企业、河流、十字路口、地区、体育场馆、节日和其他这样的对象的名称以及这样的项目的地理位置信息。当用户在设备上输入查询时,这样的元数据可以用于设备的正常使用。如在此过程中所示,然而,可以将元数据与用户所输入的字形的字母进行匹配。因此,例如,如果用户正驾驶通过城镇区域寻找Main Street(主街道),则用户可以在他们的屏幕上输入“M”形状以在他们正显示的地图上为他们定位Main Street。以这种方式,用户可以快速识别在他们附近以特定字母开始的地标或其他项目。
在许多情况下,在用户附近的多个地标将以同一字母开始。因此,用户以正式字形输入字母对设备来说可能有歧义。如在上面关于列表论述的,可以通过利用各种选择规则来选择特定地标,并且向用户显示。替选地,可以向用户以列表形式展现区域中的所有地标,以供用户选择。例如,如上所述,在用户在他们的设备上输入“M”形状的情况下,在该区域中同样可能存在由其黄金弧表明的多个McDowell(麦克道尔)的餐馆,以及那些餐馆同样可以触发匹配。以同样的方式,Maple Street(枫树街)、Marple Avenue(马普尔大道)以及Metrodome可以被识别为匹配。
在对于用户所输入的字母,出现多个匹配的情况下,框558示出了可以基于地标的重要性和到用户的距离对那些地标进行评分。例如,可以对评分算法进行编程,以使当用户正以相对较高速度移动,诸如在其汽车中时,街道名取得高于企业名的重要性,但是当用户正更缓慢地移动,以指示他们正在步行,并且可能正在寻找特定商店时,企业名取得高于街道名的领先权。以同样的方式,接近于用户的地标可以取得高于离用户更远的地标的领先权。因此,以各种方式,该过程可以为匹配用户所输入的字母的每一个地标产生合成分值,然后如框560所示,可以以根据分值排序(按照降序)的列表形式向用户显示各个匹配的地标。
在框562,该过程接收特定地标的用户选择,以及在框564,该过程扫视地图的显示,以使在显示上示出所选择的地标。在地标不能在单个显示上显示的情况下,诸如当地标是很长街道的情况下,如果用户在他或她当前移动的方向上继续,则诸如通过确定用户与该地标的未来交点,可以确定沿着地标的特定位置。并且,某些地标可以在用户选择了该地标(例如,非常大的地标)之后,导致地图的缩放水平改变。
图5示出了用于响应于在地图上方对字形的用户输入而在地图上移动的过程,该过程类似于图5C中所示的过程,但是被示出有更多细节。该过程在框570开始,其中以熟悉的方式显示地图。在框572,在地图上方接收用户输入。在框574,该过程确定用户输入是否是选择输入,以及如果是,则在框576,执行该输入。在框578,对输入进行分析以确定其是否是字形输入,以及如果不是,则该过程返回以等待接收另外的用户输入。如果输入是字形输入,则在框580字形在屏幕上如其由用户绘制的那样被显示。以这种方式,该过程向用户提供反馈,使得用户能够看见他们的输入正由设备恰当地处理。
在框582,字形已被绘制(例如,用户已抬起他或她的手指),以及该过程确定其是否能够辨识用户输入的字形。如果该过程不能将字形辨识为与设备中已存储的字形有关,则在框584,该过程以红色显示该字形,并且使该字形逐渐消失,将用户返回到输入另外的输入。例如,用户然后可以试图重新输入该字形以使设备再次辨识该字形。
如果字形被辨识,则该过程识别在用户附近的以与该字形相互关联的字母数字字符开始的地标(例如使用GPS接收器,其可以被确定为实际位置;或例如通过假设用户位于当前向用户显示的地图的中心,其被确定为推断位置),并且对其进行评分。在框588,该过程然后展现以该字形的字母或数字开始的地标列表,并且接收对地标中的一个的用户选择。在框590,该过程诸如以上述方式识别中心点和用于地标的缩放水平,以及在592,该过程通过以下结束:将地图显示扫视到新的位置,使得地标在新的位置向用户展现。
总的来说,图6A示出了用于将一个或多个字形分配给特定对象的过程,而图6B示出了用于显示可能与对象相关联的字形的过程。图6A的过程在框602开始,其中接收操作***对象的用户选择。这样的选择可以在许多不同类型的情况下发生,所述情况诸如当用户想要查阅关于对象的细节或启动与对象相关联的应用时。例如,想要呼叫朋友的用户将频繁识别联系人列表中的用于该朋友的联系人记录,以启动电话应用来呼叫该朋友。
在框604,该过程接收示出将字形分配给对象的用户意图的用户选择。例如,用户可能最近与特定熟人变得非常友好,并且可能想要能够比他们过去已经能够的更快地联系该熟人。结果,用户可能想要将字形分配给该朋友,使得用于该朋友的联系人记录可以被更快地带出。在框606,向用户显示字形输入指令,以及用户响应于该指令描绘用于该熟人的新字形。可以以与设备的背景形成对比的颜色将用户的描绘路径显示为折线,使得用户能够在绘制字形时描绘他或她的进展。在框608,用户已经完成绘制字形,该过程向用户显示该字形,并且该过程从用户接收他们愿意使他们绘制的该字形分配给该熟人的确认。如果用户不认为他们恰当地绘制了字形,则他们可以拒绝将字形与该熟人的联系人记录相互关联,以及可以被再次示出他们能够试图再次绘制字形的画布。一旦用户指示将字形与对象相互关联的意图,在框610,该过程就可以将字形分配给对象。
在稍后时间点,用户可能正使用其设备,以及可能想要立即带出对象,而不必打开列表、滚动通过列表以及从列表选择该对象。结果,用户然后可以将字形输入到其设备中,以及在框614,设备和过程可以将字形的输入解释为看见对象的用户意图,并且可以自动打开该对象以供用户查阅。
图6B一般地示出了一个过程,通过该过程用户能够通过绘制字形,然后选择对象来将字形加标记于对象。在此示出的特定过程中,用户最初绘制其移动设备未辨识的字形,因此他们找到对象,以使该对象能够与该字形相互关联,并且可以在下一次输入该字形时被自动带出。
图6B的过程在框621开始,其中该过程接收字形的用户输入。在框622,该过程确定该字形是否被辨识为是用户可能在设备上输入的多个已存储的字形中的一个。如果其被辨识,则在624,激活与该字形相对应的对象,并且该过程返回以等待另外的用户输入。如果该字形未被辨识,则在用户意欲输入用于对象的字形,但是未能恰当地输入当前被分配给对象的字形的假设下,该过程可以指示用户导航到对象。在框628,用户已导航到对象,以及该过程因此可以链接到用户为该对象绘制的字形。
在框630,用户可以确定他们想要看见与同一对象相关联的其他字形,以及他们作出对那方面控件的选择。该过程可以通过以诸如图3中所示的方式向用户示出其他字形来作出响应。在框632,用户指示停止查阅字形的意图,以及在框632,该过程清除字形输入过程。该过程然后返回到其开始的点,以及用户可以继续以先前的方式与其设备交互。
图7示出了可以与在此描述的技术一起使用的通用计算机设备700和通用移动计算机设备750的示例。计算设备700意在表示各种形式的数字计算机,诸如膝上型机、台式机、工作站、个人数字助理、服务器、刀片服务器、大型机以及其他适当的计算机。计算设备750意在表示各种形式的移动设备,诸如个人数字助理、蜂窝电话、智能手机以及其他类似的计算设备。在此示出的组件、其连接和关系以及其功能意在只是示例性的,并且并不意在限制在本文档中描述和/或主张的本发明的实施方式。
计算设备700包括处理器702、存储器704、存储设备706、连接到存储器704和高速扩展端口710的高速接口708以及连接到低速总线714和存储设备706的低速接口712。组件702、704、706、708、710和712中的每一个使用各种总线互连,并且可以视情况被安装在公共主板上或以其他方式安装。处理器702可以处理用于在计算设备700内执行的指令,包括存储在存储器704中或存储设备706上用来在诸如耦接到高速接口708的显示716的外部输入/输出设备上显示GUI的图形信息的指令。在其他实施方式中,可以视情况使用多个处理器和/或多个总线以及多个存储器和存储器类型。并且,可以连接多个计算设备700,其中每一个设备提供部分必需操作(例如,作为服务器簇、刀片服务器组或多处理器***)。
存储器704存储在计算设备700内的信息。在一个实施方式中,存储器704是易失性存储器单元。在另一个实施方式中,存储器704是非易失性存储器单元。存储器704还可以是另一种类型的计算机可读介质,诸如磁或光盘。
存储设备706能够为计算设备700提供海量存储。在一个实施方式中,存储设备706可以是或包含计算机可读介质,诸如软盘设备、硬盘设备、光盘设备或带设备、闪存或其他类似的固态存储器设备、或设备阵列,包括在存储区域网络或其他配置中的设备。计算机程序产品可以被有形地包含在信息载体中。计算机程序产品还可以包含在被执行时执行诸如上述那些方法的一个或多个方法的指令。信息载体是计算机或机器可读介质,诸如存储器704、存储设备706、在处理器702上的存储器或传播信号。
高速控制器708管理关于计算设备700的带宽密集型操作,而低速控制器712管理较低带宽密集型操作。这样的功能分配只是示例性的。在一个实施方式中,高速控制器708(例如通过图形处理器或加速器)耦接到存储器704、显示716,以及耦接到可以接受各种扩展卡(未示出)的高速扩展端口710。在该实施方式中,低速控制器712耦接到存储设备706和低速扩展端口714。可以包括各种通信端口(例如USB、蓝牙、以太网、无线以太网)的低速扩展端口可以耦接到诸如键盘、指示设备、扫描仪的一个或多个输入/输出设备,或例如通过网络适配器耦接到诸如交换机或路由器的联网设备。
如图所示,可以以多种不同的形式实现计算设备700。例如,计算设备700可以被实现为标准服务器720或更多时间被实现在在一组这样的服务器中。计算设备700还可以被实现为机架服务器***724的一部分。另外,计算设备700可以在诸如膝上型计算机722的个人计算机中实现。替选地,可以将来自计算设备700的组件与诸如设备750的移动设备(未示出)中的其他组件相组合。这样的设备中的每一个可以包含计算设备700、750中的一个或多个,以及整个***可以由相互通信的多个计算设备700、750组成。
除其他组件外,计算设备750包括处理器752、存储器764、诸如显示754的输入/输出设备、通信接口766以及收发器768。设备750还可以被提供有诸如微型驱动或其他设备的存储设备以提供另外的存储。组件750、752、764、754、766和768中的每一个使用各种总线互连,以及若干组件可以视情况被安装在公共主板上或以其他方式安装。
处理器752可以执行在计算设备750内的指令,包括存储在存储器764中的指令。处理器可以被实现为包括独立和多个模拟和数字处理器的芯片的芯片集。处理器可以例如提供对设备750的其他组件的协调,诸如对用户接口、由设备750运行的应用以及经由设备750的无线通信的控制。
处理器752可以通过耦接到显示754的控制接口758和显示接口756与用户通信。显示754可以是例如TFT LCD(薄膜晶体管液晶显示)或OLED(有机发光二极管)显示或其他适当的显示技术。显示接口756可以包括用于驱动显示754向用户呈现图形和其他信息的适当的电路。控制接口758可以从用户接收命令并且将命令进行转换以提交给处理器752。另外,可以提供与处理器752通信的外部接口762,以使得设备750能够与其他设备进行近区域通信。外部接口762可以例如在一些实施方式中提供有线通信,或在其他实施方式中提供无线通信,以及还可以使用多个接口。
存储器764存储在计算设备750内的信息。存储器764可以被实现为计算机可读介质、易失性存储器单元或非易失性存储器单元中的一个或多个。还可以提供扩展存储器774并且通过可以包括例如SIMM(单列直插内存模块)卡接口的扩展接口772将其连接到设备750。这样的扩展存储器774可以为设备750提供另外的存储空间,或还可以存储用于设备750的应用或其他信息。具体地,扩展存储器774可以包括指令来实现或补充上述过程,以及还可以包括安全信息。因此,扩展存储器774可以例如作为用于设备750的安全模块提供,以及可以被编程有许可安全使用设备750的指令。另外,安全应用以及另外的信息可以经由SIMM卡提供,诸如以不可非法侵入的方式将标识信息放置在SIMM卡上。
存储器可以如下所述包括例如闪存和/或NVRAM存储器。在一个实施方式中,将计算机程序产品有形地包含在信息载体中。计算机程序产品包含在被执行时执行诸如上述那些方法的一个或多个方法的指令。信息载体是计算机或机器可读介质,诸如存储器764、扩展存储器774、在处理器752上的存储器或可以例如通过收发器768或外部接口762接收的传播信号。
设备750可以在需要的情况下通过可以包括数字信号处理电路的通信接口766无线地通信。通信接口766可以提供在各种模式或协议下的通信,诸如GSM语音通话、SMS、EMS或MMS消息、CDMA、TDMA、PDC、WCDMA、CDMA2000或GPRS等。可以例如通过射频收发器768来发生这样的通信。另外,诸如使用蓝牙、WiFi或其他这样的收发器(未示出),可以发生短程通信。另外,GPS(全球定位***)接收器模块770可以向设备750提供可以由运行在设备750上的应用视情况使用的另外的导航和位置相关的无线数据。
设备750还可以使用音频编解码器760可听见地通信,音频编解码器760可以从用户接收口语信息并且将其转换为可使用的数字信息。同样,音频编解码器760可以诸如通过例如在设备750的送受话器中的扬声器,为用户生成可听见的声音。这样的声音可以包括来自语音电话呼叫的声音,可以包括已记录的声音(例如,语音消息、音乐文件等)以及还可以包括由在设备750上操作的应用生成的声音。
如图所示,可以以多种不同的形式实现计算设备750。例如,计算设备750可以被实现为蜂窝电话780。计算设备750还可以被实现为智能手机782、个人数字助理或其他类似的移动设备的部分。
设备750还可以包括能够感知运动的一个或多个不同设备。示例包括但不限于加速度计和指南针。加速度计和指南针或能够检测运动或位置的其他设备可从许多供应商获得,以及能够以多种方式感知运动。例如,加速度计能够检测加速度的改变,而指南针能够检测相对于磁北极或南极的方向的改变。运动的这些改变可以由设备750检测,并且用来根据在此描述的过程和技术,更新相应设备750的显示。
可以以数字电子电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或以上的组合来实现在此描述的***和技术的各种实施方式。这些各种实施方式可以包括在可编程***上可执行和/或可解释的一个或多个计算机程序中的实施方式,所述可编程***包括至少一个可编程处理器,其可以是专用或通用的,被耦接以从存储***、至少一个输入设备和至少一个输出设备接收数据和指令以及向存储***、至少一个输入设备和至少一个输出设备传送数据和指令。
这些计算机程序(也被称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可以以高级程序和/或面向对象的编程语言、和/或汇编/机器语言来实现。如在此所使用的,术语“机器可读介质”、“计算机可读介质”是指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑设备(PLD)),包括接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。
为了提供与用户的交互,在此描述的***和技术可以在具有下述的计算机上实现:用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或LCD(液晶显示)监视器),以及用户通过其可以向计算机提供输入的键盘和指示设备(例如,鼠标或跟踪球)。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感知反馈(例如,视觉反馈、听觉反馈或触觉反馈);以及可以以任何形式,包括声学的、话音的或触觉的输入,接收来自用户的输入。
在此描述的***和技术可以在包括后端组件(例如作为数据服务器)、或包括中间件组件(例如应用服务器)、或包括前端组件(例如具有用户通过其可以与在此描述的***和技术的实施方式交互的图形用户界面或Web浏览器的客户端计算机)、或者这样的后端、中间件或前端组件的任何组合的计算***中实现。***的组件可以通过任何形式或介质的数字数据通信(例如通信网络)互连。通信网络的示例包括局域网(″LAN″)、广域网(″WAN″)以及因特网。
计算***可以包括客户端和服务器。客户端和服务器通常彼此远离并且典型地通过通信网络交互。客户端和服务器的关系依靠在各个计算机上运行并且彼此具有客户端-服务器关系的计算机程序产生。
已经描述了多个实施例。然而,将理解的是,在不背离本发明的精神和范围的情况下,可以进行各种修改。例如,参考消息和地图应用来描述了本文档的大部分,但是也可以提出其他形式的图形应用,诸如交互式节目指南、网页导航和缩放以及其他这样的应用。
另外,附图中所描绘的逻辑流不需要所示的特定顺序或连续顺序来达到期望的结果。另外,可以提供其他步骤,或可以从所描述的流程除去步骤,以及可以将其他组件添加到所描述的***或从所描述的***移除组件。因此,其他实施例在权利要求的范围内。