区分语音命令的制作方法

文档序号:29047436发布日期:2022-02-25 22:33阅读:128来源:国知局
区分语音命令的制作方法

1.本发明涉及语音命令设备,且更具体来说,涉及语音命令过滤。


背景技术:

2.语音命令设备(vcd)由人类语音命令控制。设备由人类语音命令控制,从而不需要利用诸如按钮、拨盘、开关、用户界面之类的手动控件来操作设备。这使用户可以在双手忙于其他任务时,或者在用户离设备不够近从而无法接触设备的情况下操作设备。
3.vcd可以采取各种形式,诸如家用电器之类的具有专用用途的设备、用于其他设备的控制器、或者个人助理。虚拟个人助理形式的vcd可以集成在诸如移动电话的计算设备内。虚拟个人助理可包括用于响应于语音命令和输入而执行任务或服务的语音激活指令。
4.vcd可以由一个或多个触发词形式的语音命令激活。vcd可以使用语音识别,被编程为只对注册的个人的语音或者一组注册的个人的语音作出响应。这防止非注册用户发出命令。其他类型的vcd未针对注册用户进行调整,从而允许任何用户以指定的命令词和指令的形式发出命令。
5.语音命令设备(vcd)由人类语音命令控制。设备由人类语音命令控制,从而不需要利用诸如按钮、拨盘、开关、用户界面之类的手动控件来操作设备。这使用户可以在双手忙于其他任务时,或者在用户离设备不够近从而无法接触设备的情况下操作设备。
6.当vcd被来自电视、收音机、计算机或在vcd附近发出语音的其他非人类设备的语音命令触发时,出现了复杂化。
7.例如,可以在起居室中提供结合了语音控制的智能个人助理的智能扬声器形式的vcd。智能扬声器可能错误地响应来自电视的音频。有时,这可能是智能扬声器不理解的良性命令;然而,偶尔地,音频是可能导致智能个人助理的动作的有效命令或触发词。
8.因此,在本领域中需要解决上述问题。


技术实现要素:

