CN104487932B - 用于远程应用和桌面的语音识别支持 - Google Patents
用于远程应用和桌面的语音识别支持 Download PDFInfo
- Publication number
- CN104487932B CN104487932B CN201380035569.5A CN201380035569A CN104487932B CN 104487932 B CN104487932 B CN 104487932B CN 201380035569 A CN201380035569 A CN 201380035569A CN 104487932 B CN104487932 B CN 104487932B
- Authority
- CN
- China
- Prior art keywords
- elements
- behalf
- word
- computing platform
- remote computing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000013518 transcription Methods 0.000 claims abstract description 78
- 230000035897 transcription Effects 0.000 claims abstract description 78
- 230000006870 function Effects 0.000 claims abstract description 66
- 230000015654 memory Effects 0.000 claims description 37
- 238000000034 method Methods 0.000 claims description 34
- 230000008859 change Effects 0.000 claims description 16
- 230000000007 visual effect Effects 0.000 claims description 9
- 229910052701 rubidium Inorganic materials 0.000 claims description 7
- IGLNJRXAVVLDKE-UHFFFAOYSA-N rubidium atom Chemical compound [Rb] IGLNJRXAVVLDKE-UHFFFAOYSA-N 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 5
- 230000033001 locomotion Effects 0.000 claims description 4
- 230000004438 eyesight Effects 0.000 claims description 2
- 238000003860 storage Methods 0.000 description 33
- 238000012545 processing Methods 0.000 description 21
- 238000004458 analytical method Methods 0.000 description 18
- 238000004519 manufacturing process Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 13
- 238000003780 insertion Methods 0.000 description 13
- 230000037431 insertion Effects 0.000 description 13
- 244000078534 Vaccinium myrtillus Species 0.000 description 11
- 238000012360 testing method Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 235000003095 Vaccinium corymbosum Nutrition 0.000 description 5
- 235000017537 Vaccinium myrtillus Nutrition 0.000 description 5
- 235000021014 blueberries Nutrition 0.000 description 5
- 239000003795 chemical substances by application Substances 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 238000009434 installation Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 101500006577 Bothrops alternatus Disintegrin-like alternagin-C Proteins 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 230000005611 electricity Effects 0.000 description 3
- RGNPBRKPHBKNKX-UHFFFAOYSA-N hexaflumuron Chemical compound C1=C(Cl)C(OC(F)(F)C(F)F)=C(Cl)C=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F RGNPBRKPHBKNKX-UHFFFAOYSA-N 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 210000003127 knee Anatomy 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- IRLPACMLTUPBCL-KQYNXXCUSA-N 5'-adenylyl sulfate Chemical compound C1=NC=2C(N)=NC=NC=2N1[C@@H]1O[C@H](COP(O)(=O)OS(O)(=O)=O)[C@@H](O)[C@H]1O IRLPACMLTUPBCL-KQYNXXCUSA-N 0.000 description 1
- 108010022579 ATP dependent 26S protease Proteins 0.000 description 1
- 241000501754 Astronotus ocellatus Species 0.000 description 1
- 101000666896 Homo sapiens V-type immunoglobulin domain-containing suppressor of T-cell activation Proteins 0.000 description 1
- 102100038282 V-type immunoglobulin domain-containing suppressor of T-cell activation Human genes 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- IJJVMEJXYNJXOJ-UHFFFAOYSA-N fluquinconazole Chemical compound C=1C=C(Cl)C=C(Cl)C=1N1C(=O)C2=CC(F)=CC=C2N=C1N1C=NC=N1 IJJVMEJXYNJXOJ-UHFFFAOYSA-N 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 206010022000 influenza Diseases 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 229910052751 metal Inorganic materials 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000003973 paint Substances 0.000 description 1
- 238000005498 polishing Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000010008 shearing Methods 0.000 description 1
- 230000019491 signal transduction Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000000859 sublimation Methods 0.000 description 1
- 230000008022 sublimation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/16—Sound input; Sound output
- G06F3/167—Audio in a user interface, e.g. using voice commands for navigating, audio feedback
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/038—Indexing scheme relating to G06F3/038
- G06F2203/0381—Multimodal input, i.e. interface arrangements enabling the user to issue commands by simultaneous use of input devices of different nature, e.g. voice plus gesture on digitizer
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Multimedia (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
应用可被托管以供远程计算平台使用。可识别由所托管的应用生成的用户界面(UI)的UI元素。可生成代理UI元素。代理UI元素中的每个可对应于识别出的UI元素中的一个或多个。可处理音频样本的转录。音频样本可包括远程计算平台的用户的话语。音频样本的转录可包括对应于代理UI元素中的一个或多个的至少一个词。可调用所托管的应用的功能。被调用的功能可与对应于代理UI元素中的一个或多个的UI元素中的一个或多个相对应。
Description
优先权声明
本申请要求于2012年5月7日提交并且题目为“用于远程应用和桌面的语音识别支持(Speech Recognition Support for Remote Applications and Desktops)”的美国临时专利申请序列号61/643,663的优先权,其公开内容通过引用以其整体并入本文并构成本文的一部分。
背景技术
远程应用和/或远程桌面被广泛用于消费者和企业应用。消费者更喜欢远程应用或桌面,因为它们提供了对本地定制的安装的安全和简单的替代方案,本地定制的安装可证明对技术要求高且易受恶意软件的攻击。由于远程应用或桌面的可扩展性、安全性以及平台无关的可访问性,因此企业管理员常常选择远程应用或桌面而非本地安装。
语音识别技术在现代软件应用中发挥越来越重要的作用。随着语音识别技术在准确度方面的提高,硬件制造商已利用其提高的精度来减小硬件平台的尺寸,例如,通过移除曾经普遍的可选输入装置(例如键盘和触摸装置)。此外,某些应用特别适合于语音识别,例如,将由很可能将需要他们的双手空出来执行其它任务(例如,在医学环境或牙科环境下)的用户使用的应用。
因此,存在用于远程应用和桌面的语音识别支持的需要。
发明内容
鉴于前面的背景,下面给出本公开的简化的发明内容,以便提供对本文描述的一些方面的基本理解。该发明内容不是详尽的概览,并且它不旨在确定关键或重要元素,也不旨在描写权利要求的范围。以下发明内容仅仅以简化形式呈现本文进一步描述的各个方面,作为后面给出的更详细的描述的前序。
根据本文描述的一个或多个方面,可托管应用以供远程计算平台使用。可识别由所托管的应用生成的界面(UI)的用户UI元素。可生成代理UI元素。所述代理UI元素中的每个可对应于所识别的UI元素中的一个或多个。可处理音频样本的转录。所述音频样本可包括所述远程计算平台的用户的话语。所述音频样本的转录可包括对应于所述代理UI元素中的一个或多个的至少一个词。可调用所托管的应用的功能。所调用的功能可对应于所述UI元素中的一个或多个,其对应于所述代理UI元素中的一个或多个。
在一些实施例中,音频样本的转录可包括要被插入由所托管的应用生成的UI字段中的文本。在一些实施例中,包括在音频样本的转录中的文本可被插入在由所托管的应用生成的UI字段中。在一些实施例中,可识别对应于由所托管的应用生成的UI字段中的位置的上下文文本。所述位置可对应于要被插入文本的字段的定位。可将上下文文本传送到远程计算平台。可用上下文文本更新储存在远程计算平台处的滑动窗口。在插入要被插入的文本之前,可使用滑动窗口来精炼要被插入的文本。
在一些实施例中,可更新储存在远程计算平台处的一组统一的词。所述一组统一的词可包括对应于在远程计算平台上本地执行的应用或程序的语音识别功能的至少一个词。所述一组统一的词可包括对应于多个代理UI元素中的一个或多个的至少一个词。
在一些实施例中,可从语音识别计算平台接收音频样本的转录。该语音识别计算平台可为不同于远程计算平台和托管所托管的应用的计算平台的计算平台。
在一些实施例中,多个代理UI元素中的一部分可配置为对远程计算平台的用户可见。在一些实施例中,配置成对远程计算平台的用户可见的多个代理UI元素中的一部分可包括一个或多个视觉提示。所述视觉提示可配置为覆盖在由所托管的应用生成的UI元素中的一个或多个上。在这样的实施例中,对应于代理UI元素中的一个或多个的至少一个词可包括对应于视觉提示的至少一个词。在一些实施例中,配置成对远程计算平台的用户可见的多个代理UI元素中的一部分可包括光标瞄准十字线,所述光标瞄准十字线配置成覆盖在由所托管的应用生成的UI的多个UI元素中的一个或多个上。在这样的实施例中,对应于所述代理UI元素中的一个或多个的至少一个词可包括用于引导光标瞄准十字线移动的至少一个词。
在一些实施例中,多个代理UI元素中的一部分可配置为从远程计算平台的用户的角度看为隐藏的。在一些实施例中,配置成从远程计算平台的用户的角度看为隐藏的代理UI元素中的一部分可包括一个或多个光标方向选项。在这样的实施例中,对应于多个代理UI元素中的一个或多个的至少一个词可包括对应于光标方向选项中的一个或多个的至少一个词。在一些实施例中,配置成从远程计算平台的角度看为隐藏的代理UI元素中的一部分可包括配置成调用与所托管的应用相关联的一系列命令的一个或多个宏选项。在这样的实施例中,对应于代理UI元素中的一个或多个的至少一个词可包括与一个或多个宏选项相关联的至少一个词,并且调用所托管的应用的功能可包括调用所述一系列命令。
在一些实施例中,配置成从远程计算平台的角度看为隐藏的所述代理UI元素中的一部分可包括配置成调用与所托管的应用相关联的一系列命令的一个或多个键盘快捷键选项。在这样的实施例中,对应于代理UI元素中的一个或多个的至少一个词可包括与一个或多个键盘快捷键选项相关联的至少一个词,并且调用所托管的应用的功能可包括调用所述一系列命令。在一些实施例中,配置成从远程计算平台的角度看为隐藏的代理UI元素中的一部分可包括导航菜单选项。所述导航菜单选项可包括可从远程计算平台当前正在显示的所托管的应用的UI状态获得的一个或多个导航选项。在这样的实施例中,对应于代理UI元素中的一个或多个的至少一个词可包括对应于导航菜单选项的至少一个词,并且调用所托管的应用的功能可包括将所托管的应用导航到一个或多个导航菜单选项中的一个。
在一些实施例中,可识别UI元素的属性。可基于识别出的UI元素的属性生成代理UI元素。每个各自的代理UI元素可与对应于属性中的一个或多个属性的一个或多个词相关联,对应于UI元素中的一个或多个的所述属性中的一个或多个属性对应于各自的代理UI元素。在一些实施例中,属性可包括UI元素中的一个或多个UI元素关于UI元素中的一个或多个其他的UI元素的位置关系的一个或多个指示。在这样的实施例中,对应于代理UI元素中的一个或多个的至少一个词可包括指示UI元素中的一个或多个UI元素关于UI元素中的一个或多个其他的UI元素的位置关系的词,并且调用所托管的应用的功能可包括将当前选择的所托管的应用的UI元素从UI元素中的一个或多个UI元素改变成UI元素中的一个或多个其他的UI元素。
在一些实施例中,识别出的属性可包括下拉UI元素的一个或多个下拉选择选项。在这样的实施例中,对应于代理UI元素中的一个或多个的至少一个词可包括对应于下拉UI元素的一个或多个下拉选择选项中的至少一个的词,并且调用所托管的应用的功能包括选择下拉UI元素的一个或多个下拉选择选项中的至少一个。在一些实施例中,识别出的属性可包括被标记的UI元素的一个或多个UI元素标记。在这样的实施例中,对应于代理UI元素中的一个或多个的至少一个词可包括对应于所述被标记的UI元素的一个或多个UI元素标记中的至少一个的词,并且调用所托管的应用的功能可包括将当前选择的所托管的应用的UI元素从当前选择的所托管的应用的UI元素改变成所述被标记的UI元素。
在一些实施例中,所托管的应用可在虚拟化平台的虚拟计算环境内运行。远程计算平台可通过在远程计算平台上执行的接收机应用来访问虚拟计算环境。在一些实施例中,所托管的应用和/或接收机应用可包括网页浏览器或网页浏览器插件。识别多个UI元素可包括对网页浏览器或网页浏览器插件中的至少一个的浏览器辅助对象(BHO)进行至少一次调用。
在一些实施例中,可检测多个UI元素的一个或多个变化。响应于检测多个UI元素的一个或多个变化,可生成附加代理UI元素。附加代理UI元素中的每个可对应于多个UI元素中的一个或多个检测到的变化中的至少一个。
附图说明
已经概括地如此描述了本公开的多个方面,现在将参考附图,这些附图并不一定按比例绘制,并且在附图中:
图1绘示了示例性操作环境,在示例性操作环境中可实现本公开的各个方面;
图2绘示了示例性计算装置,可依照本文描述的一个或多个说明性方面来使用该示例性计算装置;
图3绘示了示例性计算装置,可依照本文描述的一个或多个说明性方面来使用该示例性计算装置;
图4绘示了虚拟化服务器的实例,可依照本文描述的一个或多个说明性方面来使用该虚拟化服务器;
图5绘示了依照本文描述的一个或多个说明性方面的用于远程应用和桌面的语音识别支持的示例性计算环境;
图6A和图6B绘示了依照本文描述的一个或多个说明性方面的用于远程应用和桌面的语音识别支持的示例性事件流程;
图7绘示了所托管的应用的示例性用户界面,其可使用依照本文描述的一个或多个说明性方面的用于远程应用和桌面的语音识别支持来交互;
图8A和图8B绘示了所托管的应用的另外的示例性用户界面,其可使用依照本文描述的一个或多个说明性方面的用于远程应用和桌面的语音识别支持来交互;
图9A、图9B、图9C、图9D、图9E和图9F绘示了依照本文描述的一个或多个说明性方面的用于远程应用和桌面的语音识别支持的另外的示例性事件流程;
图10绘示了包括所托管的应用的说明性用户界面的示例性用户视图,该所托管的应用的说明性用户界面可使用依照本文描述的一个或多个说明性方面的用于远程应用和桌面的语音识别支持来交互;以及
图11绘示了用于依照本文描述的一个或多个说明性方面的用于远程应用和桌面的语音识别支持的示例性方法。
具体实施方式
在各个实施例的以下描述中,参考了构成其一部分的附图,并且在这些附图中,以举例说明的方式示出了可实践本文描述的各方面的各种实施例。应该理解,可以使用其他实施例,并且可进行结构和功能修改而不脱离本公开的范围和精神。
本领域的技术人员通过阅读以下公开可认识到,本文描述的各个方面可以被实现为一种方法、一种数据处理系统或一种计算机程序产品。因此,那些方面可采取以下形式:完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例。此外,这些方面可采取计算机程序产品的形式,该计算机程序产品由具有计算机可读程序代码或指令的一个或多个计算机可读存储介质存储,所述计算机可读程序代码或指令存在存储介质中或存储介质上具体化。可利用任何合适的计算机可读存储介质,包括硬盘、CD-ROM、光学存储装置、磁性存储装置和/或它们的任何组合。此外,可使如本文所述的表示数据或事件的各种信号以电磁波的形式在源与目的地之间传递,所述电磁波行进通过信号传导介质,如金属线、光纤和/或无线传输介质(例如,空气和/或空间)。
图1示出了可根据本公开的一个或多个说明性实施例使用的、位于示例性计算环境100中的通用计算装置101(例如计算机服务器106a)的示例性框图。根据一个或多个方面,通用计算装置101可为配置成为客户端访问装置提供虚拟机的位于单服务器或多服务器桌面虚拟化系统(例如云系统)中的服务器106a。通用计算装置101可具有处理器103及其相关部件,处理器103用来控制服务器的整个操作,其相关部件包括随机存取存储器(RAM)105、只读存储器(ROM)107、输入/输出(I/O)模块109、及存储器115。
I/O模块109可包括通过其通用计算装置101的用户可提供输入的鼠标、键盘、触摸屏、扫描仪、光学读出器和/或手写笔(或其它输入装置),并且还可包括用于提供音频输出的一个或多个扬声器以及用于提供文本输出、视听输出和/或图形输出的视频显示装置。软件可存储在存储器115和/或其它储存器中,以提供指令给处理器103,使得通用计算装置101能够执行各种功能。例如,存储器115可存储通用计算装置101所用的软件,例如操作系统117、应用程序119和相关联的数据库121。又或者,用于通用计算装置101的计算机可执行指令中的一些或所有指令可在硬件或固件(未示出)中具体实现。
通用计算装置101可在支持到一个或多个远程计算机的连接的联网环境中操作,所述远程计算机诸如终端140(也称为客户端装置)。该终端140可以是个人计算机或服务器,包括上述的有关通用计算机装置101的许多或所有元件。图1中所绘示的网络连接包括局域网(LAN)125和广域网(WAN)129,但也可包括其它网络。当被用于LAN网络环境中时,通用计算装置101可通过网络接口或适配器123连接到LAN 125。当被用于WAN网络环境中时,通用计算装置101可包括调制解调器127或用于在WAN 129上建立通信的其它网络接口,所述WAN诸如计算机网络130(例如,因特网)。可以理解,所示网络连接是示例性的,并且可使用在计算机之间建立通信链路的其它方式。
通用计算装置101和/或终端140还可以是移动终端(例如,移动电话、智能电话、PDA、笔记本电脑等),这些移动终端包括各种其它部件,如电池、扬声器和天线(未示出)。
本公开可与众多其它通用或专用计算系统环境或配置进行操作。可适用于与本公开一起使用的众所周知的计算系统、环境和/或配置的实例包括但不限于个人计算机、服务器计算机、手持或膝上型装置、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机、大型计算机、包括上述系统或装置中的任一个的分布式计算环境等。
如图1所示,一个或多个客户端装置140可与一个或多个服务器106a-106n(本文统称为“服务器106”)通信。在一个实施例中,计算环境100可以包括安装在服务器106和客户机140之间的设备。该设备可以管理客户端/服务器连接,并且在某些情况下,可以负载平衡在多个后端服务器106之间的客户端连接。
在一些实施例中,客户机140可以称为单个客户机140或单组客户机140,同时服务器106可称为单个服务器106或单组服务器106。在一个实施例中,单个客户机140与一个以上的服务器106通信,而在另一实施例中,单个服务器106与一个以上的客户机140通信。在又一个实施例,单个客户机140与单个服务器106通信。
在一些实施例中,客户机140可以用下列术语中的任意一个来提及:客户机140、客户端、客户端计算机、客户端装置、客户端计算装置、本地机器、远程机器、客户端节点、端点、或端点节点。在一些实施例中,服务器106可用下列术语中的任意一个来提及:服务器、本地机器、远程机器、服务器场、或主机计算装置。
在一个实施例中,客户机140可以是虚拟机。虚拟机可以是任何虚拟机,而在一些实施例中,虚拟机可以是由Citrix System、IBM、VMware开发的超级管理器(hypervisor)或任何其他超级管理器管理的任何虚拟机。在一些方面,所述虚拟机可由超级管理器管理,而在其他方面,所述虚拟机可由在服务器106上执行的超级管理器或客户机140上执行的超级管理器来管理。
客户机140可执行应用、操作应用或者以别的方式提供应用,该应用可以是以下中的任意一种:软件、程序、可执行指令、虚拟机、超级管理器、网络浏览器、基于网络的客户端、客户端-服务器应用、瘦客户端计算客户端、ActiveX控件、Java小程序、与像软IP电话的与通过因特网协议(VoIP)通信的声音有关的软件、用于视频流和/或音频流的应用、便于实时数据通信的应用、HTTP客户端、FTP客户端、Oscar客户端、Telnet客户端、或任何其他可执行指令集。
还有其他一些实施例包括显示应用输出的客户端装置140,所述应用输出由在服务器106或其他远程定位机器上远程执行的应用生成。在这些实施例中,客户端装置140可执行虚拟机接收机程序或应用,以在应用窗口、浏览器或其他输出窗口中显示输出。在一个实例中,所述应用是桌面,而在其他实例中,应用是生成桌面的应用。桌面可包括为操作系统的实例提供用户界面的图形壳,其中本地应用和/或远程应用可以集成于所述操作系统中。本文所使用的应用为在加载了操作系统(并且可选地同样为桌面)的实例之后执行的程序。
在一些实施例中,服务器106执行远程演示客户端或其他客户端或程序,其使用瘦客户端或远程显示协议来获取由在服务器106上执行的应用所生成的显示输出,并且将应用显示输出传输到远程客户机140。所述瘦客户端或远程显示协议可以为以下协议中的任意一种:由佛罗里达州劳德代尔堡的Citrix Systems有限公司制造的独立计算体系结构(Independent Computing Architecture,ICA)协议,或由华盛顿州雷蒙德市的微软公司制造的远程桌面协议(Remote Desktop Protocol,RDP)。
计算环境可包括多于一个的服务器106A-106N,使得服务器106A-106N例如在云计算环境中一起逻辑地组合于服务器场106中。服务器场106可以包括在地理上是分散的并且一起逻辑地组合在服务器场106中的服务器106、或者彼此邻近定位并且一起逻辑地组合在服务器场106中的服务器106。在一些实施例中,服务器场106内地理上分散的服务器106A-106N可以使用WAN、MAN或LAN通信,其中不同地理区域的特征可以为:不同的大陆、一个大陆的不同区域、不同的国家、不同的州、不同的城市、不同的校园、不同的房间、或前述地理位置的任意组合。在一些实施例中,服务器场106可作为单一实体进行管理,而在其他实施例中,服务器场106可以包括多个服务器场106。
在一些实施例中,服务器场106可以包括执行基本相似类型的操作系统平台的服务器106,所述操作系统平台例如WINDOWS NT(由华盛顿州雷蒙德市的微软公司制造)、UNIX、LINUX或MAC OS。在其他实施例中,服务器场106可以包括执行第一类型的操作系统平台的第一组服务器106以及执行第二类型的操作系统平台的第二组服务器106。在其他实施例中,服务器场106可以包括执行不同类型的操作系统平台的服务器106。
在一些实施例中,服务器106可以是任何服务器类型。在其他实施例中,服务器106可以是下列服务器类型中的任一个:文件服务器、应用服务器、web服务器、代理服务器、设备、网络设备、网关、应用网关、网关服务器、虚拟化服务器、部署服务器、SSL VPN服务器、防火墙、web服务器、应用服务器或者如主应用服务器、执行活动目录的服务器106,或执行提供防火墙功能、应用功能或负载平衡功能的应用加速程序的服务器106。一些实施例包括第一服务器106A,该第一服务器106A接收来自客户机140的请求,将请求转发到第二服务器106n,并且用来自第二服务器106n的应答来响应由客户机140生成的请求。第一服务器106A可以获得客户机140可用的应用的枚举以及与托管在应用的枚举内识别的应用的应用服务器106相关联的地址信息。然后,第一服务器106A可以使用web界面呈现对客户端的请求的应答,并直接与客户机140通信以给客户机140提供对识别的应用的访问。
在一些实施例中,客户机140可以为寻求对服务器106所提供的资源的访问的客户端节点。在其他实施例中,服务器106可给客户机140或客户端节点提供对所托管的资源的访问。在一些实施例中,服务器106起主节点的作用,这样使得它与一个或多个客户机140或服务器106通信。在一些实施例中,主节点可以识别与托管所请求的应用的服务器106相关联的地址信息并将所述地址信息提供给一个或多个客户机140或服务器106。在另外一些实施例中,主节点可以是服务器场106、客户机140、客户端节点集群140或设备。
一个或多个客户机140和/或一个或多个服务器106可以在安装在计算环境100内的机器和设备之间的网络130上传输数据。网络130可以包括一个或多个子网络,并且可以被安装在客户机140、服务器106、计算机器和包括在计算环境100内的设备的任何组合之间。在一些实施例中,网络130可以是局域网(LAN)、城域网(MAN)、广域网络(WAN)、由位于客户机140和服务器106之间的多个子网络组成的主网络104、具有专用子网络的主要公共网络130(例如互联网)、具有公用子网络的主要专用网络130、或具有专用子网络的主要专用网络130。另外的其他实施例可包括可以是以下网络类型中的任一种的网络130:点对点网络、广播网络、电信网络、数据通信网络、计算机网络、ATM(异步传输模式)网络、SONET(同步光纤网)网络、SDH(同步数字体系)网络、无线网络、有线网络、或包括无线链路的网络,其中无线链路可以是红外信道或卫星频带。网络130的网络拓扑在不同的实施例中可以不同,可能的网络拓扑包括但不限于:总线网络拓扑、星形网络拓扑、环形网络拓扑、基于中继器的网络拓扑、或分层星形网络拓扑。另外的实施例可包括使用协议在移动装置之间通信的移动电话网络的网络,其中所述协议可以包括但不限于:AMPS、TDMA、CDMA、GSM、GPRS UMTS、或能够在各移动装置间传输数据的任何其他协议。
图1示出了示例性桌面虚拟化系统的高层体系结构。如图所示,桌面虚拟化系统可为单服务器系统、多服务器系统,或云系统,包括至少一个虚拟化服务器106,该虚拟化服务器106配置为将虚拟桌面和/或虚拟应用提供给一个或多个客户端访问装置140。如本文所用的桌面是指其中可托管和/或执行一个或多个应用的图形环境或空间。桌面可包括为操作系统的实例提供用户界面的图形壳,其中本地应用和/或远程应用可以集成于所述操作系统中。应用可包括在加载了操作系统(并且可选地同样为桌面)的实例之后执行的程序。操作系统的每个实例可以是物理的(例如,每个装置一个操作系统)或虚拟的(例如,在单个装置上运行的OS的许多实例)。可在本地装置上执行或在远程定位的装置(例如,远程式)上执行每个应用。
图2中示出的是计算装置200的实施例,其中图1示出的客户机140和服务器106可以部署为本文所述且示出的计算装置200的任何实施例,以及/或者在本文所述且示出的计算装置200的任何实施例上执行。计算装置200内包括的是系统总线250,该系统总线250与下述部件通信:中央处理单元221、主存储器222、存储存储器228、输入/输出(I/O)控制器223、显示装置224A-224N、安装装置216、和网络接口218。在一个实施例中,存储存储器228包括:操作系统、软件例程程序以及客户端代理220。在一些实施例中,I/O控制器223还被连接到键盘226和指向装置227。其他实施例可包括连接到一个以上的输入/输出装置230A-230N的I/O控制器223。
图3示出计算装置300的一个实施例,其中图1示出的客户机140和服务器106可以部署为本文所述且示出的计算装置300的任何实施例,和/或在本文所述且示出的计算装置300的任何实施例上执行。计算装置300内包括的是系统总线350,该系统总线350与下述部件通信:桥接器370以及第一I/O装置330a。在另一个实施例中,桥接器370还与主中央处理单元321通信,其中中央处理单元321还可以与第二I/O装置330b、主存储器322和高速缓冲存储器340通信。中央处理单元321内包括的是I/O端口、存储器端口303以及主处理器。
计算装置300的实施例可以包括中央处理单元321,其特征在于以下部件配置中的任意一个:逻辑电路,这些逻辑电路响应并处理从主存储器单元322提取的指令;微处理器单元,例如由Intel公司制造的微处理器单元、由Motorola公司制造的微处理器单元、由加利福尼亚州圣克拉拉市的Transmeta公司制造的微处理器单元;RS/6000处理器,例如由国际商业机器公司制造的RS/6000处理器;处理器,例如由Advanced Micro Devices公司制造的处理器;或者逻辑电路的任何其他组合。中央处理单元322的另外的其他实施例可包括下列的任何组合:微处理器、微控制器、具有单个处理核的中央处理单元、具有两个处理核的中央处理单元或具有一个以上处理核的中央处理单元。
虽然图3示出了包括单个中央处理单元321的计算装置300,但在一些实施例中,计算装置300可包括一个或多个处理单元321。在这些实施例中,计算装置300可存储并执行固件或其他可执行的指令,当被执行时,所述固件或其他可执行的指令指示一个或多个处理单元321同时执行指令或将同时执行在单个一段数据上的指令。在其他实施例中,计算装置300可存储并执行固件或其它可执行指令,当被执行时,所述固件或其他可执行的指令指示一个或多个处理单元每个执行一组指令的一部分。例如,可指示每个处理单元321执行程序或程序内的特定模块的一部分。
在一些实施例中,处理单元321可以包括一个或多个处理核。例如,处理单元321可以具有两个核、四个核、八个核等。在一个实施例中,处理单元321可包括一个或多个并行处理核。在一些实施例中,处理单元321的处理核可访问为全局地址空间的可用存储器,或在其他实施例中,计算装置300内的存储器可以被分段且被分配到处理单元321内的特定核。在一个实施例中,计算装置300中的一个或多个处理核或处理器可以各自访问本地存储器。在另一个实施例中,计算装置300内的存储器可以在一个或多个处理器或处理核当中共享,但其它存储器可被特定的处理器或处理器的子集访问。在计算装置300包括一个以上处理单元的实施例中,多个处理单元可以被包括在单个集成电路(IC)中。在一些实施例中,这些多个处理器可以通过内部高速总线连接在一起,所述内部高速总线可被称为元件互连总线。
在计算装置300包括一个或多个处理单元321或者处理单元321包括一个或多个处理器核的实施例中,处理器可以同时对多段数据执行单个指令(SIMD),或者在其他实施例中,可以同时对多段数据执行多个指令(MIMD)。在一些实施例中,计算装置100可以包括任意数量的SIMD和MIMD处理器。
在一些实施例中,计算装置300可以包括图形处理器或图形处理单元(未示出)。该图形处理单元可以包括软件和硬件的任意组合,并且还可以输入图形数据和图形指令,根据所输入的数据和指令提供图形,并输出所提供的图形。在一些实施例中,图形处理单元可以被包括在处理单元321内。在其他实施例中,计算装置300可包括一个或多个处理单元321,其中至少一个处理单元321是专用于处理和提供图形的。
计算装置300的一个实施例包括通过次级总线(也被称为后端总线)与高速缓冲存储器340通信的中央处理单元321,而计算装置300的另一个实施例包括通过系统总线350与高速缓冲存储器通信的中央处理单元321。在一些实施例中,中央处理单元也可以使用本地系统总线350以与多于一种类型的I/O装置330a-330n通信。在一些实施例中,本地系统总线350可为以下类型的总线中的任何一种:VESAVL总线、ISA总线、EISA总线、微通道(MicroChannel)体系结构(MCA)总线、PCI总线、PCI-X总线、PCI-Express总线、或NuBus。计算装置300的其他实施例包括与中央处理单元321通信的包括视频显示器224的I/O装置330a-330n。计算装置300的又一版本包括通过以下连接中的任意一种而连接到I/O装置330a-330n的处理器321,所述连接为:超级传输(HyperTransport)、快速I/O或者无线带宽(InfiniBand)。计算装置300的更多的实施例包括使用本地互连总线与一个I/O装置330a以及使用直接连接与第二I/O装置330b通信的处理器321。
在一些实施例中,计算装置300包括主存储器单元322和高速缓冲存储器340。高速缓冲存储器340可以是任何类型的存储器,并且在一些实施例中,它可以是下列类型的存储器中的任意一种:SRAM、BSRAM、或EDRAM。其他实施例包括高速缓冲存储器340和可以是下列类型的存储器中的任意一种的主存储器单元322,所述类型为:静态随机存取存储器(SRAM)、突发SRAM或同步突发SRAM(BSRAM)、动态随机存取存储器(DRAM)、快速页模式DRAM(FPM DRAM)、增强型DRAM(EDRAM)、扩展数据输出RAM(EDO RAM)、扩展数据输出DRAM(EDODRAM)、突发扩展数据输出DRAM(BEDO DRAM)、增强型DRAM(EDRAM)、同步DRAM(SDRAM)、JEDECSRAM、PC100 SDRAM、双数据率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、同步链接DRAM(SLDRAM)、Direct Rambus DRAM(DRDRAM)、铁电RAM(FRAM)、或任何其他类型的存储器。更多的实施例包括可以通过以下方式访问主存储器322的中央处理单元321,所述方式为:系统总线350、存储器端口303、或允许处理器321访问存储器322的任何其他连接、总线或端口。
计算装置200/300的一个实施例为以下安装装置216中的任何一个提供支持:CD-ROM驱动器、CD-R/RW驱动器、DVD-ROM驱动器、各种格式的磁带驱动器、USB装置、可引导介质、可引导CD、用于GNU/Linux分布的可引导CD(例如)、硬盘驱动器或任何其他适于安装应用或软件的装置。在一些实施例中,应用可以包括客户端代理220或客户端代理220的任意部分。计算装置200/300还可包括存储装置228,该存储装置228可以是一个或多个硬盘驱动器或者一个或多个独立磁盘冗余阵列;其中存储装置配置为存储操作系统、软件、程序、应用或客户端代理220的至少一部分。计算装置200、300的另一个实施例包括用作存储装置228的安装装置216。
计算装置200、300还可包括网络接口218,其通过各种连接来接口连接到局域网(LAN)、广域网(WAN)或因特网,所述连接包括但不限于标准电话线、LAN或WAN链路(如802.11、T1、T3、56kb、X.25、SNA、DECNET)、宽带连接(如ISDN、帧中继、ATM、千兆位以太网、SONET上的以太网)、无线连接或上述连接的任何或所有的某种组合。也可采用各种通信协议建立连接,所述通信协议例如TCP/IP、IPX、SPX、NetBIOS、以太网、ARCNET、SONET、SDH、光纤分布数据接口(FDDI)、RS232、RS485、IEEE 802.11、IEEE 802.11a、IEEE 802.11b、IEEE802.11g、CDMA、GSM、WiMax和直接异步连接。计算装置200、300的一个版本包括能够通过任意类型和/或形式的网关或者隧道协议(例如安全套接字层(SSL)或传输层安全(TLS)或者由Citrix Systems公司制造的Citrix网关协议)与附加计算装置200'、300'通信的网络接口218。网络接口218的版本可包括下述中的任何一个:内置网络适配器、网络接口卡、PCMCIA网卡、卡总线网络适配器、无线网络适配器、USB网络适配器、调制解调器、或任何其他适于将计算装置200、300接口连接到网络的装置,该网络能够通信并执行本文描述的方法和系统。
计算装置200、300的实施例包括下列I/O装置230a-230n中的任意一种:键盘226、指向装置227、鼠标、触摸板、光电笔、一个或多个跟踪球、一个或多个麦克风、一个或多个绘画板、一个或多个视频显示器、一个或多个扬声器、一个或多个喷墨打印机、一个或多个激光打印机、以及一个或多个热染料升华打印机、或任何其他的能够接收用户输入和/或提供用户输出的输入/输出装置。在一些实施例中,I/O控制器223可连接到多个I/O装置230a-230n,以控制所述一个或多个I/O装置。I/O装置230a-230n的一些实施例可配置为提供存储或安装介质216,而其它的实施例可提供用于接收USB存储装置的通用串行总线(USB)接口,例如由Twintech Industry公司制造的装置的USB闪速驱动线路。还有其他实施例包括可以为系统总线250和外部通信总线之间的桥接器的I/O装置230,所述外部通信总线例如:USB总线、苹果台式机总线、RS-232串行连接、SCSI总线、FireWire总线、FireWire800总线、以太网总线、AppleTalk总线、千兆位以太网总线、异步传输模式总线、HIPPI总线、超级HIPPI总线、SerialPlus总线、SCI/LAMP总线、光纤通道总线、或串行连接小型计算机系统接口总线。
在一些实施例中,计算机器200、300可以连接到多个显示装置224a-224n,在其他实施例中,计算装置200、300可以连接到单个显示装置224,而在又一些其他实施例中,计算装置200、300连接到为相同类型或形式的显示器的显示装置224a-224n,或者连接到不同类型或形式的显示装置。显示装置224a-224n的实施例可以由以下支持并启用:一个或多个I/O装置230a-230n;I/O控制器223;I/O装置230a-230n和I/O控制器223的组合;能够支持显示装置224a-224n的硬件和软件的任意组合;任意类型和/或形式的视频适配器、视频卡、驱动器和/或通过接口连接、通信、连接或以其它方式使用显示装置224a-224n的程序库。在一些实施例中,计算装置200、300可配置为使用一个或多个显示装置224a-224n,这些配置包括:具有多个连接器,以通过接口连接到多个显示装置224a-224n;具有多个视频适配器,使每个视频适配器连接到一个或多个显示装置224a-224n;具有配置成支持多个显示器224a-224n的操作系统;利用包括在计算装置200内的电路和软件,以连接到多个显示装置224a-224n并使用多个显示装置224a-224n;以及在主计算装置200和多个次级计算装置上执行软件,以使主计算装置200能够将次级计算机装置的显示器用作主计算装置200的显示装置224a-224n。计算装置200的又一些其他实施例可包括由多个次级计算装置提供且通过网络连接到主计算装置200的多个显示装置224a-224n。
在一些实施例中,计算机器200可执行任意操作系统,而在其他实施例中,计算机器200可执行以下操作系统中的任意一种:MICROSOFT WINDOWS操作系统的各版本,例如WINDOWS 3.x、WINDOWS 95、WINDOWS 98、WINDOWS 2000、WINDOWS NT 3.51、WINDOWS NT4.0、WINDOWS CE、WINDOWS XP以及WINDOWS VISTA;Unix或Linux操作系统的不同发行版;由Apple Computer公司制造的MAC OS的任何版本;由国际商业机器公司制造的OS/2;任何嵌入式操作系统;任何实时操作系统;任何开源操作系统;任何专用的操作系统;任何用于移动计算装置的操作系统;或任何其他操作系统。在又另一个实施例中,计算机器200可以执行多个操作系统。例如,计算机器200可以执行PARALLELS或另一虚拟化平台,其可以执行或管理执行第一操作系统的虚拟机,而计算机器200执行不同于第一操作系统的第二操作系统。
计算机器200可以在以下计算装置中的任何一个中具体实现:计算工作站、台式计算机、膝上型或笔记本电脑、服务器、手持计算机、移动电话、便携式电信装置、媒体播放装置、游戏系统、移动计算装置、上网本、由Apple Computer公司制造的装置的IPOD系列的装置、由Sony公司制造的装置的PLAYSTATION系列中的任何一个、由Nintendo公司制造的装置的Nintendo系列中的任何一个、由微软公司制造的装置的XBOX系列中的任何一个、或任意其它类型和/或形式的计算、电信或媒体装置,其能够进行通信并有足够的处理器能力和存储容量来实现本文描述的方法和系统。在其他实施例中,计算机器200可以是移动装置,例如以下移动装置中的任何一种:JAVA使能的蜂窝电话或个人数字助理(PDA),诸如i55sr、i58sr、i85s、i88s、i90c、i95c1或im1100,以上这些都由摩托罗拉公司制造;由Kyocera公司制造的6035或7135;由Samsung电子有限公司制造的i300或i330;由Palm公司制造的TREO180、270、600、650、680、700p、700w或750智能电话;任何具有与装置相容的不同处理器、操作系统以及输入装置的计算装置;或任何其他能够执行本文描述的方法和系统的移动计算装置。在又一些其他实施例中,计算装置200可以是以下移动计算装置中的任何一种:由Research In Motion Limited公司制造的任何一个系列的黑莓(Blackberry)或其它手持装置,由Apple Computer公司制造的iPhone,Palm Pre、Pocket PC、Pocket PC电话、或任何其它手持移动装置。
在一些实施例中,计算装置200可以具有与装置相容的不同的处理器、操作系统以及输入设备。例如,在一个实施例中,计算装置200是由Palm公司制造的TREO 180、270、600、650、680、700p、700w或者750智能电话。在这些实施例的一些中,TREO智能电话的操作受控于PalmOS操作系统且包括手写笔输入装置以及五向导航装置。
在其他实施例中,计算装置200是移动装置,诸如JAVA使能的蜂窝电话或个人数字助理(PDA),例如i55sr、i58sr、i85s、i88s、i90c、i95cl或者im1100(所有的这些都是由伊利诺伊州绍姆堡的摩托罗拉公司制造的)、由日本京都的Kyocera公司制造的6035或7135、或者由韩国首尔的Samsung电子有限公司制造的i300或i330。在一些实施例中,计算装置200是由芬兰的诺基亚公司制造或由位于瑞典隆德的Sony Ericsson MobileCommunicationsAB公司制造的移动装置。
在又一些其他实施例中,计算装置200是黑莓手持或智能电话,诸如由ResearchIn Motion有限公司制造的装置,包括黑莓7100系列、8700系列、7700系列、7200系列、黑莓7520或黑莓Pearl 8100。在其他实施例中,计算装置200是智能电话、Pocket PC、Pocket PC电话,或支持Microsft Windows Mobile Software的其它手持移动装置。此外,计算装置200可以是任意工作站、台式电脑、膝上型或笔记本电脑、服务器、手持计算机、移动电话、任意其它计算机、或能够通信并有足够的处理器能力和存储容量以执行本文所述操作的其它形式的计算或者电信装置。
在一些实施例中,计算装置200是数字音频播放器。在这些实施例的一个中,计算装置200是诸如由加利福尼亚州丘珀蒂诺的Apple Computer公司制造的Apple IPOD、IPODTouch、IPOD NANO和IPOD SHUFFLE系列装置的数字音频播放器。在这些实施例的又一个中,数字音频播放器可作为便携媒体播放器和作为大容量存储装置来工作。在其他实施例中,计算装置200是数字音频播放器,诸如由新泽西州里奇菲尔德公园(Ridgefield Park,NJ)的Samsung Electronics America公司制造的DigitalAudioPlayer Select MP3播放器,或由伊利诺伊州绍姆堡的Motorola公司制造的Motorola m500或m25数字音频播放器。在还有其他实施例中,计算装置200是便携媒体播放器,诸如由Creative Technologies有限公司制造的Zen Vision W、Zen Vision系列、Zen Portable Media Center装置或MP3播放器的Digital MP3系列。在又一个其他实施例中,计算装置200是支持以下文件格式的便携媒体播放器或数字音频播放器,这些文件格式包括但不限于MP3、WAV、M4A/AAC、WMAProtectedAAC、AIFF、Audible有声读物、Apple Lossless音频文件格式和.mov、.m4v以及.mp4 MPEG-4(H.264/MPEG-4AVC)视频文件格式。
在一些实施例中,计算装置200包括以下装置的组合,例如与数字音频播放器或便携媒体播放器相组合的移动电话。在这些实施例的一个中,计算装置200是组合数字音频播放器和移动电话的Motorola RAZR或Motorola ROKR系列。在这些实施例的另一个中,计算装置200是由加利福尼亚州丘珀蒂诺的Apple Computer公司制造的iPhone智能电话。虽然可以关于可使用的硬件和/或软件的具体实例描述图1-3,但这些实例决不是限定性的,而是仅仅用来说明可用作为技术进步的资源的类型。
图1-3示出了示例性桌面虚拟化系统的高层体系结构。如图所示,桌面虚拟化系统可为单服务器系统、多服务器系统,或云系统,包括至少一个虚拟化服务器106,该虚拟化服务器106配置为将虚拟桌面和/或虚拟应用提供到一个或多个客户端访问装置140。如本文所用的桌面是指其中可托管和/或执行一个或多个应用的图形环境或空间。桌面可包括为操作系统的实例提供用户界面的图形壳,其中本地应用和/或远程应用可以集成于所述操作系统中。如本文所用的应用为在加载了操作系统(并且可选地同样为桌面)的实例之后执行的程序。操作系统的每个实例可以是物理的(例如,每个装置一个操作系统)或虚拟的(例如,在单个装置上运行的OS的许多实例)。可在本地装置上执行或在远程定位装置(例如,远程式)上执行每个应用。
图4中示出的是在虚拟化环境中(例如,单服务器环境,多服务器环境,或云计算环境)配置为虚拟化服务器的计算机装置401的一个实施例。图4所示的虚拟化服务器401可以被部署为图1所示的服务器106或其它已知的计算装置的一个或多个实施例,以及/或者由图1所示的服务器106或其它已知的计算装置的一个或多个实施例来实现。在虚拟化服务器401中包括硬件层,该硬件层可以包括一个或多个物理磁盘404、一个或多个物理装置406、一个或多个物理处理器408以及物理存储器416。在一些实施例中,固件412可以被存储在物理存储器416中的存储元件内,并且可以由一个或多个物理处理器408执行。虚拟化服务器401还可包括操作系统414,该操作系统414可被存储在物理存储器416中的存储元件内,并且由一个或多个物理处理器408执行。更进一步地,超级管理器402可存储在物理存储器416中的存储元件内,并且由一个或多个物理处理器408执行。一个或多个物理处理器408上执行的可以是一个或多个虚拟机432A-C(通称为432)。每个虚拟机432可具有虚拟磁盘426A-C和虚拟处理器428A-C。在一些实施例中,第一虚拟机432A可在虚拟处理器428A上执行包含工具堆栈424的控制程序420。在其他实施例中,一个或多个虚拟机432B-C可在虚拟处理器428B-C上执行访客操作系统430A-B。
进一步参照图4,且更具体地说,虚拟化服务器401可包括具有一件或多件与虚拟化服务器401进行通信的硬件的硬件层410。在一些实施例中,硬件层410可包括一个或多个物理磁盘404、一个或多个物理装置406、一个或多个物理处理器408以及一个或多个存储器416。物理部件404、406、408和416可包括例如上面关于图1描述的任何部件。例如,物理磁盘404可包括永久存储装置(memory storage)、临时存储装置、磁盘驱动器(例如,光、软盘、磁带)、硬盘、外接硬驱动器、快闪存储器、网络连接的储存器、储存器区域网络或任何其他虚拟化服务器401可访问的储存库。物理装置406可包括虚拟化服务器401中包括的任何装置和/或虚拟化服务器401中包括的装置和与虚拟化服务器401通信的外部装置的任意组合。物理装置406可以是,例如,网络接口卡、视频卡、键盘、鼠标、输入装置、监视器、显示装置、扬声器、光驱、存储装置、通用串行总线连接、打印机、扫描仪、网络元件(例如路由器、防火墙、网络地址转换器、负载平衡器、虚拟专用网络(VPN)网关、动态主机配置协议(DHCP)路由器等)或连接到虚拟化服务器401和/或与虚拟化服务器401通信的任何装置。硬件层410中的物理存储器416可包括任何类型的存储器。物理存储器416可存储数据,并且在一些实施例中可存储一个或多个程序或可执行指令集。图4示出了一个实施例,其中固件412被存储在虚拟化服务器401的物理存储器416内。存储在物理存储器416中的程序或可执行指令可以由虚拟化服务器401的一个或多个处理器408执行。
虚拟化服务器401还可包括超级管理器402。在一些实施例中,超级管理器402可以是这样的程序,该程序由虚拟化服务器401上的处理器408执行,以创建和管理任意数量的虚拟机432。超级管理器402可以被称为虚拟机监视器,或平台虚拟化软件。在一些实施例中,超级管理器402可以是可执行指令和硬件的任何组合,其监视在计算机器上执行的虚拟机。超级管理器402可以是类型2超级管理器或在虚拟化服务器401上执行的操作系统414内执行的超级管理器。在一些实施例中,类型2超级管理器在操作系统414环境内执行,并且虚拟机在高于超级管理器的层上执行。在许多实施例中,类型2超级管理器在用户的操作系统的环境下执行,这样使得在类型2超级管理器与用户的操作系统交互。在其他实施例中,虚拟化环境中的一个或多个虚拟化服务器401可包括类型1超级管理器(未示出)。类型1超级管理器通过直接访问硬件层410内的硬件和资源可在虚拟化服务器401上执行。也就是说,当类型2超级管理器402通过主机操作系统414访问系统资源时,类型1超级管理器可直接访问所有系统资源,而不需要主机操作系统414。类型1超级管理器可直接在虚拟化服务器401的一个或多个物理处理器408上执行,并且可包括存储在物理存储器416中的程序数据。
在一些实施例中,超级管理器402可以以模拟操作系统430或直接访问系统资源的控制程序420的任何方式将虚拟资源提供到操作系统430或在虚拟机432上执行的控制程序420。系统资源可以包括:物理装置406、物理磁盘、物理处理器、物理存储器416以及任何其他包括在虚拟化服务器401硬件层410中的部件。在这些实施例中,超级管理器402可以被用来仿真虚拟硬件,分区物理硬件,虚拟化物理硬件,或执行提供对计算环境访问的虚拟机。在又一些其他实施例中,超级管理器402控制在虚拟化服务器401上执行的虚拟机432的处理器调度和存储器划分。超级管理器402可包括:加利福尼亚州的帕洛阿尔托的VMWare公司制造的超级管理器;XEN超级管理器(一个开源产品,其发展由开源Xen.org社区监督);由Microsoft提供的HyperV、VirtualServer或虚拟PC超级管理器,或其它超级管理器。在一些实施例中,虚拟化服务器401执行创建虚拟机平台的超级管理器402,其中访客操作系统可在所述虚拟机平台上执行。在这些实施例中,虚拟化服务器401可以称为主机服务器。这样的虚拟化服务器的一个实例是由佛罗里达州劳德尔堡的Citrix System公司提供的XENSERVER。
超级管理器402可以创建一个或多个虚拟机432B-C(通常称为432),其中访客操作系统430在所述虚拟机432中执行。在一些实施例中,超级管理器402可加载虚拟机图像来创建虚拟机432。在其他实施例中,超级管理器402可执行虚拟机432内的访客操作系统430。在又一些其他实施例中,虚拟机432可执行访客操作系统430。
除了创建虚拟机432,超级管理器402还可控制至少一个虚拟机432的执行。在其他实施例中,超级管理器402可呈现具有由虚拟化服务器401提供的至少一个硬件资源(例如,硬件层410内可用的任何硬件资源)的抽象的至少一个虚拟机432。在其它实施例中,超级管理器402可控制虚拟机432以其访问虚拟化服务器401中可用的物理处理器408的方式。控制对物理处理器408的访问可包括确定虚拟机432是否应当具有对处理器408的访问,以及物理处理器能力如何呈现给虚拟机432。
如图4的实例所示,虚拟化服务器401可以托管或执行一个或多个虚拟机432。虚拟机432为可执行指令集,当由处理器408执行所述可执行指令集时,模仿物理计算机的操作使得虚拟机432可非常类似于物理计算装置地执行程序和进程。尽管图4示出了虚拟化服务器401托管三个虚拟机432的实施例,但在其他实施例中,虚拟化服务器401可以托管任意数量的虚拟机432。在一些实施例中,超级管理器402向每一虚拟机432提供物理硬件、存储器、处理器和其他可用于该虚拟机432的系统资源的独特的虚拟视图。在一些实施例中,该独特的虚拟视图可以基于以下任一项:虚拟机允许、到一个或多个虚拟机标识符的策略引擎应用、访问虚拟机的用户、在虚拟机上执行的应用、虚拟机所访问的网络、或任何其他类似的标准。例如,超级管理器402可创建一个或多个不安全虚拟机432和一个或多个安全虚拟机432。可阻止不安全虚拟机432访问可允许安全虚拟机432访问的资源、硬件、存储器定位和程序。在其他实施例中,超级管理器402可向每一虚拟机432提供物理硬件、存储器、处理器和其他可用于该虚拟机432的系统资源的基本上相似的虚拟视图。
每个虚拟机432可包括虚拟磁盘426A-C(一般地称为426)和虚拟处理器428A-C(一般称为428)。在一些实施例中,虚拟磁盘426是虚拟化服务器401的一个或多个物理磁盘404或者虚拟化服务器401的一个或多个物理磁盘404的一部分的虚拟化视图。可以由超级管理器402生成、提供且管理物理磁盘404的虚拟化视图。在一些实施例中,超级管理器402向每一虚拟机432提供物理磁盘404的独特视图。因此,在这些实施例中,包括在每个虚拟机432中的虚拟磁盘426当与其它虚拟磁盘426相比时可以是独特的。
虚拟处理器428可以是虚拟化服务器401的一个或多个物理处理器408的虚拟化视图。在一些实施例中,可以由超级管理器402生成、提供且管理物理处理器408的虚拟化视图。在一些实施例中,虚拟处理器428基本上具有与至少一个物理处理器408相同的所有特性。在其他实施例中,虚拟处理器408提供物理处理器408的修改后视图,以便虚拟处理器428的至少某些特性不同于相应的物理处理器408的特性。
图5绘示了依照本文描述的一个或多个说明性方面的用于远程应用和桌面的语音识别支持的示例性计算环境。参照图5,计算环境500可包括一个或多个计算平台。例如,计算环境500可包括远程计算平台502、主机计算平台504和/或语音识别计算平台506。远程计算平台502、主机计算平台504和/或语音识别计算平台506可包括一个或多个配置成执行一个或多个本文所述的功能的计算装置,例如,台式计算机、膝上型计算机、平板电脑、智能电话或移动装置。远程计算平台502、主机计算平台504和/或语音识别计算平台506可包括一个或多个部件(例如,处理器、存储器、显示器、通信接口等),例如以上关于图1-4所述的部件。计算环境500还可包括一个或多个网络。例如,计算环境500可包括网络508,网络508可包括一个或多个可使远程计算平台502、主机计算平台504和/或语音识别计算平台506互连的LAN和/或WAN。
远程计算平台502可包括一个或多个存储器,一个或多个存储器可以包括一个或多个应用和/或模块。例如,远程计算平台502可包括操作系统(OS)510、声音模块512和/或接收机模块514。OS 510可为远程计算平台502的本地OS,并且可支持远程计算平台502的一个或多个基本操作(例如,软件/硬件交互)。声音模块512可支持远程计算平台502的音频输入和/或输出,并且可以是OS 510的部件、不同的模块和/或这两者的组合。接收机模块514可以是支持对一个或多个远程应用和/或桌面的访问的“客户端侧”应用(例如,如上所述的远程桌面应用,诸如CITRIX客户端)。在一些实施例中,接收机模块514可以是web浏览器或web浏览器部件(例如插件)。
主机计算平台504可包括一个或多个存储器,所述一个或多个存储器可包括一个或多个应用和/或模块。例如,主机计算平台504可包括OS 516、被托管的应用模块518和/或UI模块520。OS 516可以是主机计算平台504的本地OS,并且可支持主机计算平台504的一个或多个基本操作(例如,软件/硬件交互)。被托管的应用模块518可以是终端用户应用,其配置为在主机计算平台518上执行且不同计算平台的用户(例如,远程计算平台502的用户)对其是可访问的。在一些实施例中,主机计算平台504可以是虚拟化平台,例如上述关于附图4所述的虚拟化平台。例如,主机计算平台504可实例化和/或支持虚拟化计算环境,其中不同的计算平台的用户(例如,通过接收机模块514的远程计算平台502的用户)可访问虚拟化计算环境。在这样的实施例中,被托管的应用模块518的一个或多个终端用户应用通过这样的虚拟化计算环境可以是可访问的。在一些实施例中,这样的虚拟化计算环境可以是特定于一个或多个终端用户应用。在其他实施例中,虚拟化计算环境可以类似于通用计算环境(例如远程桌面或模拟桌面),并且远程用户通过虚拟化计算环境可访问一个或多个终端用户应用。
语音识别计算平台506可以是不同于远程计算平台502和主机计算平台506的计算平台,并且可支持一个或多个语音识别服务。例如,语音识别计算平台506可配置为接收音频样本,该音频样本包括一个或多个用户的声音(例如来自远程计算平台502或主机计算平台504),并且利用语音识别技术来产生用户所讲的词的转录或计算机可解析的记录。语音识别平台506还可配置为将这样的转录或计算机可解析记录传送到计算环境500内的一个或多个其他计算平台(例如,远程计算平台502或主机计算平台504)。
如上所述,主机计算平台504可包括UI模块520。UI模块520可配置为识别生成的UI(例如,由被托管的应用模块518生成的UI)的一个或多个UI元素。UI模块520可进一步配置为生成一个或多个代理UI元素。这些代理UI元素中的每一个可对应于识别出的UI元素中的一个或多个。主机计算平台504可将这些UI元素和代理UI元素(例如,通过网络508)传送到远程计算平台502,其中在远程计算平台502处远程计算平台502的用户(例如,通过接收机模块514)可访问UI元素和代理UI元素。如以下更详细地描述的,可利用一个或多个代理UI元素来支持依据本文描述的一个或多个方面的远程应用和桌面的语音识别。
给某些模块的某些功能分配以及给某些计算平台的某些模块分配仅仅是为了简化说明。本文所述任何功能或者模块都可分离或组合,和/或都可分配给一个或多个多种计算平台,如所期望的那样。例如,可通过远程计算平台502和/或主机计算平台504执行语音识别平台506的功能。类似地,本文所述的UI模块520的功能的一个或多个方面可与一个或多个其它模块组合或由一个或多个分离的模块来执行,其可以在计算平台的任意组合(例如,远程计算平台502、主机计算平台504或它们的组合)上执行。
图6A和图6B绘示了依照本文描述的一个或多个说明性方面的用于远程应用和桌面的语音识别支持的示例性事件流程。参照图6A,在步骤1,远程计算平台502可将所托管的应用请求传送到主机计算平台504。例如,远程计算平台502可利用主机计算平台504所支持的虚拟化计算环境(例如,虚拟桌面),并且可传送请求以利用被托管的应用模块518所支持的终端用户应用。在步骤2,主机计算平台504可托管远程计算平台502所请求的被托管的应用。例如,主机计算平台504可初始化由被托管的应用模块518支持的终端用户应用,并且可托管供远程计算平台502使用(例如,通过接收机模块514)的终端用户应用。在步骤3,主机计算平台504可生成UI。例如,主机计算平台504可生成与被托管的应用模块518所支持的终端用户应用相关联的UI。例如,主机计算平台504可生成UI,诸如图7所示的UI 700。参照图7,UI 700可包括一个或多个UI元素。例如,UI 700可以包括UI元素702、704、706、708和710。参照图6A,在步骤4,主机计算平台504可识别所生成的UI的一个或多个UI元素。例如,UI模块520可识别UI元素702、704、706、708和710。在步骤5,主机计算平台504可生成一个或多个代理UI元素。代理UI元素中的每个可对应于识别出的UI元素中的一个或多个。例如,UI模块520可生成对应于UI元素702、704、706、708和710中的每个的一个或者多个代理UI元素。
在一些实施例中,一部分的代理UI元素可配置为对远程计算平台502的用户可见。例如,代理UI元素712、714、716和718可对远程计算平台502的用户可见。在一些实施例中,可见的代理UI元素中的一个或者多个可包括配置成被覆盖在一个或多个相应的UI元素上的一个或多个视觉提示。例如,代理UI元素712可对应于UI元素704,可包括提供绘示数字“1”的视觉提示,并且可配置为被覆盖在UI元素704上。类似地,代理UI元素714可对应于UI元素706,可包括绘示数字“2”的视觉提示,并且可配置为被覆盖在UI元素706上;并且代理UI元素716可对应于UI元素708,可包括绘示数字“3”的视觉提示,并且可配置为被覆盖在UI元素708上。在一些实施例中,可见的代理UI元素中的一个或多个可包括光标瞄准十字线,该光标瞄准十字线可配置为被覆盖在一个或多个UI元素上。例如,代理UI元素718可以是光标瞄准十字线,并且可配置为被覆盖在UI元素704上。
在一些实施例中,一部分的代理UI元素可配置为从远程计算平台502的用户的角度看为隐藏的。例如,可生成对应于一个或多个光标方向(例如,上下左右)的一个或多个隐藏的代理UI元素(未示出)。在一些实施例中,一部分的隐藏的代理UI元素可包括对应于一个或多个宏选项(例如,找出特定文本串的出现,并用粗体表示每个找到的文本串的出现等)、一个或多个键盘快捷方式选项(例如,“Alt-A”可对应于UI元素710的“添加”功能,“Alt-E”可对应于UI元素710的“编辑”功能,“Alt-D”可对应于UI元素710的“删除”功能,“Alt-I”可对应于UI元素710的“图像”功能,“Alt-C”可对应于UI元素710的“关闭”功能,“Ctrl-X”可对应于“剪切”功能,“Ctrl-C”可对应于“复制”功能,“Ctrl-V”可对应于“粘贴”功能等)和/或如下面将更加详细地描述的一个或多个导航菜单选项的一个或多个代理UI元素。
在一些实施例中,UI模块520可配置为识别UI 700的UI元素的一个或多个属性,并且可基于识别出的属性生成代理UI元素。例如,UI模块520可以识别UI元素702、704、706、708和710的一个或多个属性,并且可基于识别出的属性生成一个或多个代理UI元素。所生成的代理UI元素可包括与这些代理UI元素所对应的UI元素的识别出的属性相关联的一个或多个词。在一些实施例中,可使用一个或多个应用程序接口(API)(例如,MICROSOFTWINDOWS的UI自动API或活动可访问性API)来识别这些属性。在一些实施例中,web浏览器或web浏览器插件的浏览器辅助对象(BHO)可被用于识别UI元素的属性中的一个或多个(例如,在web内容或web应用中选择一个或多个链接或搜索结果)。
在一些实施例中,UI元素的识别出的属性可包括一个或多个UI元素和一个或多个其它UI元素之间的一个或多个位置关系。例如,UI模块520可识别出UI元素702设置在UI元素704的上方。类似地,UI模块520可识别出UI元素704位于UI元素702的下方及UI元素706的上方,可识别出UI元素706位于UI元素704的下方及UI元素708的上方,可识别出UI元素708位于UI元素706的下方及UI元素710上方,并且可识别出UI元素710位于UI元素708的下方。相应的位置关系词可与对应于UI元素的702、704、706、708以及710的代理UI元素中的每个相关联,例如,上下左右等。这些词语可与一个或多个其它词(例如,与一个或多个其他代理UI元素相关联的一个或多个词)结合以在UI 700内导航。
在一些实施例中,UI元素的识别出的属性可包括一个或多个下拉选择选项。例如,UI元素702可以是包括一个或多个供用户选择的下拉选项的下拉菜单。UI模块520可确定UI元素702是下拉菜单,并且可识别从UI元素702中选择的一个或多个选项(例如,“日常卫生”、”小手术”、“大手术”等)。可生成一个或多个代理UI元素,其包括与识别出的下拉选项(例如,“日常卫生”、“小手术”、“大手术”等)中的每一个相关联的词。
在一些实施例中,识别出的属性可包括经标记的UI元素的一个或多个UI元素标记。例如,UI元素704可被标记为“治疗,记录”。UI模块520可确定UI元素704是经标记的UI元素并可生成对应于UI元素704的一个或多个代理UI元素。这些代理UI元素可与对应于识别出的标记(例如,“治疗、记录”)的一个或多个词相关联。类似地,UI元素706可被标记为“评语、卫生专家”,并且UI模块520可确定出UI元素706是经标记的UI元素并可生成对应于UI元素706的一个或多个代理UI元素,这些代理UI元素可与对应于识别出的标记(“评语,卫生专家”)的词相关联;UI元素708可被标记为“评论、DDS”,并且UI模块520可确定UI元素708是经标记的UI元素并可生成对应于UI元素708的一个或多个代理UI元素,这些代理UI元素可与对应于识别出的标记(例如,“评论、DDS”)的词相关联;且UI元素710可被标记为“操作(Action”),并且UI模块520可确定出UI元素710是经标记的UI元素并可生成对应于UI元素710的一个或多个代理UI元素,这些代理UI元素可与对应于识别出的标记(例如,“操作”)的词相关联。
在步骤6,可将生成的UI(包括识别出的UI元素)和代理UI元素传送到远程计算平台502。例如,可将UI 700(包括UI元素702、704、706、708和710)和代理UI元素712、714、716和718传送到远程计算平台502。在步骤7,远程计算平台502可捕获一个或多个音频样本。例如,远程计算平台502的用户可调用语音识别(例如,通过输入装置使用关键词等)。音频样本可包括远程计算平台502的用户的话语。在步骤8,可将音频样本传送到主机计算平台504,主机计算平台504在步骤9参照图6B可将音频样本转发到语音识别平台506。语音识别平台506可利用语音识别技术将音频样本转换成一个或多个转录或计算机可解析记录,并且在步骤10可将这样的转录或计算机可解析记录传送到主机计算平台504。例如,语音识别平台506可以将远程计算平台502的用户的一个或多个话语的转录传送到主机计算平台504。
在步骤11,主机计算平台504可处理接收自语音识别平台506的转录或计算机可解析记录。例如,主机计算平台504可处理远程计算平台502的用户的话语的转录。处理远程计算平台502的用户的话语的转录可包括语法分析转录以识别一个或多个与代理UI元素相关联的一个或多个词的出现。例如,远程计算平台502的用户可能已说出包括词“一个(one)”的话语,并且主机计算平台504可语法分析接收自语音识别平台506的转录并识别在转录中的词“一个”。在步骤12,主机计算平台504可调用由被托管的应用模块518支持的终端用户应用的一个或多个功能,所述一个或多个功能与对应于跟识别出的词相关联的代理UI元素的UI 700的UI元素相对应。例如,主机计算平台504可选择UI元素704。类似地,远程计算平台502的用户可已说出包括词“两个”的话语,主机计算平台504可语法分析接收自语音识别平台506的转录,识别在转录中的词“两个”,并选择UI元素706;或者远程计算平台502的用户可已说出包括词“三个”的话语,主机计算平台504可语法分析接收自语音识别平台506的转录,识别在转录中的词“三个”,并选择UI元素708。
此外或可选地,远程计算平台502的用户可已说出包括词“Alt-A”的话语,主机计算平台504可语法分析接收自语音识别平台506的转录,识别在转录中的词“Alt-A”,并调用UI元素710的“添加”功能。类似地,远程计算平台502的用户可已说出包括词“Alt-E”的话语,主机计算平台504可语法分析接收自语音识别平台506的转录,识别在转录中的词“Alt-E”,并调用UI元素710的“编辑”功能;远程计算平台502的用户可已说出包括词“Alt-D”的话语,主机计算平台504可语法分析接收自语音识别平台506的转录,识别在转录中的词“Alt-D”,并调用UI元素710的“删除”功能;远程计算平台502的用户可已说出包括词“Alt-I”的话语,主机计算平台504可语法分析接收自语音识别平台506的转录,在转录中识别词“Alt-I”,并调用UI元素710的“图像”功能;或远程计算平台502的用户可已说出包括词“Alt-C”的话语,主机计算平台504可语法分析接收自语音识别平台506的转录,识别在转录中的词“Alt-C”,并调用UI元素710的“关闭”功能。
此外或可选地,远程计算平台502的用户可已说出包括词“右移光标”的话语,主机计算平台504可语法分析接收自语音识别平台506的转录,识别在转录中的词“右移光标”,并将与UI 700相关联的光标移动到其在UI 700上当前位置的右侧。此外或可选地,远程计算平台502的用户可已说出包括词“右移光标瞄准十字线”的话语,主机计算平台504可语法分析接收自语音识别平台506的转录,识别在转录中的词“右移光标瞄准十字线”,并将代理UI元素718朝向UI 700的右侧移动。
在一些实施例中,一个或多个识别出的UI元素可包括下拉菜单,并且代理UI元素中的一个或多个可对应于下拉菜单和/或一个或多个下拉菜单中列出的选项。例如,UI元素702可以是下拉菜单,并且一个或多个代理UI元素(未示出)可对应于UI元素702和/或一个或多个下拉菜单中列出的选项(例如,“日常卫生”、“小手术”、“大手术”等)。在这样的实施例中,远程计算平台502的用户可已说出包括词“选择小程序”的话语,主机计算平台504可语法分析接收自语音识别平台506的转录,识别在转录中的词“选择小程序”,确定词“选择小程序”与对应于UI元素702的代理UI元素相关联,并且将UI元素702的活动选择从“日常卫生”改变成“小手术”。
在一些实施例中,远程计算平台502的用户可已说出包括词“插入文本,'监视右上颌磨牙期,右上颌磨牙显现出衰退期迹象'”的话语。语音识别平台506可识别该词“插入文本”为调用听写功能,并且可以“润色”该文本串“监视右上颌磨牙期,右上颌磨牙显现出衰退期迹象”以产生“监视右上颌磨牙;右上颌磨牙显现出衰退迹象'。”主机计算平台504可语法分析接收自语音识别平台506的转录,识别所润色的文本串并将润色文本串插入到UI700的一个或多个UI元素中(例如,UI元素708)。
在一些实施例中,远程计算平台502的用户可已说出包括词“用粗体表示右上颌磨牙的每次出现”的话语。主机计算平台504可将“用粗体表示每次出现”识别为调用一个或多个宏功能,并且可执行与宏功能相关联的一个或多个命令。例如,主机计算平台504可调用一个或多个命令以识别并选择“右上颌磨牙”的每次出现,然后可调用用粗体表示所选择的文本的功能。
如上所述,在一些实施例中,远程计算平台502的用户可已说出包括与导航菜单和/或一个或多个导航菜单选项相关联的一个或多个词的话语。例如,远程计算平台502的用户可已说出包括词“导航菜单”或“我的导航选项是什么”的话语。例如,参考图8A,可能已经将UI 800(例如,通过接收机模块514)显示给远程计算平台502的用户,并且用户可已说出词“导航菜单”。词“导航菜单”可与隐藏的代理UI元素相关联。主机计算平台504可识别词“导航菜单”,并可调用(参考图8B)显示导航菜单802的功能。导航菜单802可包括一个或多个与可能的导航选项相关联的UI元素。例如,导航菜单802可包括分别与导航选项“下一屏幕”、“前一屏幕”、“主屏幕”、“桌面”和“退出导航器”相关联的UI元素804、806、808、810和812。
在步骤13,主机计算平台504可确定在UI内发生了一处或多处变化。例如,在“导航菜单”实例的环境中,主机计算平台504可确定UI 800现在包括导航菜单802。在步骤14,UI模块520可以刷新UI,并识别已变化的一个或多个UI元素。例如,UI模块520可以识别导航菜单802以及UI元素804、806、808、810和812。在步骤15,UI模块520可以生成对应于已变化的识别出的UI元素中的一个或多个的一个或多个代理UI元素。如上所述,所生成的代理UI元素可基于UI元素的一个或多个识别出的属性。例如,UI模块520可以确定UI元素804、806、808、810和812被分别标记为“下一屏幕”、“前一屏幕”、“主屏幕”、“桌面”和“退出导航器”,并且UI模块520可生成对应于UI元素804、806、808、810和812的一个或多个代理UI元素,所述UI元素804、806、808、810和812包括与它们各自的标记相关联的一个或多个词(例如,“下一屏幕”、“前一屏幕”、“主屏幕”、“桌面”和“退出导航器”)。在步骤16,可将识别出的变化的UI元素及其相应的代理UI元素传送到远程计算平台502,该远程计算平台502可显示该UI元素和/或配置成可见的任何代理UI元素。
图9A、图9B、图9C、图9D、图9E和图9F绘示了依照本文描述的一个或多个说明性方面的用于远程应用和桌面的语音识别支持的另外的示例性事件流程;并且图10绘示了包括被托管的应用的说明性用户界面的示例性用户视图,该被托管的应用的说明性用户界面可使用依照本文描述的一个或多个说明性方面的用于远程应用和桌面的语音识别支持来交互。参照图9A,在步骤1,远程计算平台502可将被托管的应用请求传送到主机计算平台504。例如,参考图10,远程计算平台502可包括计算装置(例如,台式计算机、膝上型计算机、智能电视机、iPAD、ANDROID装置、WINDOWS电话或其他计算装置)。远程计算平台502可显示一个或多个本地UI元素。例如,远程计算平台502可显示本地UI元素1002(例如,与远程计算平台502的OS或一个或多个在远程计算平台502上本地执行的应用相关联的UI元素)。
如上所述,远程计算平台502可包括接收机模块514。接收机模块514当被执行时,提供用于查看被托管的计算环境(例如,远程桌面和/或虚拟化桌面)的接收机应用窗口。例如,接收机模块514可创建接收机应用窗口1004。接收机应用窗口1004可提供所托管的计算环境的视图,可包括一个或多个所托管的计算环境UI元素。例如,接收机应用窗口1004可以提供主机计算平台504支持的被托管的计算环境的视图,并且这样的视图可包括被托管的计算环境的UI元素1006(例如,与被托管的计算环境的OS相关联UI元素)。如上所述,参照图9A,在步骤1,远程计算平台502可将被托管的应用请求传送到主机计算平台504。例如,主机计算平台502可传送请求以初始化由被托管的应用模块518支持的终端用户应用,例如,与被托管的应用UI 1008相关联的终端用户应用(将在下面进行更详细的说明)。在一些实施例中,与能力(例如语言、指定的领域或主题、文本自动完成参数、文本自动更正参数、定制字典等)有关的一个或多个消息(未示出)可在远程计算平台502和主机计算平台504之间进行交换。
在步骤2,主机计算平台504可托管远程计算平台502所请求的被托管的应用。例如,主机计算平台504可初始化由被托管的应用模块518支持的终端用户应用,并且可托管供远程计算平台502使用(例如,通过接收机模块514)的终端用户应用。在步骤3,主机计算平台504可生成UI。例如,主机计算平台504可生成与被托管的应用模块518所支持的终端用户应用相关联的UI。例如,主机计算平台504可生成UI,诸如图10所示的被托管的应用UI1008。参照图10,被托管的应用UI 1008可包括一个或多个UI元素。例如,被托管的应用UI1008可以包括UI元素1010(例如,用于选择字体的下拉菜单)。
参照图9A,在步骤4,主机计算平台504可识别生成的UI的一个或多个UI元素。例如,UI模块520可识别UI元素1010。在步骤5,主机计算平台504可生成一个或多个代理UI元素。代理UI元素中的每个可对应于识别出的UI元素中的一个或多个。例如,UI模块520可生成对应于UI元素1010的一个或多个代理UI元素。所生成的代理UI元素中的每个可包括与对应于其所对应的一个或多个识别出的UI元素的功能相关联的一个或多个词。例如,对应于UI元素1010的一个或多个代理UI元素可包括一个或多个与对应于UI元素1010的功能相关联的词(例如,“当前”、“字体”、“改变”等)。在步骤6,可将生成的UI(包括识别出的一个或多个UI元素)和代理UI元素传送到远程计算平台502。例如,可将被托管的应用UI 1008(包括UI元素1010)和对应于UI元素1010(未示出)的一个或多个代理UI元素传送到远程计算平台502。
在步骤7,远程计算平台502可将一个或多个词添加到“统一”或“公共”的语音识别词的组,所述一个或多个词包含在接收自主机计算平台504的代理UI元素中。例如,远程计算平台502可包括一个或多个与远程计算平台502或者一个或多个在远程计算平台502上本地执行的应用的本地功能相关联的词(例如“查找”、“回到主屏幕”、“显示联系人”、“改变信道”、“发出新的呼叫”、与本地UI元素1002相关联的功能或与由接收机模块514创建的接收机应用窗口1004相关联的功能等),并且远程计算平台502可将一个或多个词添加到统一的词的组,所述一个或多个词包含在对应于UI元素1010的代理UI元素中(例如,“当前”、“字体”、“改变”等),所述统一的词的组包括与远程计算平台502的本地功能相关联的一个或多个词。利用这样的统一的词的组可提供给远程计算平台502的用户“无缝”语音识别体验(例如,从用户的角度来看,他们的词是否与本地应用、被托管的应用或其组合中的一个或多个方面有关可以是不重要的)。在步骤8,远程计算平台502可捕获一个或多个音频样本。例如,远程计算平台502的用户可(例如通过输入装置使用关键词等)调用语音识别。音频样本可包括远程计算平台502的用户的话语。
参照图9B,在步骤9,可将一个或多个音频样本传送到语音识别平台506。语音识别平台506可利用语音识别技术来将音频样本转换为一个或多个转录或计算机可解析记录,并且在步骤10可将这样的一个或多个转录或计算机可解析记录传送到远程计算平台502。例如,语音识别平台506可将远程计算平台502的用户的一句或多句话语的转录传送到远程计算平台502。在步骤11,远程计算平台502可处理接收自语音识别平台506的一个或多个转录或计算机可解析记录。例如,远程计算平台502可处理远程计算平台502的用户的一句或多句话语的转录。
在一些实施例中,处理远程计算平台502的用户的一句或多句话语的转录可包括语法分析转录以识别被包括在统一的词的组中的一个或多个词的一次或多次出现(例如,语法分析转录以识别与远程计算平台502的本地功能相关联的一个或多个词的一次或多次出现、与在远程计算平台502上本地执行的应用相关联的一个或多个词的一次或多次出现、和/或被包括在接收自主机计算平台504的一个或多个代理UI元素中的一个或多个词的一次或多次出现)。例如,远程计算平台502的用户可已说出包括与本地UI元素1002的功能相关联的词的话语(例如,“发出新的呼叫”),并且远程计算平台502可语法分析接收自语音识别平台506的转录并识别在转录中的词“发出新的呼叫”。远程计算平台502可确定:识别出的词与远程计算平台502的功能或一个或多个在远程计算平台502上本地执行的应用的功能(例如,与本地UI元素1002相关联的功能或者与由接收机模块514创建的接收机应用窗口1004相关联的功能)相关联,并且在步骤12,远程计算平台502可调用远程计算平台502或一个或多个在远程计算平台502上本地执行的应用的相应的功能(例如,与本地UI元素1002相关联的功能或者与由接收机模块514创建的接收机应用窗口1004相关联的功能)。
在步骤13,远程计算平台502可捕获一个或多个另外的音频样本。例如,远程计算平台502的用户可(例如,通过输入装置、使用关键词等)调用语音识别。一个或多个音频样本可包括远程计算平台502的用户的话语。在步骤14,可将音频样本传送到语音识别平台506。语音识别平台506可利用语音识别技术来将音频样本转换为一个或多个转录或计算机可解析记录,并且在步骤15,可以将这样的一个或多个转录或计算机可解析记录传送到远程计算平台502。例如,语音识别平台506可将远程计算平台502的用户的一句或多句话语的转录传送到远程计算平台502。在步骤16,远程计算平台502可处理接收自语音识别平台506的一个或多个转录或计算机可解析记录。例如,远程计算平台502的用户可已说出包括与UI元素1010的功能相关的词的话语(例如,“改变成新字体”),并且远程计算平台502可语法分析接收自语音识别平台506的转录并识别在转录中的词“改变成新字体”。远程计算平台502可确定识别出的字与代理UI元素相关联(例如,对应于UI元素1010的代理UI元素)。
在步骤17,远程计算平台502可调用对应于识别出的词相关联的代理UI元素的UI元素的功能。例如,远程计算平台502可调用UI元素1010的功能(例如,改变当前字体)。在步骤18,远程计算平台502可向主机计算平台504发信号,以调用对应于识别出的词相关联的代理UI元素的UI元素的功能。例如,远程计算平台502可向主机计算平台504发信号,以调用UI元素1010的功能。参照图9C,在步骤19,主机计算平台504可调用对应于识别出的词相关联的代理UI元素的UI元素的功能。例如,主机计算平台504可调用UI元素1010的功能。在步骤20,主机计算平台504可刷新与被托管的应用相关联的UI。例如,主机计算平台504可刷新被托管的应用UI 1008(例如,以反映新选择字体)。在步骤21,可将与托管应用相关联的刷新的UI传送到远程计算平台502。例如,可将刷新的被托管的应用UI 1008(例如,反映新选择字体的版本)传送到远程计算平台502。
如上所述,本文所述的UI模块520的功能的一个或多个方面可与一个或多个其他的模块相组合或者由一个或多个单独的模块执行,其可在计算平台的任意组合(例如,远程计算平台502、主机计算平台504或其组合)上执行。例如,在步骤22,远程计算平台502可识别刷新的UI的一个或多个UI元素。例如,远程计算平台502可识别UI元素1010(例如,新选择字体)。在步骤23,远程计算平台502可生成一个或多个代理UI元素。代理UI元素中的每个可对应于识别出的UI元素中的一个或多个。例如,远程计算平台502可生成对应于UI元素1010的一个或多个代理UI元素(例如,对应于新选择字体的一个或多个代理UI元素)。所生成的代理UI元素中的每个可包括与对应于其所对应的识别出的一个或多个UI元素的功能相关联的一个或多个词)。例如,对应于UI元素1010的一个或多个代理UI元素可包括与对应于UI元素1010的功能相关联的一个或多个词(例如,与新选择字体相关联的一个或多个词)。
在步骤24,远程计算平台502可将被包括在所生成的一个或多个代理UI元素中的一个或多个词添加到统一的词的组。例如,远程计算平台502可将被包括在对应于UI元素1010的代理UI元素中的一个或多个词(例如,与新选择字体相关联的一个或多个词)添加到统一的词的组。在步骤25,远程计算平台502可捕获一个或多个另外的音频样本。例如,远程计算平台502的用户可调用语音识别(例如,通过输入装置、使用关键词等)。一个或多个音频样本可包括远程计算平台502的用户的话语。在步骤26,可将一个或多个音频样本传送到语音识别平台506。语音识别平台506可利用语音识别技术来将音频样本转换为一个或多个转录或计算机可解析记录,并在步骤27,可以将这种一个或多个转录或计算机可解析记录传送到远程计算平台502。例如,语音识别平台506可以将远程计算平台502的用户的一句或多句话语的转录传送到远程计算平台502。
参照图9D,在步骤28,远程计算平台502可处理接收自语音识别平台506的一个或者多个转录或计算机可解析记录。例如,远程计算平台502的用户可已说出包括要被插入到被托管的应用中的文本的话语(例如,“你好<暂停>这是一个测试句号,一个在远程连接上执行的测试感叹号”)。远程计算平台502可语法分析接收自语音识别平台506的转录,并且在步骤29,可识别在转录中的要被插入到被托管的应用中的文本。在一些实施例中,远程计算平台502可润色要被插入到被托管的应用中的文本(例如,生成文本串,诸如“你好,这是一种测试。一个在远程连接上执行的测试!”)。在步骤30,远程计算平台502可将要被插入到被托管的应用中的文本传送到主机计算平台504。在步骤31,主机计算平台504可将要被插入到被托管的应用中的文本插入到被托管的应用。例如,主机计算平台504可将文本1012(或其一部分)插入到被托管的应用UI 1008中,并可将当前光标位置移动到位置1014。
在步骤32,主机计算平台504可刷新与被托管的应用相关联的UI。例如,主机计算平台504可刷新被托管的应用UI 1008(例如,以反映插入的文本和当前光标位置)。在步骤33,主机计算平台504可识别被刷新的UI的一个或多个UI元素。例如,UI模块520可识别文本1012和/或光标位置1014。在步骤34,主机计算平台504可生成一个或多个代理UI元素。代理UI元素中的每个可对应于识别出的UI元素中的一个或多个UI元素。例如,UI模块520可生成对应于文本1012和/或光标位置1014的一个或多个代理UI元素。所生成的代理UI元素中的每个可包括与对应于其所对应的识别出的一个或多个UI元素的功能相关联的一个或多个词。例如,对应于文本1012的一个或多个代理UI元素可包括包含在文本1012中的一个或多个词,并且对应于光标位置1014的一个或多个代理UI元素可包括与光标位置1014(例如,“感叹号之后”、“第五行”、“在结尾”等)相关联的一个或多个词。在步骤35中,可将刷新的UI(包括识别出的一个或多个UI元素)和一个或多个代理UI元素传送到远程计算平台502。例如,可将被托管的应用UI 1008的刷新的版本(包括文本1012)和对应于文本1012和/或光标位置1014的一个或多个代理UI元素(未示出)传送到远程计算平台502。参照图9E,在步骤36,远程计算平台502可将被包括在所生成的一个或多个代理UI元素中的一个或多个词添加到统一的词的组。例如,远程计算平台502可将被包括在对应于文本1012的代理UI元素中的一个或多个词和/或被包括在对应于光标位置1014的代理UI元素中的一个或多个词添加到统一的词的组。
在步骤37,远程计算平台502可捕获一个或多个另外的音频样本。例如,远程计算平台502的用户可(例如通过输入装置、使用关键词等)调用语音识别。一个或多个音频样本可包括远程计算平台502的用户的话语。在步骤38,可将一个或多个音频样本传送到语音识别平台506。语音识别平台506可利用语音识别技术来将音频样本转换为一个或多个转录或计算机可解析记录,并且在步骤39,可以将这种一个或多个转录或计算机可解析记录传送到远程计算平台502。例如,语音识别平台506可将远程计算平台502的用户的一句或多句话语的转录传送到远程计算平台502。在步骤40,远程计算平台502可处理接收自语音识别平台506的一个或多个转录或计算机可解析记录。例如,远程计算平台502的用户可已说出包括要被插入到被托管的应用中的文本的话语(例如,“插入文本—这是一个语音识别句号的测试,这之后是一个测试句号”)。远程计算平台502可语法分析接收自语音识别平台506的转录,并且在步骤41,可识别在转录中的要被插入到被托管的应用中的文本。
在一些实施例中,远程计算平台502可利用上下文文本的滑动窗口来润色要被插入到被托管的应用中的文本。上下文文本的滑动窗口可包括,例如,当前光标位置周围的文本(例如,在当前光标位置之前和/或之后的文本)。在远程计算平台502的用户(例如,通过触摸、键盘、鼠标事件,改变光标位置,更新内容等)指示文本应当被插入到位于上下文文本的当前滑动窗口以外的位置处的被托管的应用的情况下,远程计算平台502可请求被包括在主机计算平台504的被托管的应用中的附加文本。例如,在步骤42,远程计算平台502可请求被包括在主机计算平台504中的被托管的应用中的附加文本(例如,文本串“这是一个测试。”之前和/或之后的文本)。此外或可选地,远程计算平台502可请求新的(或刷新的)上下文文本(例如,响应于触摸事件,键盘事件,光标移动事件,致力于改变光标位置、更新内容、导航文本、选择文本、搜索文本的声音命令,剪切、复制或粘贴事件等),和/或主机计算平台504可(例如,基于UI自动化事件、API事件等)确定应被识别的新的(或刷新的)上下文文本。主机计算平台504可识别所请求的上下文文本(例如,文本串“这是一个测试。”之前和/或之后的文本)。在步骤43,主机计算平台504可将所请求的上下文文本(例如,文本串“你好,这是一种测试。一个在远程连接上执行的测试!”)传送到远程计算平台502。另外地或可选地,在远程计算平台502处理转录和/或识别要被插入到被托管的应用中的文本之前,上下文文本可被识别和/或被传送到远程计算平台502。
参照图9F,在步骤44,远程计算平台502可用所提供的上下文文本更新上下文文本的滑动窗口,并处理要被插入到被托管的应用中的文本。例如,远程计算平台502可按照上下文文本改进要被插入到被托管的应用中的文本(例如,产生诸如“这是一个语音识别的测试。”的文本串)。在步骤45,远程计算平台502可将要被插入到被托管的应用中的文本传送到主机计算平台504。在步骤46,远程计算平台可将要被插入到被托管的应用中的文本插入到被托管的应用中。例如,主机计算平台504可将文本“这是一个语音识别的测试。”插入到被托管的应用UI 1008中,并可将当前光标位置移动到位置1016。
在步骤47,主机计算平台504可刷新与被托管的应用相关联的UI。例如,主机计算平台504可刷新被托管的应用UI 1008(例如,以反映被插入的文本和当前光标位置)。在步骤48,主机计算平台504可识别刷新的UI的一个或多个UI元素。例如,UI模块520可识别出新插入的文本和/或光标位置1016。在步骤49,主机计算平台504可生成一个或多个代理UI元素。代理UI元素中的每个可对应于识别出的UI元素中的一个或多个。例如,UI模块520可生成对应于新插入文本和/或光标位置1016的一个或多个代理UI元素。所生成的代理UI元素中的每个可包括与对应于其所对应的识别出的一个或多个UI元素的功能相关联的一个或多个词。例如,对应于新插入文本的代理UI元素可包括被包括在新插入文本中的一个或多个词,并且对应于光标位置1016的一个或多个代理UI元素可包括与光标位置1016相关联的一个或多个词。
在步骤50,可将刷新的UI(包括识别出的一个或多个UI元素)和一个或多个代理UI元素传送到远程计算平台502。例如,可将被托管的应用的UI 1008的刷新版本(包括新插入文本)以及对应于新插入文本和/或光标位置1016的一个或多个代理UI元素(未示出)传送到远程计算平台502。在步骤51,远程计算平台502可将被包括在所生成的一个或者多个代理UI元素中的一个或多个词添加到统一的词的组。例如,远程计算平台502可将被包括在对应于新插入文本的代理UI元素中的一个或多个词和/或被包括在对应于光标位置1016的代理UI元素中的一个或多个词添加到统一的词的组。
图11绘示了用于依照本文描述的一个或多个说明性方面的用于远程应用和桌面的语音识别支持的示例性方法。参照图11,在步骤1100,应用可被托管以供远程计算平台使用。例如,由被托管的应用模块518支持的终端用户应用可由供远程主机计算平台502使用的主机计算平台504来(例如,通过接收机模块514)托管。在步骤1102,可识别由被托管的应用生成的UI的UI元素。例如,可通过UI模块520识别UI700的UI元素702、704、706、708和710。在步骤1104,可生成代理UI元素。代理UI元素中的每个可对应于识别出的UI元素中的一个或多个。例如,UI模块520可生成代理UI元素712、714、716和718。代理UI元素712、714、716和718可分别对应于UI元素704、706、708和704。在步骤1106,可处理音频样本的转录。例如,主机计算平台504可处理通过远程计算平台502记录的音频样本的转录。通过远程计算平台502记录的音频样本可包括由远程计算平台502的用户说出的话语。转录可包括对应于一个或多个代理UI元素的一个或多个词。例如,转录可包括可对应于代理UI元素712的词“一个”。在步骤1108,可调用被托管的应用的功能。例如,主机计算平台504可选择对应于代理UI元素712的UI元素704。
已经根据本公开的说明性实施例描述了本公开的各方面。本领域的普通技术人员在阅读本公开内容之后将想到在所附权利要求的范围和精神内的许多其他实施例、修改和变化。例如,本领域的普通技术人员将理解,做例证的附图中所示的步骤可按不同于所述顺序来执行,并将理解根据本公开的各方面,所示的一个或多个步骤可以是可选的。本领域中的技术人员可对其作出修改,尤其是按照前述教导。例如,可单独使用前述实施例中的每个元件,或者可以与其他实施例的元件组合或子组合的形式使用。还应认识并理解到,在不脱离以下权利要求的精神和范围的情况下,可进行修改。
Claims (16)
1.一种用于远程应用和桌面的语音识别支持的方法,所述方法包括:
托管一个应用以供远程计算平台使用;
识别由所托管的应用生成的图形用户界面UI的多个UI元素;
识别多个属性,所述多个属性包括所述多个UI元素的一个经标记的UI元素的一个或多个UI元素标记;
基于识别出的多个属性,生成多个代理UI元素,所述多个代理UI元素中的每个对应于所述多个UI元素中的一个或多个,其中每个各自的代理UI元素与一个或多个词相关联,所述一个或多个词对应于所述多个属性中的一个或多个属性;
将所述多个代理UI元素和由所托管的应用生成的所述图形用户界面UI传送至所述远程计算平台;
处理音频样本的转录,所述音频样本包括所述远程计算平台的用户的话语,并且所述音频样本的转录包括对应于所述多个代理UI元素中的一个或多个的至少一个词,其中所述至少一个词包括对应于所述经标记的UI元素的所述一个或多个UI元素标记中的至少一个的词;以及
将所托管的应用的当前选择的UI元素从所托管的应用的所述当前选择的UI元素改变成所述经标记的UI元素。
2.如权利要求1所述的方法,其中所述音频样本的转录包括要被插入由所托管的应用生成的图形用户界面UI的字段中的文本,并且其中所述方法还包括将所述文本插入到由所托管的应用生成的图形用户界面UI的字段中。
3.如权利要求2所述的方法,所述方法包括:
识别对应于由所托管的应用生成的图形用户界面UI的字段中的位置的上下文文本,所述位置对应于所述文本要被插入其中的字段的定位;
将所述上下文文本传送到所述远程计算平台;以及
用所述上下文文本更新存储在所述远程计算平台处的滑动窗口。
4.如权利要求1所述的方法,所述方法包括更新存储在所述远程计算平台处的统一的词的组,所述统一的词的组包括对应于在所述远程计算平台上本地执行的应用或程序的语音识别功能的至少一个词,并且所述统一的词的组包括对应于所述多个代理UI元素中的所述一个或多个的所述至少一个词。
5.如权利要求1所述的方法,其中所述音频样本的转录是从语音识别计算平台接收的,所述语音识别计算平台不同于所述远程计算平台和托管所托管的应用的计算平台。
6.如权利要求1所述的方法,其中,至少一部分的所述多个代理UI元素配置成对所述远程计算平台的用户可见,其中,配置成对所述远程计算平台的用户可见的所述至少一部分的所述多个代理UI元素中的一个或多个包括一个或多个视觉提示,所述一个或多个视觉提示配置成被覆盖在由所托管的应用生成的图形用户界面UI的多个UI元素中的一个或多个上,并且其中,对应于所述多个代理UI元素中的一个或多个的所述至少一个词包括对应于所述一个或多个视觉提示的至少一个词。
7.如权利要求1所述的方法,其中,至少一部分的所述多个代理UI元素配置成对所述远程计算平台的用户可见,其中,配置成对所述远程计算平台的用户可见的所述至少一部分的所述多个代理UI元素中的一个或多个包括光标瞄准十字线,所述光标瞄准十字线配置成被覆盖在由所托管的应用生成的图形用户界面UI的多个UI元素中的一个或多个上,并且其中,对应于所述多个代理UI元素中的所述一个或多个的所述至少一个词包括用于指引所述光标瞄准十字线的运动的至少一个词。
8.如权利要求1所述的方法,其中,至少一部分的所述多个代理UI元素配置成从所述远程计算平台的用户的角度看为隐藏的,其中,配置成从所述远程计算平台的用户的角度看为隐藏的所述至少一部分的所述多个代理UI元素中的一个或多个包括一个或多个光标方向选项,并且其中,对应于所述多个代理UI元素中的所述一个或多个的所述至少一个词包括对应于所述光标方向选项中的一个或多个的至少一个词。
9.如权利要求1所述的方法,其中,至少一部分的所述多个代理UI元素配置成从所述远程计算平台的用户的角度看为隐藏的,其中,配置成从所述远程计算平台的用户的角度看为隐藏的所述至少一部分的所述多个代理UI元素中的一个或多个包括配置成调用与所托管的应用相关联的一系列命令的一个或多个宏选项,其中,对应于所述多个代理UI元素中的所述一个或多个的所述至少一个词包括与所述一个或多个宏选项相关联的至少一个词,并且其中,所述一系列命令被调用。
10.如权利要求1所述的方法,其中,至少一部分的所述多个代理UI元素配置成从所述远程计算平台的用户的角度看为隐藏的,其中,配置成从所述远程计算平台的用户的角度看为隐藏的所述至少一部分的所述多个代理UI元素中的一个或多个包括一个或多个键盘快捷键选项,所述一个或多个键盘快捷键选项配置成调用与所托管的应用相关联的一系列命令,其中,对应于所述多个代理UI元素中的所述一个或多个的所述至少一个词包括与所述一个或多个键盘快捷键选项相关联的至少一个词,并且其中,所述一系列命令被调用。
11.如权利要求1所述的方法,其中,至少一部分的所述多个代理UI元素配置成从所述远程计算平台的用户的角度看为隐藏的,其中配置成从所述远程计算平台的用户的角度看为隐藏的所述至少一部分的所述多个代理UI元素中的一个或多个包括导航菜单选项,所述导航菜单选项配置成显示从当前被所述远程计算平台显示的所托管的应用的UI状态可获得的一个或多个导航选项,其中,对应于所述多个代理UI元素中的所述一个或多个的所述至少一个词包括与所述导航菜单选项相对应的至少一个词,并且其中,所托管的应用被导航到所述一个或多个导航选项中的一个导航选项。
12.如权利要求1所述的方法,其中所托管的应用在虚拟化平台的虚拟化计算环境内运行,并且其中,所述远程计算平台通过在所述远程计算平台上执行的接收机应用来访问所述虚拟化计算环境。
13.如权利要求12所述的方法,其中,所托管的应用和所述接收机应用中的一个或多个包括网页浏览器或网页浏览器插件中的至少一个,并且其中,识别所述多个UI元素包括对所述网页浏览器或所述网页浏览器插件中的至少一个的浏览器辅助对象(BHO)进行至少一次调用。
14.如权利要求1所述的方法,所述方法包括:
检测所述多个UI元素中的一个或多个变化;以及
响应于检测所述多个UI元素中的一个或多个变化,生成第二多个代理UI元素,所述第二多个代理UI元素中的每个对应于所述多个UI元素中的一个或多个检测到的变化中的至少一个。
15.一种用于远程应用和桌面的语音识别支持的系统,所述系统包括:
至少一个处理器;以及
至少一个存储器,其存储指令,当由所述至少一个处理器执行所述指令时,引起所述系统执行以下操作:
托管应用以供远程计算平台使用;
识别由所托管的应用生成的图形用户界面UI的多个UI元素;
识别多个属性,所述多个属性包括所述多个UI元素的一个经标记的UI元素的一个或多个UI元素标记;
基于识别出的多个属性,生成多个代理UI元素,所述多个代理UI元素中的每个对应于所述多个UI元素中的一个或多个,其中,每个各自的代理UI元素与一个或多个词相关联,所述一个或多个词对应于所述多个属性中的一个或多个属性;
将所述多个代理UI元素和由所托管的应用生成的所述图形用户界面UI传送至所述远程计算平台;
处理音频样本的转录,所述音频样本包括所述远程计算平台的用户的话语,并且所述音频样本的转录包括对应于所述多个代理UI元素中的一个或多个的至少一个词,其中所述至少一个词包括对应于所述经标记的UI元素的所述一个或多个UI元素标记中的至少一个的词;以及
将所托管的应用的当前选择的UI元素从所托管的应用的所述当前选择的UI元素改变成所述经标记的UI元素。
16.一种计算系统,所述计算系统被配置为:
托管应用以供远程计算平台使用;
识别由所托管的应用生成的图形用户界面UI的多个UI元素;
识别多个属性,所述多个属性包括所述多个UI元素的一个经标记的UI元素的一个或多个UI元素标记;
基于识别出的多个属性,生成多个代理UI元素,所述多个代理UI元素中的每个对应于所述多个UI元素中的一个或多个,其中每个各自的代理UI元素与一个或多个词相关联,所述一个或多个词对应于所述多个属性中的一个或多个属性;
将所述多个代理UI元素和由所托管的应用生成的所述图形用户界面UI传送至所述远程计算平台;
处理音频样本的转录,所述音频样本包括所述远程计算平台的用户的话语,并且所述音频样本的转录包括对应于所述多个代理UI元素中的一个或多个的至少一个词,其中所述至少一个词包括对应于所述经标记的UI元素的所述一个或多个UI元素标记中的至少一个的词;以及
将所托管的应用的当前选择的UI元素从所托管的应用的所述当前选择的UI元素改变成所述经标记的UI元素。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261643663P | 2012-05-07 | 2012-05-07 | |
US61/643,663 | 2012-05-07 | ||
PCT/US2013/039927 WO2013169759A2 (en) | 2012-05-07 | 2013-05-07 | Speech recognition support for remote applications and desktops |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104487932A CN104487932A (zh) | 2015-04-01 |
CN104487932B true CN104487932B (zh) | 2017-10-10 |
Family
ID=49513600
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380035569.5A Expired - Fee Related CN104487932B (zh) | 2012-05-07 | 2013-05-07 | 用于远程应用和桌面的语音识别支持 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9552130B2 (zh) |
EP (1) | EP2847663A4 (zh) |
CN (1) | CN104487932B (zh) |
WO (1) | WO2013169759A2 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8515052B2 (en) | 2007-12-17 | 2013-08-20 | Wai Wu | Parallel signal processing system and method |
USD740844S1 (en) * | 2013-11-15 | 2015-10-13 | Tencent Technology (Shenzhen) Company Limited | Display screen or portion thereof with graphical user interface |
US9626336B2 (en) | 2014-08-22 | 2017-04-18 | Microsoft Technology Licensing, Llc | Remote management of a graphical user interface |
US10650812B2 (en) | 2018-08-13 | 2020-05-12 | Bank Of America Corporation | Deterministic multi-length sliding window protocol for contiguous string entity |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1342290A (zh) * | 1998-10-02 | 2002-03-27 | 国际商业机器公司 | 会话浏览器和会话系统 |
CN101960426A (zh) * | 2008-01-02 | 2011-01-26 | 桑迪士克以色列有限公司 | 具有直接用户访问的存储装置 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5602729A (en) * | 1994-03-15 | 1997-02-11 | Mercury Computer Systems, Inc. | Method and apparatus for monitoring and controlling multiprocessor digital data processing systems |
US6823306B2 (en) * | 2000-11-30 | 2004-11-23 | Telesector Resources Group, Inc. | Methods and apparatus for generating, updating and distributing speech recognition models |
US20030144846A1 (en) * | 2002-01-31 | 2003-07-31 | Denenberg Lawrence A. | Method and system for modifying the behavior of an application based upon the application's grammar |
US6882974B2 (en) * | 2002-02-15 | 2005-04-19 | Sap Aktiengesellschaft | Voice-control for a user interface |
US20080126095A1 (en) * | 2006-10-27 | 2008-05-29 | Gil Sideman | System and method for adding functionality to a user interface playback environment |
US20110054895A1 (en) * | 2007-03-07 | 2011-03-03 | Phillips Michael S | Utilizing user transmitted text to improve language model in mobile dictation application |
US8886521B2 (en) | 2007-05-17 | 2014-11-11 | Redstart Systems, Inc. | System and method of dictation for a speech recognition command system |
US9177551B2 (en) * | 2008-01-22 | 2015-11-03 | At&T Intellectual Property I, L.P. | System and method of providing speech processing in user interface |
US8365144B1 (en) * | 2008-02-28 | 2013-01-29 | The Mathworks, Inc. | Proxy graphical user interface generation |
US20090278683A1 (en) * | 2008-05-11 | 2009-11-12 | Revolutionary Concepts, Inc. | Systems, methods, and apparatus for metal detection, viewing, and communications |
US20110067059A1 (en) * | 2009-09-15 | 2011-03-17 | At&T Intellectual Property I, L.P. | Media control |
EP3091535B1 (en) * | 2009-12-23 | 2023-10-11 | Google LLC | Multi-modal input on an electronic device |
US9183560B2 (en) * | 2010-05-28 | 2015-11-10 | Daniel H. Abelow | Reality alternate |
US20110296460A1 (en) * | 2010-05-31 | 2011-12-01 | Samsung Electronics Co., Ltd. | Method and apparatus for providing remote user interface (ui) service |
CN103168325B (zh) * | 2010-10-05 | 2017-06-30 | 西里克斯系统公司 | 用于本地用户体验的显示管理 |
US20130219277A1 (en) * | 2012-02-21 | 2013-08-22 | Mobotap Inc. | Gesture and Voice Controlled Browser |
US20140237368A1 (en) * | 2013-02-19 | 2014-08-21 | Microsoft Corporation | Proxying non-interactive controls to enable narration |
-
2013
- 2013-05-07 US US13/888,495 patent/US9552130B2/en active Active
- 2013-05-07 EP EP13787809.6A patent/EP2847663A4/en not_active Withdrawn
- 2013-05-07 CN CN201380035569.5A patent/CN104487932B/zh not_active Expired - Fee Related
- 2013-05-07 WO PCT/US2013/039927 patent/WO2013169759A2/en active Application Filing
-
2016
- 2016-10-24 US US15/332,175 patent/US10579219B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1342290A (zh) * | 1998-10-02 | 2002-03-27 | 国际商业机器公司 | 会话浏览器和会话系统 |
CN101960426A (zh) * | 2008-01-02 | 2011-01-26 | 桑迪士克以色列有限公司 | 具有直接用户访问的存储装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2013169759A2 (en) | 2013-11-14 |
CN104487932A (zh) | 2015-04-01 |
WO2013169759A3 (en) | 2014-01-03 |
US20170038929A1 (en) | 2017-02-09 |
US10579219B2 (en) | 2020-03-03 |
EP2847663A4 (en) | 2015-12-30 |
US20130298033A1 (en) | 2013-11-07 |
EP2847663A2 (en) | 2015-03-18 |
US9552130B2 (en) | 2017-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104956329B (zh) | 在云计算环境中的网络方案 | |
CN104981776B (zh) | 对个人虚拟磁盘的系统更新 | |
CN102272726B (zh) | 便于异构处理器池虚拟化的系统和方法 | |
CN104981783B (zh) | 在云计算环境中的动态配置 | |
CN104601622B (zh) | 一种部署集群的方法和系统 | |
CN102656578B (zh) | 用于在第一机器上显示与第二机器的驱动器关联的数据而不必映射该驱动器的方法和系统 | |
CN103649936B (zh) | 在移动设备上针对在服务器上远程执行的应用的外壳集成 | |
CN102257481B (zh) | 用于由管理程序控制对物理资源的访问的系统和方法 | |
CN105159521B (zh) | 用表示远程应用的用户界面元素更新停靠栏的方法和系统 | |
CN103238138B (zh) | 用于迁移逻辑分区的方法、装置和系统 | |
CN102334114B (zh) | 用于优化确定由虚拟硬盘地址标识的数据位置的过程的系统和方法 | |
CN106843715A (zh) | 用于远程化的应用的触摸支持 | |
CN102292699A (zh) | 用于在云计算环境中提供对从存储系统检索的数据的转换的系统和方法 | |
CN104115471B (zh) | 确定托管的服务中使用的带宽 | |
CN102317909A (zh) | 便于在多个物理机器间迁移虚拟机的系统和方法 | |
CN108351765A (zh) | 从模板生成应用 | |
CN102971706A (zh) | 将信息从安全虚拟机重定向到不安全虚拟机 | |
CN104137050A (zh) | 具有分级更新的远程显示 | |
CN103176923B (zh) | 配对物理设备和虚拟设备配以产生沉浸式环境的方法和设备 | |
CN104487932B (zh) | 用于远程应用和桌面的语音识别支持 | |
CN110300013A (zh) | 在具有不同的应用命名的云域中执行策略 | |
CN109656646A (zh) | 一种远程桌面控制方法、装置、设备及虚拟化芯片 | |
BRPI0618551A2 (pt) | re-direcionamento gráfico alternativo | |
CN104424012B (zh) | 用于提供自定义虚拟装置的方法和设备 | |
Figueiredo et al. | Overcoming poverty through digital inclusion |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20171010 |