9.从第一方面来看,本发明提供了一种用于语音命令过滤的计算机实现的方法,该方法包括:与位于一位置的语音控制设备建立通信;从所述语音控制设备接收指示被阻挡方向的数据;接收语音命令;确定所述语音命令是从所述数据中指示的被阻挡方向接收的;以及忽略所接收的语音命令。
10.从另一方面来看,本发明提供了一种用于语音命令过滤的系统,该系统包括:存储程序指令的存储器;以及处理器,其被配置为执行程序指令以执行一种方法,该方法包括:与位于一位置的语音控制设备建立通信;从所述语音控制设备接收指示被阻挡方向的数据;接收语音命令;确定所述语音命令是从所述数据中指示的被阻挡方向接收的;以及忽略所接收的语音命令。
11.从另一方面来看,本发明提供了一种用于语音命令过滤的计算机程序产品,该计算机程序产品包括计算机可读存储介质,该计算机可读存储介质可由处理电路读取并且存
储由处理电路执行以执行用于执行本发明的步骤的方法的指令。
12.从另一方面来看,本发明提供了一种存储在计算机可读介质上并且可加载到数字计算机的内部存储器中的计算机程序,包括软件代码部分,当所述程序在计算机上运行时,用于执行本发明的步骤。
13.从另一方面来看,本发明提供了一种计算机程序产品,包括具有程序指令的计算机可读存储介质,其中所述计算机可读存储介质本身不是暂时性信号,所述程序指令可由处理器执行以使所述处理器执行一种方法,所述方法包括:与位于一位置的语音控制设备建立通信;从所述语音控制设备接收指示被阻挡方向的数据;接收语音命令;确定所述语音命令是从所述数据中指示的被阻挡方向接收的;以及忽略所接收的语音命令。
14.本公开的实施例包括用于语音命令过滤的方法、计算机程序产品和系统。可以与位于某一位置处的语音控制设备建立通信。可以从语音控制设备接收指示被阻挡方向的数据。可以接收语音命令。可以确定该语音命令是从数据中指示的被阻挡方向接收的。然后可以忽略所接收的语音命令。
15.上述发明内容并非旨在描述本公开的每个所示实施例或每种实施方式。
附图说明
16.本公开中包括的附图并入说明书中并形成说明书的一部分。它们示出了本公开的实施例,并且与说明书一起用于解释本公开的原理。附图仅是典型实施例的说明,而不限制本公开。
17.图1是示出了可以实现本公开的实施例的环境的示意图。
18.图2a是示出根据本公开的实施例的用于基于被阻挡方向的语音命令过滤的示例方法的流程图。
19.图2b是示出根据本公开的实施例的用于确定是否执行语音命令的示例方法的流程图。
20.图2c是示出根据本公开的实施例的用于查询音频输出设备以确定是否应当忽略语音命令的示例方法的流程图。
21.图3是示出根据本公开的实施例的用于将音频文件传输到语音命令设备的示例方法的流程图。
22.图4是根据本公开的实施例的语音命令设备的框图。
23.图5是根据本公开的实施例的音频输出设备的框图。
24.图6是示出根据本公开的实施例的用于在移动设备处过滤语音命令的示例方法的流程图。
25.图7是示出根据本公开的实施例的用于利用与移动设备的位置相对应的被阻挡方向来更新语音命令设备的示例方法的流程图。
26.图8是示出根据本公开的实施例的可用于实现本文所述的方法、工具和模块中的一个或多个以及任何相关功能的示例计算机系统的高级框图。
27.图9是示出根据本公开的实施例的云计算环境的图。
28.图10是示出根据本公开的实施例的抽象模型层的框图。
29.虽然本文所述的实施例可具有各种修改和替代形式,但其细节已在附图中以实例
的方式示出并将详细描述。然而,应当理解,所描述的特定实施例不应被理解为限制性的。相反,本发明将涵盖落入本公开的范围内的所有修改、等效物和替代方案。
具体实施方式
30.本公开的方面一般涉及现场语音命令设备,并且具体地涉及语音命令过滤。虽然本公开不一定限于此类应用,但是通过使用此上下文的各种示例的讨论可以理解本公开的各个方面。
31.本公开的各方面涉及区分语音命令设备处的语音命令。如果随着时间的推移,音频输出设备(例如,电视)正在发出背景噪声,则该音频输出设备可以被添加到被阻挡的方向,使得vcd不响应于背景噪声的音频输出而触发。语音命令设备可被配置为从被阻挡的方向识别注册用户,使得从被阻挡的方向执行注册用户的命令。然而,如果未注册用户试图从被阻挡的方向发出命令(例如,通过电视),则可能错误地忽略未注册用户。因此,本公开的各方面通过查询音频输出设备以确定其是否正在发出音频来克服上述复杂情况。如果音频输出设备在发出命令时不输出音频,则可以处理未注册用户的命令。如果音频输出设备在发出命令时正在输出音频,则可以从音频输出设备收集音频文件,并将其与接收到的语音命令进行比较。如果语音命令和音频文件基本上匹配,则可以忽略该命令(例如,因为它可能是从电视接收的)。如果语音命令和音频文件基本上不匹配,则可以处理语音命令,因为它不是源自音频输出设备。
32.各方面还认识到,当新的移动设备进入附近时,以静态方式将阻挡的方向编程到vcd中可能导致问题。移动设备本身可能成为背景噪声源,这也可能导致在vcd处错误地触发语音命令。因此,本公开的方面涉及当新的背景源(例如,移动设备)进入vcd的附近时更新vcd。
33.此外,移动设备本身还可以包括语音命令功能。然而,移动设备可能未用当前被阻挡的方向、认证的用户语音和其他重要考虑来更新。因此,各方面使得能够在vcd(例如,专用vcd和具有vcd功能的移动设备)之间同步vcd数据(例如,被阻挡的方向、认证的用户语音、以及诸如音频输出设备音量状态的其他考虑)。
34.现在参考图1,示意图100示出了其中可以常规放置语音命令设备(vcd)120的环境110(例如,房间)。例如,vcd 120可以是智能扬声器的形式,包括位于环境110中沙发117旁边的桌子上的声控智能个人助理。
35.环境110可以包括电视114,从该电视可以从与电视114相关联的两个扬声器115、116发出音频。环境110还可以包括具有扬声器的收音机112。
36.vcd 120可以在各种时间接收来自两个电视扬声器115、116和收音机112的音频输入。这些音频输入可以包括语音,所述语音包括无意地触发vcd 120或向vcd 120提供输入的命令词。
37.本公开的各方面向vcd 120提供附加的功能以学习对于vcd 120的给定位置应当被忽略的音频输入的方向(例如,相对角度)。
38.随着时间的推移,vcd 120可以学习通过其向vcd 120的音频输入的方向来识别环境110中的背景噪声源。在该示例中,收音机112位于相对于vcd 120大约0度处,并且虚线三角形131示出了可以如何在vcd 120处接收收音机112的音频输出。电视114的两个扬声器
115、116可以被检测为分别位于大约15-20度和40-45度的方向上,并且虚线三角形132、133示出了如何在vcd 120处接收扬声器115、116的音频输出。随着时间的推移,vcd 120可以学习这些方向作为被阻挡的方向,从这些被阻挡的方向中忽略音频命令。
39.在另一个例子中,vcd 120可以是固定的电器(例如,洗衣机),并且可以针对与洗衣机处于同一房间的音频输入源(例如,收音机)学习被阻挡的方向。
40.如果vcd 120从这些被阻挡的方向接收命令,则它可以忽略该命令,除非它被配置为从已知的注册用户的语音接受来自这些方向的命令。
41.在实施例中,vcd 120可被配置成区分来自从被阻挡的方向(例如,电视114的音频扬声器115、116之一的方向或收音机112的方向)说话的未知人140的命令。如下面进一步描述的,vcd 120可被配置为询问音频输出设备(例如,电视114或收音机112)以确定音频设备的状态(例如,音频设备是否正在输出音频)。如果音频设备的状态指示音频设备不在输出音频,则即使未知人从被阻挡的方向说话,也可执行来自未知人140的命令。
42.实施例使得位于给定位置(例如,相对于vcd 120的方向)的vcd 120能够忽略该位置的不期望的命令源,而不会遗漏来自未知用户的命令。
43.此外,各方面描绘了可能已经进入环境110的移动设备(md)150。移动设备150可以是智能电话,其具有本地(诸如蓝牙和wi-fi)和广域(诸如4g)无线能力以及处理和存储能力。移动设备150还可以包括音频输出(一个或多个扬声器)和音频输入(一个或多个麦克风)技术。移动设备150还可以具有在其上提供的语音控制/命令软件功能,其允许移动设备150由用户的语音控制。
44.将移动设备150动态引入环境110中具有混淆现有静态vcd 120的操作的可能性,因为移动设备150可被认为是可能导致vcd 120从移动设备150无意中接收命令并对其起作用的(背景)音频输出的附加源。类似地,来自现有背景音频源(收音机112和电视114)的音频输出可能混淆移动设备150上存在的语音控制功能的操作(假设移动设备150具有这样的功能)。诸如移动设备150的新设备的引入可以由vcd 120处理,以最小化vcd 120的语音控制操作和移动设备150的操作中断的可能性。
45.为了在下面进一步讨论,vcd 120可以存储背景语音噪声的一个或多个被阻挡的源的细节。vcd 120存储的细节可以以一种或多种不同的方式来构造,例如利用方向信息和/或关于提供背景语音噪声的设备的身份的进一步信息和/或可能由可能输出意外语音命令的特定设备发出的背景语音噪声的特性(例如,音调和音高)。vcd 120保留该信息是为了其自己的目的,即滤除可能源自背景语音噪声源而不是用户的不想要的语音命令。
46.进入静态vcd 120所位于的环境110中的移动设备150可以导致vcd 120采取一系列动作来实现vcd 120和移动设备150两者的更好操作。vcd 120可被认为是静态的(例如,在环境110内的固定位置),并且移动设备150可被认为是动态的(例如,在环境110内是移动的)。最终,两个设备都能够用作vcd,但是一个是静态的,一个是动态的。操作设备120和150,使得每当移动设备150被音频命令触发时,移动设备150与静态vcd 120通信,以利用关于vcd 120已经获得的背景噪声源的信息。这随后允许移动设备150防止背景噪声源在移动设备150移动到新环境时执行不想要的命令。另外,设备120和150被操作以允许vcd 120获得移动设备150作为临时背景噪声源的知识,使得例如如果移动设备150要播放视频、流送tv节目、电影、音轨等,则静态vcd 120可以阻挡来自移动设备的扬声器的不想要的命令。
vcd 120和移动设备150之间的这种协作改进了两个设备的操作。
47.vcd 120和移动设备150的这种改进的操作可以被实现为对当前vcd和诸如移动电话等的个人助理设备的软件更新。当移动设备150进入vcd 120存在的新环境时,可以触发该过程。移动设备150可以通过蓝牙、wi-fi或另一本地化通信技术与位于环境110中的vcd 120通信以建立配对。作为该初始握手的一部分,移动设备150可以发送用于激活移动设备的个人助理的适当的触发词和/或短语。vcd 120然后将这些触发词放置到存储器中。vcd 120还将存储先前配对的移动设备150的细节,以消除每次相同的移动设备150进入环境110时发送触发词的需要。
48.然后,vcd 120将监听所存储的移动设备触发词/短语的所有出现,并且如果vcd 120检测到触发词/短语的任何实例,则vcd 120将在临时存储器中存储实例,详细说明所使用的短语、接收到该短语的时间/日期以及该短语是否来自已知背景噪声源的方向。同样,当移动设备150检测到触发词/短语时,在处理命令之前,移动设备150向vcd 120发送查询以查看该命令是否来自vcd 120的已知背景噪声源中的一个。如果触发词/短语源自环境中的已知背景噪声源(根据vcd120),则移动设备150可以忽略该命令。否则,移动设备150可以正常执行该命令。
49.vcd 120可通过发出信号(例如,由移动设备150发出的高频音频信号)来周期性地确定移动设备150是否仍在环境110中。当移动设备150离开环境110时,vcd 120可以清除其对所观察的触发词/短语的临时存储,并且停止存储任何将来的命令。在实施例中,移动设备150使用信号用其位置更新vcd 120,使得vcd120可以用移动设备150的位置更新其阻挡的方向。
50.图2a是示出根据本公开的实施例的用于基于被阻挡的方向进行语音命令过滤的示例方法200的流程图。
51.方法200开始于确定背景语音噪声的一个或多个方向。这在步骤201中示出。vcd 120可以通过从这些方向接收背景音频输入并分析从其接收音频输入的相对方向(其可以包括语音和非语音背景噪声)来学习位置的方向。在一些实施例中,通过三角测量(例如,通过测量两个或更多个已知位置(例如,安装在vcd 120中的麦克风)处的音频输入,并通过测量与已知点的角度来确定音频输入的方向和/或位置)来完成确定背景噪声的一个或多个方向。三角测量可以通过在vcd 120中包括两个或更多个麦克风并且交叉参考在两个或更多个麦克风处接收的音频数据来完成。在一些实施例中,一个或多个被阻挡的方向可以通过到达时间差(tdoa)来确定。该方法可以类似地利用两个或更多个麦克风。可以分析在两个或更多个麦克风处接收的数据,以基于音频输入的到达差来确定所接收的音频输入的位置。在一些实施例中,可以通过将传感器(例如,光学传感器、gps传感器、rfid标签等)与房间中的扬声器(例如,图1的扬声器112、115和116)相关联并且使用传感器来确定被阻挡的方向,来确定一个或多个被阻挡的方向。例如,光学传感器可以与vcd 120和房间中的一个或多个扬声器相关联。然后,可以通过与vcd 120相关联的光学传感器来确定被阻挡的方向。或者,背景语音噪声的方向可由用户配置。在实施例中,可以基于环境内的一个或多个移动设备(例如,图1的移动设备150)的位置来确定被阻挡的方向。
52.然后存储一个或多个被阻挡的方向。这在步骤202中示出。一个或多个被阻挡的方向可以存储在任何合适的存储器(例如,闪存、ram、硬盘存储器等)中。在一些实施例中,一
个或多个被阻挡的方向被存储在vcd 120上的本地存储器上。在一些实施例中,一个或多个被阻挡的方向可以存储在另一机器上并且通过网络传输。
53.此外,vcd 120确定识别的语音生物测定数据。这在步骤203中示出。确定识别的语音生物测定数据可以通过例如对一个或多个注册的语音应用语音识别来完成。语音识别可以利用语音的特性,例如音高和音调。所识别的语音生物测定数据可以存储在vcd 120上,以确定是否向vcd 120注册了进入的语音。这可以通过将进入的语音与识别的语音生物测定数据进行比较以确定进入的语音是否是识别的语音来实现。
54.然后接收语音输入。这在步骤204示出。语音输入可以由人类或非人类实体接收。因此,术语“语音输入”不一定必须是语音,而是可以包括背景噪声(例如,诸如正在运行的洗衣机、来自扬声器的音乐等)。
55.然后确定语音输入是否来自被阻挡的方向。这在步骤205中示出。确定语音输入是否来自被阻挡的方向可以通过将所存储的被阻挡的方向与从其接收语音输入的方向进行比较以确定所接收的语音输入是否与所存储的被阻挡的方向相关联来完成。如果语音输入来自与所存储的被阻挡方向不同的方向,则可以确定语音输入不是来自被阻挡方向。
56.如果确定语音输入不是来自被阻挡的方向,则处理语音输入。这在步骤206中示出。在一些实施例中,处理包括识别命令并执行所接收的命令。在一些实施例中,处理可以包括将所接收的语音输入与所存储的命令数据(例如,指定命令词和命令发起协议的数据)进行比较,以确定所接收的语音输入是否对应于(例如,匹配)所存储的命令数据的命令。例如,如果语音输入包括短语“断电”,并且“断电”被指定为存储的命令数据中的命令发起短语,则可以确定语音输入是命令并且可以执行该命令(例如,可以关闭电源)。
57.如果确定从被阻挡的方向接收到语音输入,则可以查询与被阻挡的方向相关联的音频设备以验证语音输入。这在步骤207中示出。例如,参考图1,如果从扬声器116接收到音频输入,则可以查询电视114以确定电视是否是关机或静音。如果确定电视机关机或静音(不发出音频),则可以处理语音输入(例如,可以执行语音命令),因为音频输入是从未知人140接收的。
58.上述操作可以以任何顺序完成,并且不限于所描述的那些。另外,上述操作中的一些、全部或没有一个可以完成,而仍然保持在本公开的范围内。
59.图2b-2c是共同示出根据本公开的实施例的用于对由语音命令设备(例如,vcd 120)接收的音频语音数据进行过滤的方法250的流程图。图2b是示出了根据本公开实施方式的用于基于方向和识别出的语音生物测定数据来确定是否执行语音命令的示例方法的流程图。图2c是示出根据本公开的实施例的用于查询音频输出设备以确定是否应当忽略语音命令的示例方法的流程图。
60.方法250开始于在vcd上注册一个或多个识别的语音。这在步骤252中示出。例如,vcd可以被配置为注册vcd的主用户以确保语音的语音生物测定数据被容易地识别。语音注册可以通过分析来自主用户的各种语音输入来完成。然后,所分析的语音输入可以用于区分主用户的音调和音高。或者,可通过记录在设备的使用期间接收的音高和音调数据来自动学习和注册定期接收的语音。具有语音识别功能可能不排除来自其他未注册语音的命令或输入被vcd接受。在一些实施例中,可以不注册语音,并且该方法可以阻挡所有语音输入的方向。
61.然后接收语音输入。这在步骤253中示出。在一些实施例中,非语音输入被自动过滤,这可以是vcd的固有功能。在一些实施例中,语音输入可以包括背景噪声语音或串(例如,其包括非人类语音输入)。
62.然后确定该语音输入是否与所识别的语音相关联。这在步骤254中示出。可以通过分析所接收的语音输入的语音生物测定数据(例如,通过完成所接收的语音输入的音调和音高分析)并将所分析的语音输入数据与所注册的语音生物测定数据进行比较,来完成确定语音输入是否与所识别的语音相关联。
63.如果语音输入与所识别的语音相关联,并且语音输入是命令,则执行该命令。这在步骤255中示出。这使得vcd能够响应来自注册用户的语音输入,而不管语音输入被接收的方向,包括语音输入是否是从被阻挡的方向接收的。该方法可以存储用于学习目的有效命令的数据点,包括可选地存储语音命令被接收的时间和方向。这可以用来例如学习有效命令的共同方向,诸如从相对于vcd的最喜欢位置,其可以被提升以用于更敏感的命令识别。
64.如果语音输入不是来自所识别的语音,则可以确定语音输入是否源自被阻挡的方向。这在步骤256中示出。确定语音输入的方向可以包括测量进入的语音输入的角度。vcd可具有用于评估进入的声音的方向的已知功能。例如,多个麦克风可以位于设备上,并且跨多个麦克风的声音检测可以使得能够确定位置(例如,使用三角测量或到达时间差)。被阻挡方向可以被存储为进入的声音到接收器的入射角的范围。在多个麦克风的情况下,被阻挡的方向可以对应于在多个麦克风中的一个或多个处主要地或更强地接收的语音输入。可以在三维布置中确定进入的声音的方向,其中从上面或下面以及在围绕vcd的横向方向上确定输入方向。
65.如果语音输入不是来自被阻挡的方向,则确定语音输入是否是命令。这在步骤257中示出。如果确定语音输入是命令,则在步骤255执行该命令。这使得命令能够从未注册的语音,即从新的或访客用户执行,并且不将vcd的用户限制为注册用户。在一些实施例中,命令可被存储为包括命令被接收的方向的命令数据点。这可以被分析以用于进一步的语音注册,或者确定命令是否被随后的用户输入所覆盖。然后,该方法可以结束并等待进一步的语音输入(例如,在步骤253)。
66.如果确定语音输入不是来自被阻挡的方向并且不是命令,则确定音频输入是背景噪声源。然后,背景噪声数据与时间、日期和接收背景噪声的方向(例如,入射角)一起存储。这在步骤259中示出。然后,该方向可以被添加为被阻挡的方向,使得如果从该方向重复地接收到语音输入,则可以阻挡语音输入。可以实现阈值以确定何时可以确定从未阻挡方向接收的未指定命令的语音输入是背景噪声。
67.例如,可以从特定方向接收多个语音输入。多个语音输入中的每一个可以在不同的时间被接收。可以将多个接收到的语音输入与存储的命令数据进行比较,以确定多个接收到的语音输入中的每一个是否对应于存储的命令数据。可确定多个语音输入中的不对应于所存储的命令数据的语音输入的数量。可以将不对应于所存储的命令数据的语音输入的数量与非命令语音输入阈值(例如,指定在将给定方向存储为一个或多个被阻挡的方向之前针对给定方向可以接收的非命令语音输入的数量的阈值)进行比较。响应于与所存储的命令数据不对应的语音输入的数量超过非命令语音输入阈值,可以将特定方向存储为一个或多个被阻挡的方向。在一些实施例中,背景噪声阈值包括声音特性信息,例如频率和振
幅。
68.如果确定语音输入来自被阻挡的方向,则确定语音输入是否是命令。这在步骤258示出。如果语音输入来自被阻挡的方向并且不是命令,则语音输入被存储为背景噪声源。这在步骤259中示出。
69.如果确定来自被阻挡方向的语音输入是命令,则方法250前进到图2c,其中标识被阻挡方向上的一个或多个音频输出设备。这在步骤271中示出。数据存储可由被阻挡方向的vcd和在每个被阻挡方向上的音频输出设备连同用于查询每个音频输出设备的通信信道或地址一起维护。在一些实施例中,该方法可以识别vcd附近的所有音频输出设备,并且可以使用覆盖通信来与所有音频输出设备通信。
70.查询一个或多个所识别的音频输出设备。这在步骤272示出。在其中在被阻挡的方向上有多个音频输出设备的实施例中,多个查询可被同时发送到两个或更多个音频输出设备。查询音频输出设备可以包括向设备发送请求信号以收集与设备相关联的音频数据。可以向音频输出设备查询音量状态(例如,设备是否静音或当前音量水平)和功率状态(例如,设备是否通电)。可以使用任何适当的连接(例如,内联网、因特网、蓝牙等)来发送状态请求。
71.确定所查询的音频设备是否正在发出音频。这在步骤273中示出。基于音频输出设备对查询请求的响应来完成确定音频输出设备是否正在发出音频。例如,如果对查询请求的响应指示音频输出设备被静音,则在步骤273确定音频输出设备不在发出音频。类似地,如果对查询请求的响应(或没有响应)指示音频输出设备关闭,则确定音频输出设备不在发出音频。在一些实施例中,可以基于音量水平阈值来完成确定。例如,如果音量水平阈值被设置为50%音量,并且对查询请求的响应指示音频输出设备的音量是40%,则可以确定音频输出设备没有发出足够大到触发vcd的音频。
72.如果确定音频输出设备不在发出音频(或者音频太安静而不能基于音量阈值触发vcd),则执行命令。这在步骤274中示出。如果确定音频输出设备正在输出音频(或者音频足够响以基于音量阈值触发vcd),则向音频输出设备请求音频样本。这在步骤275处示出。在一些实施例中,音频样本(例如,音频文件、音频片段等)对应于触发vcd的时间点。例如,可以请求包含vcd被触发的时间点的2-10秒的音频样本。然而,可以请求任何合适的音频样本长度(例如,过去的小时、天或vcd电源会话)。
73.然后,vcd接收所请求的音频文件。这在步骤276中示出。此外,还获得通过vcd获得的麦克风检测的音频文件。这在步骤277中示出。然后在步骤278处理音频文件以进行比较。在一些实施例中,处理可以包括清理音频文件(例如,从音频文件中去除静态和背景噪声)。在一些实施例中,处理可包括将音频文件(例如,来自音频输出设备的音频文件和从vcd麦克风获得的音频文件)截断为统一长度。在一些实施例中,处理可以包括放大音频文件。在一些实施例中,处理可以包括动态地调整音频文件的定时,使得音频文件中存在的单词被适当地对齐以用于比较。然而,在步骤278,可以以任何其他合适的方式处理音频文件。例如,在一些实施例中,音频文件被转换成文本(例如,使用常规的语音到文本转换),使得可以比较音频文件之间的文本(例如,抄本)。
74.然后,比较从音频输出设备获得的音频文件和在vcd麦克风处获得的音频文件。这在步骤279示出。在一些实施例中,使用快速傅立叶变换(fft)来比较音频文件。在音频文件
被转换成文本的实施例中,可以比较每个音频文件的抄本以确定每个抄本中的字符串是否匹配。在一些实施例中,文本抄本可被转换成语音表示以避免假肯定,其中单词听起来像命令但实际上不同。使用已知的字符串相似性和文本比较方法,可以说明检测中的轻微差异。
75.然后确定在从音频输出设备接收的音频文件和在vcd麦克风获得的音频文件之间是否存在匹配。这在步骤280中示出。在实施例中,可以基于一个或多个阈值来完成确定是否存在匹配。例如,如果经由fft比较音频文件,则可以存在匹配确定性阈值以便确定音频文件是否基本匹配。例如,如果匹配确定性阈值被设置为70%,如果fft比较指示60%相似性,则可以确定音频文件基本不匹配。作为另一示例,如果比较指示75%相似性,则可以确定音频文件确实基本匹配。
76.在音频文件被转换成文本并被比较的实施例中,匹配确定性阈值可以基于音频文件抄本中的匹配字符/单词的数量。例如,匹配确定性阈值可以指定每个抄本内的为了使音频文件基本匹配而需要匹配的字符的第一数量(例如,为了确定语音命令和音频输出设备的音频文件基本匹配,20个字符必须匹配)。作为另一个示例,匹配确定性阈值可以指定每个抄本内的为了使音频文件基本匹配而需要匹配的单词的数量(例如,为了确定语音命令和音频输出设备的音频文件基本匹配,5个单词必须匹配)。
77.如果存在匹配,则命令已经源自音频输出设备并且可以被忽略。这在步骤281中示出。如果不匹配,则可以处理和执行命令,因为声音是从音频输出设备之外的源发出的。这在步骤274中示出。
78.如果在步骤281忽略该命令,则该命令可被存储为被忽略的命令数据点,其具有时间和日期的时间戳以及所接收的语音输入的方向。该数据可以用于分析被阻挡的方向。此外,通过参考所存储的背景噪声数据点的时间和日期,该数据可用于分析设备是否仍然位于所阻挡方向。在将给定方向添加到被阻挡的方向之前,可存储来自该方向的阈值数量的未标识语音命令。
79.可以执行对与传入方向一起记录的有效语音命令、背景噪声输入、以及忽略或无效命令的存储数据点的分析,以学习被阻挡的方向,以及可选地,有效命令的共同方向。周期性的数据清除(例如,格式化和过滤)可以作为所存储的数据点的后台处理来执行。
80.可以存储数据点以允许该方法和系统更精确地识别噪声应当被忽略的方向。不管是否是命令,都可以忽略来自已知阻挡方向的不是来自所识别语音的噪声。
81.存储不同类型噪声的数据点允许进一步分析背景噪声,并因此给出关于阻挡哪些方向的更精细的辨别。例如,vcd可以从烤箱的方向接收烤箱蜂鸣声。随着时间的推移,可以分析背景噪声数据点以识别在该方向上的背景噪声数据点从未包括命令,或者来自给定方向的背景噪声数据点在音频内容方面非常相似。在这种情况下,可以允许来自该方向的命令。
82.vcd可以包括用户输入机构,以覆盖被阻挡的方向输入或覆盖命令的执行。该方法还可以从来自用户的这种覆盖输入中学习以改进性能。
83.这种方法假设vcd停留在同一房间的同一位置,这是经常发生的情况。如果vcd被移动到新的位置,则它可以重新学习其环境以识别对于非人类源相对于新位置处的vcd的阻挡方向。该方法可以存储相对于vcd的给定位置的被阻挡的方向,使得vcd可以被返回到先前的位置,并且重新配置被阻挡的方向而不用重新了解其环境。
84.在一些实施例中,该方法可以允许对已知的要被阻挡的方向的配置。这可以消除随时间推移而获知被阻挡的方向的需要或者除了随时间推移而获知被阻挡的方向之外,可以使得用户能够根据他们对可能从其接收到干扰音频的方向的了解来预先设置被阻挡的方向。
85.用户可以将vcd定位在一个位置,并且vcd可以允许输入以配置被阻挡的位置。这可以经由图形用户界面、经由远程编程服务等。在一个实施例中,可以通过用户站在要阻挡的角度(例如,在电视机前面)并且命令阻挡该方向,使用语音命令来执行被阻挡方向的配置。在另一个实施例中,可以加载房间的预先配置,并且如果移动vcd,则可以存储该预先配置以供使用。
86.使用图1所示的例子,vcd 120可以开始从电视114拾取命令,并且可以存储这些输入命令的方向。该方法然后可以过滤掉总是从相同方向发出的命令和背景噪声。来自该方向的不与通常给出来自其他方向的命令的语音一致的命令将被忽略。
87.所述方法的优点在于,与阻挡不是来自已知用户的所有命令的设备不同,vcd可以包括方向形式的附加级别的验证。当新用户到达vcd附近并发出命令时,vcd仍然可以执行命令,因为它来自于没有由于与静态音频发射对象相关联而被阻挡的方向。
88.所解决的技术问题是使设备能够识别声音是来自其他设备而不是人类用户。此外,本公开提供了通过向设备查询最近的音频样本来确定来自被阻挡方向的命令是音频输出设备的结果还是人类的结果的技术益处。
89.上述操作可以以任何顺序完成,并且不限于所描述的那些。另外,上述操作中的一些、全部或没有一个可以完成,而仍然保持在本公开的范围内。
90.图3是示出根据本公开的实施例的用于将音频文件传输到语音命令设备的示例方法的流程图。输出声音的音频输出设备,例如电视、收音机或移动设备,可以包括允许它们根据请求与vcd通信的软件组件(例如,具有网络接口控制器(nic)的智能扬声器或智能电视)。音频输出设备可能需要软件更新以包括该功能,并且音频输出设备也可能需要连接到与vcd相同的网络,例如用户的家庭wifi网络。
91.方法300由执行音频输出监控的音频设备开始。这在步骤301中示出。音频输出可以被缓冲一预定或配置的持续时间。这在步骤302中示出。例如,音频输出设备可以存储音频输出的最近的10秒、1分钟、5分钟等。
92.音频输出设备可以从vcd接收状态请求。这在步骤303示出。该请求可以与参考图2c的步骤275描述的请求相同或基本相似。在实施例中,请求可以查询音量状态和/或功率状态。音频输出设备可以用状态回复来确认该请求。这在步骤304中示出。状态回复可以包括音量状态和/或功率状态数据。如果vcd基于状态回复确定音频输出设备正在输出音频,则可以从vcd接收对音频输出样本的请求。这在步骤305中示出。在一些实施例中,如果音频输出设备正在发出音频,则它可以自动地将最近缓冲的音频输出以音频文件的形式发送到vcd。这在步骤306中示出。在一些实施例中,音频输出设备可以等待从vcd接收音频样本请求,然后将缓冲的音频文件传输到vcd。
93.上述操作可以以任何顺序完成,并且不限于所描述的那些。另外,上述操作中的一些、全部或没有一个可以完成,而仍然保持在本公开的范围内。
94.参照图4,示出了根据本公开的实施例的vcd 420的框图。vcd 420可以与图1中描
述的vcd 120相同或基本上类似,在实施例中,vcd 420内描绘的组件可以是被配置为由处理器执行的处理器可执行指令。
95.vcd 420可以是包括至少一个处理器401的专用设备或多用途计算设备的一部分,该处理器可包括硬件模块或用于执行所描述的组件的功能的电路,该组件可以是在至少一个处理器401上执行的软件单元。可以提供运行并行处理线程的多个处理器,以使得能够并行处理组件的一些或全部功能。存储器402可以被配置为向至少一个处理器401提供计算机指令403以执行组件的功能。
96.vcd 120可以包括用于vcd的已知功能的部件,所述vcd的已知功能取决于设备的类型和已知的语音处理。在实施例中,vcd 420包括语音输入接收器404,其包括被配置成阵列以从相对于vcd 420的不同方向接收语音输入的多个(例如,两个或更多个)麦克风。在语音输入接收器404的多个麦克风处接收的此音频可用于确定传入噪声的位置(例如,方向)。这可以通过三角测量或到达时间差来完成。
97.vcd 420可以包括vcd的现有软件形式的命令处理系统406,用于接收和处理语音命令。此外,可以提供语音命令识别系统410,用于确定要阻挡的方向,并识别来自被阻挡方向的命令。vcd 420可进一步包括语音命令区分系统440,其被配置为将来自处于被阻挡方向的已知音频输出设备的语音输入与来自可能来自未知或未注册用户的真实语音输入命令区分开来。
98.包括语音命令识别处理的vcd软件可以在本地提供给vcd 420或计算设备,或者可以作为远程服务通过网络提供,例如作为基于云的服务。语音命令识别系统410和语音命令区分系统440可以作为vcd软件处的可下载更新提供,或者可以作为网络上的单独附加远程服务提供,例如作为基于云的服务。远程服务还可以提供用于音频输出设备的应用或应用更新,以在音频输出设备处提供所描述的功能。
99.语音命令区分系统440可包括被阻挡方向组件421,用于访问由语音命令识别系统410提供的vcd 420的位置的背景语音噪声的一个或多个存储的被阻挡方向。语音命令识别系统410可以维护具有相关联的音频输出设备的被阻挡的方向的数据存储430,包括所存储的用于音频输出设备的通信信道。
100.语音输入接收器404可以被配置为在该位置处的vcd 420处接收语音输入,并且确定语音输入是从被阻挡的方向接收的。
101.语音命令区分系统440可以包括识别组件423,用于通过参考数据存储430来识别与被阻挡的方向相关联的音频输出设备。识别组件423可以经由三角测量或到达时间差来确定位于被阻挡方向上的设备。
102.语音命令区分系统440可以包括查询组件424,其被配置为查询所识别的音频输出设备的状态,以确定其当前是否正在发出音频输出,并且如果其当前正在发出音频输出,则从音频输出设备获得最新音频输出的音频文件。查询组件424包括被配置成向一个或多个设备请求一个或多个状态(例如,音量或功率状态)的状态请求组件425。查询组件424还包括音频确定组件426,用于确定所查询的音频设备是否正在发出音频(例如,基于音量/功率状态)。在一些实施例中,查询组件424包括实现一个或多个阈值以确定音频输出设备是否正发出音频的阈值组件427。例如,阈值组件427可以被配置为设置用于确定设备是否正在发出音频的音量阈值。查询组件可包括用于从音频输出设备接收状态的状态接收组件431。
103.查询组件424可以查询语音命令设备的范围内的所有音频输出设备的状态,以确定它们中的哪个当前正在发出音频输出。查询组件424可以获得在音频输出设备处缓冲的音频文件。
104.语音命令区分系统440可以包括音频文件获取组件432,用于从所查询的音频输出设备接收音频文件。可以将获得的音频文件与在语音输入接收器404处接收的语音输入进行比较。
105.语音命令区分系统440可以包括比较组件428,用于将所获得的音频文件与所接收的语音输入进行比较。比较组件428可以包括处理组件429,用于处理所获得的音频文件和所接收的语音输入,以将音频文件和语音输入转换成文本,并将文本表示为用于比较的语音串。然而,处理组件429可以任何其他合适的方式(例如,修改音频文件的振幅、长度等)来处理音频文件。
106.语音命令区分系统440可以包括语音输入忽略组件433,用于如果存在与获得的音频文件的基本匹配则忽略接收的语音输入。
107.语音命令区分系统440还可包括移动设备交互组件460。移动设备交互组件460可以被配置为将数据存储430中存储的被阻挡的方向与附近的移动设备同步。此外,移动设备交互组件460还可以被配置为从移动设备接收信号,使得vcd 420可以随着时间存储相应移动设备的更新位置。在实施例中,移动设备交互组件460可以将存储在数据存储430内的其他vcd数据传输到附近的移动设备,诸如语音识别数据(例如,注册用户声纹)、背景噪声数据(例如,背景噪声的特性)和音频状态数据(例如,由查询组件424接收的)。
108.参考图5,示出了根据本公开的实施例的示例音频输出设备550的框图。在实施例中,音频输出设备550可以是任何合适的音频输出设备。例如,音频输出设备可以是图1中描述的电视114、收音机112或移动设备150,然而,音频输出设备550可以是智能手表、移动设备、扬声器、语音命令设备、计算机系统(例如,膝上型计算机、台式计算机等)或任何其他合适的音频输出设备。
109.音频输出设备550可以是具有音频输出并且具有至少一个处理器551的任何形式的设备,该处理器可以是硬件模块或者用于执行所描述的组件的功能的电路,该组件可以是在至少一个处理器551上执行的软件单元。可以提供运行并行处理线程的多个处理器,以使得能够并行处理组件的一些或全部功能。存储器552可以被配置为向至少一个处理器551提供计算机指令553以执行组件的功能。
110.音频输出设备550包括音频输出提供系统560形式的软件组件,其允许它在收到vcd的请求时与vcd(例如,vcd 120或vcd 420)通信。音频输出设备550可能需要软件更新以包括该功能,并且音频输出设备550也可能需要连接到与vcd相同的网络,诸如用户的家庭wifi网络。
111.音频输出提供系统560可以包括用于监视音频输出设备550的音频输出的监视组件561以及用于在缓冲器563中缓冲预定义持续时间的最近音频输出的缓冲组件562。
112.音频输出提供系统560可以包括状态组件564,用于向查询vcd发送状态回复以确定音频输出设备550当前是否正在发出音频输出。
113.音频输出提供系统560可以包括音频文件组件565,用于在音频输出设备当前发出音频输出的情况下向vcd发送音频文件。所发送的音频文件可以是从音频输出设备550的缓
冲器563输出的最新缓冲的音频。
114.现在参考图6,示出了根据本公开的实施例的用于在vcd附近的移动设备(例如,图1的移动设备150)处进行语音命令过滤的示例方法600的流程图。
115.方法600在步骤605开始,其中与vcd(例如,图1的vcd 120或图4的vcd 420)建立通信。这在步骤605示出。可以以任何适当的方式建立与vcd的通信,包括有线和无线网络连接。
116.然后从vcd接收vcd数据。这在步骤610中示出。vcd数据可以包括保持在vcd存储器内的任何数据,包括存储的被阻挡方向、语音识别数据、触发词数据、背景噪声的音频特性(例如,背景噪声的幅度、音高等)、与背景噪声相关联的上下文信息(例如,与背景噪声相关联的元数据)以及音频输出状态数据(例如,附近输出设备的音量/功率数据)。
117.然后在移动设备处接收命令。这在步骤615中示出。可以响应于触发词的表达而接收命令。然后确定移动设备是否具有方向分析能力。这在步骤620中示出。如果移动设备具有方向分析能力(例如,移动设备被配置为执行三角测量),则确定命令是否是从被阻挡的方向接收到的。这在步骤625中示出。这可以基本上类似于图2b的步骤256来完成。如果命令不是从被阻挡的方向接收到的,则在步骤650执行该命令。如果命令是从被阻挡的方向接收到的,则确定命令是否是识别的语音。这在步骤645示出。确定命令是否在识别的语音中可以基本上类似于图2b的步骤254来完成。如果命令是识别的语音,则在步骤650执行命令。如果命令不是识别的语音,则忽略该命令。这在步骤640示出。
118.如果确定移动设备不具有方向分析能力,那么分析声音且将其与背景噪声源的细节进行比较。这在步骤630示出。在步骤610接收的vcd数据可以包括vcd定期接收的背景噪声的音频特性。可以将背景噪声的音频特性与当前接收的音频数据进行比较,以确定是否存在匹配。基于在步骤630完成的比较来确定背景噪声是否可能。这在步骤635中示出。例如,如果音频特性的频率、幅度、音调等匹配当前接收的音频的频率、幅度、音调等,则可以确定该音频可能是背景噪声。
119.在一些实施例中,当确定背景噪声是否可能时,可以考虑上下文信息(例如,一天中的时间)。例如,可以将与在步骤610处接收的背景噪声相关联的元数据与在移动设备处当前接收的音频的元数据进行比较,以确定背景噪声是否可能。在一些实施例中,当确定背景噪声是否可能时,可以共同考虑上下文信息以及音频数据。
120.如果确定背景噪声是可能的(例如,存在基本匹配,这可以基于阈值),则在步骤640忽略该命令。如果确定不可能存在背景噪声,则在步骤645确定是否以识别的语音接收到命令。如果命令是识别的语音,则在步骤650执行命令。如果该命令不是识别的语音,则在步骤640忽略该命令。
121.上述操作可以以任何顺序完成,并且不限于所描述的那些。另外,上述操作中的一些、全部或没有一个可以完成,而仍然保持在本公开的范围内。
122.图7是示出根据本公开的实施例的用于以移动设备的位置来更新vcd以使得移动设备可被添加到被阻挡的方向的示例方法700的流程图。
123.方法700开始于步骤705,在该步骤中与vcd建立通信。然后从移动设备发送音频音调以通知背景噪声源。这在操作710处示出。该音调可以具有任何合适的振幅或频率。vcd然后执行方向分析,使得移动设备的位置可被存储为被阻挡方向。这在操作715处示出。可以
如上文关于图1-6所述执行方向分析。移动设备然后改变位置。这在操作720处示出。然后重新发出音频音调以将新位置作为潜在背景噪声源进行通知。这在操作725处示出。确定是否从该位置(例如,操作720处的位置)处的移动设备接收到命令。
124.如果是从该位置接收到的,则可以忽略该命令。这在操作735处示出。如果命令不是从该位置接收到的,则确定移动设备是否离开附近。这在操作740处示出。可以基于vcd和移动设备之间的切断的通信链路来完成确定移动设备是否离开附近。在一些实施例中,确定移动设备是否离开附近可以基于移动设备的位置数据(例如,全球定位系统(gps)数据)来完成。如果确定设备离开附近,则从vcd的存储器中移除被阻挡的方向。这在操作745处示出。如果确定设备没有离开vcd的附近,则方法700返回到操作730,其中在vcd处连继续监视命令。
125.上述操作可以以任何顺序完成,并且不限于所描述的那些。另外,上述操作中的一些、全部或没有一个可以完成,而仍然保持在本公开的范围内。
126.现在参考图8,示出了根据本公开的实施例的示例计算机系统801(例如,图1的vcd 120、图4的vcd 420、图5的音频输出设备550)的高级框图,该示例计算机系统可以用于实现本文描述的方法、工具和模块中的一个或多个以及任何相关功能(例如,使用计算机的一个或多个处理器电路或计算机处理器)。在一些实施例中,计算机系统801的主要组件可以包括一个或多个cpu 802、存储器子系统804、终端接口812、存储接口814、i/o(输入/输出)设备接口816和网络接口818,所有这些都可以直接或间接地通信耦合,以便经由存储器总线803、i/o总线808和i/o总线接口单元810进行组件间通信。
127.计算机系统801可以包含一个或多个通用可编程中央处理单元(cpu)802a、802b、802c和802d,在此统称为cpu 802。在一些实施例中,计算机系统801可以包含相对大的系统的典型的多个处理器;然而,在其他实施例中,计算机系统801可以替代地是单cpu系统。每个cpu 802可以执行存储在存储器子系统804中的指令,并且可以包括一级或多级板载高速缓存。
128.系统存储器804可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)822或高速缓冲存储器824。计算机系统801还可以包括其他可移动/不可移动、易失性/非易失性计算机系统存储介质。仅作为示例,存储系统826可被提供用于从诸如“硬盘驱动器”等不可移动、非易失性磁介质中读取和向其写入。尽管未示出,但是可以提供用于从可移动、非易失性磁盘(例如,“usb拇指驱动器”或“软盘”)读取和向其写入的磁盘驱动器,或者用于从诸如cd-rom、dvd-rom或其他光学介质等可移动、非易失性光盘读取或向其写入的光盘驱动器。另外,存储器804可以包括闪存,例如,闪存棒驱动器或闪存驱动器。存储器设备可以通过一个或多个数据介质接口连接到存储器总线803。存储器804可以包括至少一个程序产品,该程序产品具有一组(例如,至少一个)程序模块,这些程序模块被配置成用于执行不同实施例的功能。
129.一个或多个程序/实用程序828,每个程序/实用程序具有至少一组程序模块830,可以存储在存储器804中。程序/实用程序828可包括系统管理程序(也称为虚拟机监视器)、一个或多个操作系统、一个或多个应用程序、其他程序模块和程序数据。操作系统、一个或多个应用程序、其他程序模块和程序数据或其某种组合中的每一个可包括联网环境的实现。程序828和/或程序模块830一般执行各实施例的功能或方法。
130.在一些实施例中,计算机系统801的程序模块830包括语音命令区分模块。语音命令区分模块可以被配置为从一个或多个音频输出设备访问背景语音噪声的一个或多个被阻挡的方向。语音命令区分模块还可以被配置为接收语音输入并确定是否从被阻挡的方向接收到该语音输入。语音命令区分模块可以被配置为查询音频设备的状态以确定其是否正在发出音频。响应于确定音频输出设备正在发出音频,语音命令区分模块可以被配置为从音频输出设备收集音频样本。然后,语音识别模块可以比较音频样本和语音命令,并且如果音频样本和语音命令基本匹配,则忽略语音命令。
131.在实施例中,计算机系统801的程序模块830包括语音命令过滤模块。语音命令过滤模块可被配置为从vcd接收vcd数据。语音命令模块可被配置为确定是否从vcd数据内记录的被阻挡的方向接收到语音命令。如果从vcd数据内记录的阻挡方向接收到语音命令,则可以忽略该语音命令。
132.尽管存储器总线803在图8中被示为在cpu802、存储器子系统804和i/o总线接口810之间提供直接通信路径的单个总线结构,但是在一些实施例中,存储器总线803可以包括多个不同的总线或通信路径,其可以以各种形式中的任何形式来布置,诸如分层的点对点链路、星形或网状配置、多层总线、并行和冗余路径、或任何其他适当类型的配置。此外,虽然i/o总线接口810和i/o总线808被示为单个相应单元,但是在一些实施例中,计算机系统801可以包含多个i/o总线接口单元810、多个i/o总线808或两者。此外,虽然示出了将i/o总线808与通向各种i/o设备的各种通信路径分开的多个i/o接口单元,但是在其他实施例中,一些或所有i/o设备可以直接连接到一个或多个系统i/o总线。
133.在一些实施例中,计算机系统801可以是多用户大型计算机系统、单用户系统、或服务器计算机或具有很少或没有直接用户接口但从其他计算机系统(客户端)接收请求的类似设备。此外,在一些实施例中,计算机系统801可以被实现为台式计算机、便携式计算机、膝上型或笔记本计算机、平板计算机、袖珍计算机、电话、智能电话、网络交换机或路由器、或任何其他适当类型的电子设备。
134.注意,图8旨在描绘示例性计算机系统801的代表性主要组件。然而,在一些实施例中,各个组件可以具有比图8中所表示的更大或更小的复杂性,可以存在不同于图8中所示的组件或除了这些组件之外的组件,并且这些组件的数量、类型和配置可以改变。
135.应当理解,尽管本公开包括关于云计算的详细描述,但是本文所陈述的教导的实现不限于云计算环境。相反,本公开的实施例能够结合现在已知或以后开发的任何其他类型的计算环境来实现。
136.云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
137.特征包括:
138.按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
139.广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助
理pda)对云的使用。
140.资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。
141.迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。
142.可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。
143.服务模型如下:
144.软件即服务(saas):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
145.平台即服务(paas):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
146.基础架构即服务(iaas):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。
147.部署模型如下:
148.私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
149.共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。
150.公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
151.混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
152.云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。
153.现在参考图9,描绘了说明性云计算环境50。如图所示,云计算环境50包括云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点10,本地计算设备例如个人数字助理(pda)(例如vcd 120或vcd 420)或蜂窝电话54a(例如移动设备150)、台式计算机
54b、膝上型计算机54c和/或汽车计算机系统54n。节点10可以彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上文描述的私有云、社区云、公共云或混合云或其组合。这允许云计算环境50提供基础设施、平台和/或软件作为服务,云消费者不需要为其维护本地计算设备上的资源。应当理解,图9中所示的计算设备54a-n的类型仅旨在说明,并且计算节点10和云计算环境50可以在任何类型的网络和/或网络可寻址连接上(例如,使用web浏览器)与任何类型的计算机化设备通信。
154.现在参考图10,示出了由云计算环境50(图9)提供的一组功能抽象层。应当预先理解,图10中所示的组件、层和功能仅旨在说明,并且本公开的实施例不限于此。如所描绘的,提供了以下层和相应的功能:
155.硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:主机61;基于risc(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64;存储装置65;以及网络和网络组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
156.虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储器72;虚拟网络73,包括虚拟专用网络;虚拟应用和操作系统74;以及虚拟客户机75。
157.在一个示例中,管理层80可以提供以下描述的功能。资源供应81提供用于在云计算环境内执行任务的计算资源和其他资源的动态采购。计量和定价82提供了在云计算环境中利用资源时的成本跟踪,以及用于消耗这些资源的开帐单或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户83为消费者和系统管理员提供对云计算环境的访问。服务级别管理84提供云计算资源分配和管理,使得满足所需的服务级别。服务级别协议(sla)规划和履行85提供对云计算资源的预安排和采购,其中根据sla预期未来需求。
158.工作负载层90提供了可以利用云计算环境的功能的示例。可以从该层提供的工作负载和功能的示例包括:绘图和导航91;软件开发和生命周期管理92;虚拟教室教育传送93;数据分析处理94;交易处理95;以及语音命令处理96。
159.如本文更详细地讨论的,可以设想,本文描述的方法的一些实施例的一些或所有操作可以以替代顺序执行或者可以根本不执行;此外,多个操作可以同时发生或作为更大工艺的内部部分发生。
160.本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),所述计算机可读程序指令用于使处理器执行本公开的方面。
161.计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式光盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码装置,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过
波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
162.本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如因特网、局域网、广域网和/或无线网络,下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
163.用于执行本公开的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言(例如smalltalk、c++等)以及常规的过程式编程语言(例如“c”编程语言或类似的编程语言)。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(lan)或广域网(wan),或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化,以便执行本公开的方面。
164.本文参考根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图图示和/或框图来描述本公开的方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
165.这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
166.计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
167.附图中的流程图和框图示出了根据本公开的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所注明的功能可不按图中所注明的次序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可
以由执行指定功能或动作或执行专用硬件和计算机指令的组合的基于专用硬件的系统来实现。
168.本文所使用的术语仅用于描述特定实施例的目的,且不希望限制各种实施例。如本文所用,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文另有明确指示。还将理解,术语“包括”和/或“包含”在本说明书中使用时,指定所陈述的特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或其群组的存在或添加。在各种实施例的示例实施例的先前详细描述中,参考了附图(其中相同的标号表示相同的元件),附图形成了本发明的一部分,并且其中通过图示示出了其中可以实践各种实施例的特定示例实施例。这些实施例被足够详细地描述以使本领域技术人员能够实践这些实施例,但是可以使用其他实施例,并且可以在不偏离各种实施例的范围的情况下做出逻辑、机械、电气和其他改变。在之前的描述中,阐述了许多具体细节以提供对各种实施例的透彻理解。然而,可以在没有这些具体细节的情况下实践各种实施例。在其他实例中,为了不使实施例模糊,没有详细示出公知的电路、结构和技术。
169.在本说明书中使用的词语“实施例”的不同实例不一定是指相同的实施例,但是它们可以是指相同的实施例。在此示出或描述的任何数据和数据结构仅是示例,并且在其他实施例中,可以使用不同的数据量、数据类型、字段的数量和类型、字段名、行的数量和类型、记录、条目或数据的组织。此外,任何数据都可以与逻辑组合,从而可以不需要单独的数据结构。因此,前面的详细描述不应被理解为限制性的。
170.已经出于说明的目的呈现了对本公开的各种实施例的描述,但是其并非旨在是穷举的或限于所公开的实施例。在不背离所描述的实施例的范围的情况下,许多修改和变化对于本领域的普通技术人员将是显而易见的。选择本文所使用的术语以最好地解释实施例的原理、实际应用或对市场上存在的技术改进,或使本领域的其他普通技术人员能够理解本文所公开的实施例。
171.尽管已经根据具体实施例描述了本公开,但是可以预期,其改变和修改对于本领域技术人员将变得显而易见。因此,意图是,所附权利要求被解释为覆盖落入本公开的范围内的所有这样的变更和修改。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1