利用语音识别识别联系人的制作方法

文档序号:14257163阅读:349来源:国知局

本发明涉及基于语音输入来识别联系人。



背景技术:

移动装置和车载信息娱乐(in-vehicleinfotainment,ivi)系统通常试图提供口头命令和其他输入的识别。然而,声音识别引擎识别罕见的名字和字的时候会很困难。例如,使声音识别系统识别异常拼写的名字会导致声音命令的误解。

本文中公开的系统和方法提供了一种用于识别声音命令中的名字的改进方法。



技术实现要素:

根据本发明的一方面,提供一种方法,包括由计算机系统执行下列步骤:

(a)根据折叠函数来计算多个第一字符串的第一折叠值;

(b)接收来自声音处理算法的两个或更多个第二字符串;

(c)根据折叠函数来计算两个或更多个第二字符串的第二折叠值;以及

(d)选择多个第一字符串中具有与其中一个第二折叠值匹配的相应第一折叠值的所选字符串。

根据本发明的一个实施例,折叠函数接收输入字符串并且提供输出字符串,用第一二进制值来表示输入字符串的辅音,并且用第二二进制值来表示元音。

根据本发明的一个实施例,折叠函数接收输入字符串并且提供输出字符串,用第一二进制值的单个实例来表示输入字符串中的连续辅音,并且用第二二进制值的单个实例来表示输入字符串中的连续元音。

根据本发明的一个实施例,方法进一步包括:

评估与两个或更多个第二字符串相关的元数据;

确定没有修正的字符串记录在关于两个或更多个第二字符串中的任何第二字符串的元数据中;以及

响应于确定没有修正的字符串记录在关于两个或更多个第二字符串中的任何第二字符串的元数据中而执行(c)和(d)。

根据本发明的一个实施例,接收来自声音处理算法的两个或更多个第二字符串包括:接收两个或更多个第二字符串中的每个第二字符串的置信度分数,方法进一步包括:

确定两个或更多个第二字符串中的所有第二字符串的置信度分数降到阈值之下;以及

响应于确定两个或更多个第二字符串中的所有第二字符串的置信度分数降到阈值之下而执行(c)和(d)。

根据本发明的一个实施例,(d)进一步包括:

确定多个第一折叠值匹配第二折叠值的一个或多个匹配的第二值;

(e)响应于确定多个第一折叠值匹配一个或多个匹配的第二值,对与多个第一折叠值相对应的一部分第一字符串进行过滤以获得经过滤的一组字符串;以及

(f)从经过滤的一组字符串中选择所选字符串。

根据本发明的一个实施例,对一部分第一字符串进行过滤包括:根据当前地理位置和接收到包括一部分第二字符串的命令的位置进行过滤。

根据本发明的一个实施例,对一部分第一字符串进行过滤包括:根据当前时间和接收到包括一部分第二字符串的命令的时间来过滤一部分第二字符串。

根据本发明的一个实施例,方法进一步包括:

确定多个折叠值的数量超过阈值;

响应于确定多个折叠值的数量超过阈值而执行(e)和(f)。

根据本发明的一个实施例,对一部分第一字符串进行过滤包括:根据与对应于一个或多个匹配的第二值的一部分第二字符串的文本相似度来对一部分第一字符串进行过滤。

根据本发明的一方面,提供一种系统,包括一个或多个处理装置和连接到一个或多个处理装置的一个或多个存储器,一个或多个存储器存储可执行代码,可执行代码起到使一个或多个处理装置执行下列操作的作用:

(a)根据折叠函数来计算多个第一字符串的第一折叠值;

(b)接收来自声音处理算法的两个或更多个第二字符串;

(c)根据折叠函数来计算两个或更多个第二字符串的第二折叠值;以及

(d)选择多个第一字符串中具有与其中一个第二折叠值匹配的相应第一折叠值的所选字符串。

根据本发明的一个实施例,折叠函数编程为接收输入字符串并且提供输出字符串,其中用第一二进制值来表示输入字符串的辅音,并且用第二二进制值来表示元音。

根据本发明的一个实施例,折叠函数编程为接收输入字符串并且提供输出字符串,其中用第一二进制值的单个实例来表示输入字符串中的连续辅音,并且用第二二进制值的单个实例来表示输入字符串中的连续元音。

根据本发明的一个实施例,可执行代码进一步起到使一个或多个处理器执行下列操作的作用:

评估与两个或更多个第二字符串相关的元数据;

只有当没有修正的字符串记录在关于两个或更多个第二字符串中的任何第二字符串的元数据中时才执行(c)和(d)。

根据本发明的一个实施例,可执行代码进一步起到使一个或多个处理器执行下列操作的作用:

接收来自声音处理算法的两个或更多个第二字符串包括:接收两个或更多个第二字符串中的每个第二字符串的置信度分数;

如果两个或更多个第二字符串中的所有第二字符串的置信度分数降到阈值之下,则执行(c)和(d)。

根据本发明的一个实施例,可执行代码进一步起到使一个或多个处理器按照下列操作执行(d)的作用:

如果多个第一折叠值匹配第二折叠值的一个或多个匹配的第二值,则:

(e)对与多个第一折叠值相对应的一部分第一字符串进行过滤以获得经过滤的一组字符串;以及

(f)从经过滤的一组字符串中选择所选字符串。

根据本发明的一个实施例,可执行代码进一步起到使一个或多个处理器执行下列操作的作用:通过根据当前地理位置和接收到包括一部分第二字符串的命令的位置进行过滤来对一部分第一字符串进行过滤。

根据本发明的一个实施例,可执行代码进一步起到使一个或多个处理器执行下列操作的作用:通过根据当前时间和接收到包括一部分第二字符串的命令的时间过滤一部分第二字符串来对一部分第一字符串进行过滤。

根据本发明的一个实施例,可执行代码进一步起到使一个或多个处理器执行下列操作的作用:如果多个折叠值的数量超过阈值,则执行(e)和(f)。

根据本发明的一个实施例,可执行代码进一步起到使一个或多个处理器执行下列操作的作用:通过根据与对应于一个或多个匹配的第二值的一部分第二字符串的文本相似度过滤一部分第一字符串来对一部分第一字符串进行过滤。

附图说明

将参考附图中所示的具体实施例来描述上面简述的本发明的更详细说明,以便将容易理解本发明的优点。要理解的是,这些附图仅描绘了本发明的典型实施例,因此不应视为对本发明范围的限制,将通过使用附图额外具体并且详细地描述和解释本发明,附图中:

图1为用来实现根据本发明实施例的系统和方法的环境的示意性框图;

图2为适合于实现根据本发明实施例的方法的示例计算装置的示意性框图;

图3为示出实现根据本发明实施例的方法的部件的示意性框图;

图4为根据本发明实施例的用于识别声音命令中的联系人的方法的流程图;

图5为根据本发明实施例的用于折叠字符串的方法的流程图;以及

图6为根据本发明实施例的用于过滤匹配的联系人的方法的流程图。

具体实施方式

参考图1,可实现本文中所述方法的环境100可包括具有车载信息娱乐(in-vehicleinfotainment,ivi)系统104的车辆102。ivi系统104可具有通用计算装置的一些或全部属性。ivi系统104可连接到可体现为触摸屏的屏幕106。一个或多个扬声器108可连接到ivi系统104。一个或多个麦克风110可连接到ivi系统104。

如本领域中已知的,ivi系统104可编程为提供用于选择要利用扬声器108回放的音频内容或者其他音频输出的界面。可从连接到ivi系统104的一个或多个音频内容源(例如收音机、光盘(compactdisc,cd)播放器等)中选择音频内容。ivi系统104可进一步在设置在车辆102内的屏幕106或者一个或多个其他屏幕上显示视频内容。ivi系统104可显示从一个或多个视频内容源(例如dvd(digitalvideodisk,数字化视频光盘)播放器、配对的移动装置或者其他视频数据源)中选择的视频内容。

ivi系统104可进一步连接到车辆102自身的一个或多个系统,并且能够显示关于车辆102的状态信息和接收改变车辆102自身的一个或多个系统的操作(例如气候控制、发动机运行参数等)的输入。

ivi系统104可实现声音控制系统,由此通过ivi系统104将麦克风110的输出解释成用于控制ivi系统104或者车辆102的一个或多个系统的操作的命令。例如,ivi系统104可实现fordsync(福特同步)声音控制系统。控制器可接收来自ivi系统104的控制输入并且提供输出以供在ivi系统104的屏幕106上显示。

车辆102一般运载驾驶员和一位或多位乘客。驾驶员或乘客可将移动装置112带进车辆102中。驾驶员或乘客的移动装置112可例如通过蓝牙(bluetooth)或者一些其他无线协议与ivi系统104进行配对。在一些实施例中,控制输入和内容可通过移动装置112来接收并且转发到ivi系统104。在这样的实施例中,移动装置112可实现声音控制系统并且包括用于接收输入和提供可听到的反馈的麦克风和扬声器。因此,虽然公开了本文中公开的方法是由ivi系统104来执行,但是这些方法也可利用移动装置112来实现。

在一些实施例中,ivi系统104可与服务器系统114进行通信。例如,ivi系统104可利用内置无线通信能力、移动装置112或者一些其他装置与服务器系统114进行通信。

蜂窝通信塔116的网络可促进与服务器系统114的通信。蜂窝通信塔116也可例如通过网络118与服务器系统114进行数据通信。网络118可包括局域网(localareanetwork,lan)、广域网(wideareanetwork,wan)、互联网以及任何其他有线或无线网络连接中的一些或全部。

在一些实施例中,本文中公开的一些或全部方法由服务器系统114来实现,其结果被传送到ivi系统104或者移动装置112。

图2为示出示例计算装置200的框图。计算装置200可用来执行各种程序(例如本文中所讨论的那些程序)。ivi系统104、移动装置112以及服务器系统114可具有计算装置200的一些或全部属性。

计算装置200包括全部连接到总线212的一个或多个处理器202、一个或多个存储器204、一个或多个接口206、一个或多个大容量存储装置208、一个或多个输入/输出(i/o)装置210以及显示装置230。处理器202包括执行存储在存储器204和/或大容量存储装置208中的指令的一个或多个处理器或控制器。处理器202还可包括各种类型的计算机可读介质(例如高速缓冲存储器)。

存储器204包括各种计算机可读介质,该计算机可读介质例如为易失性存储器(例如,随机存取存储器(randomaccessmemory,ram)214)和/或非易失性存储器(例如,只读存储器(read-onlymemory,rom)216)。存储器204还可包括可重写rom(例如闪速存储器)。

大容量存储装置208包括各种计算机可读介质(例如磁带、磁盘、光盘、固态存储器(例如,闪速存储器)等)。如图2中所示,特定的大容量存储装置为硬盘驱动器224。各种驱动器也可包含在大容量存储装置208中以能够实现从各种计算机可读介质读取和/或写入到各种计算机可读介质。大容量存储装置208包括可移除介质226和/或不可移除介质。

i/o装置210包括允许数据和/或其他信息被输入到计算装置200或者从计算装置200调取数据和/或其他信息的各种装置。示例的i/o装置210包括光标控制装置、键盘、小键盘、麦克风、监视器或者其他显示装置、扬声器、打印机、网络接口卡、调制解调器、透镜、电荷耦合元件(charge-coupleddevice,ccd)或者其他图像捕捉装置等。

显示装置230包括可将信息显示给计算装置200的一位或多位用户的任何类型的装置。显示装置230的示例包括监视器、显示终端、视频投影装置等。

接口206包括允许计算装置200与其他系统、装置或者计算环境进行交互的各种接口。示例的接口206包括任意数量的不同网络接口220,该网络接口220例如为到局域网(localareanetwork,lan)、广域网(wideareanetwork,wan)、无线网络以及互联网的接口。其他接口包括用户界面218和外围设备接口222。接口206还可包括一个或多个外围接口(例如用于打印机、定位装置(鼠标、触控板等)、键盘等的接口)。

总线212允许处理器202、存储器204、接口206、大容量存储装置208、i/o装置210以及显示装置230互相通信,也允许其与连接到总线212的其他装置或者部件进行通信。总线212表示几种类型的总线结构的一种或多种(例如,系统总线、外设部件互连(peripheralcomponentinterconnect,pci)总线、ieee1394总线、usb(universalserialbus,通用串行总线)总线等)。

为了举例说明的目的,程序和其他可执行程序部件在本文中显示为独立的框,尽管应当理解的是这样的程序和部件可能在不同时间驻留在计算装置200的不同存储部件中并且由处理器202来执行。可供选择地,本文中所述的系统和程序可在硬件或者硬件、软件和/或固件的组合中实现。例如,一个或多个专用集成电路(applicationspecificintegratedcircuit,asic)可编程为执行本文中所述的一个或多个系统和程序。

参考图3,所示的部件可用来实现根据本发明实施例的方法。麦克风的输出302(例如,麦克风110的输出的数字表示)可输入到语音识别模块304。语音识别模块304可由ivi系统104、移动装置112或者服务器系统114来执行。例如,输出302可传送到服务器系统114以进行声音分析,并且分析的结果返回到ivi系统104或者移动装置112。

语音识别模块304可为本领域中已知的任何语音识别算法,并且可为依赖于利用训练数据库被训练的机器学习模型306的机器学习算法。

语音识别模块304的处理结果可为一组候选字符串308。在本文中公开的示例中,对难以识别的名字的识别是特别有用的应用。因此,候选字符串308可为语音识别模块304估计为与记录在输出302中的语音相对应的名字。在一些实施例中,候选字符串308可各自具有指示候选字符串为输出302的正确解释的可能性的置信度分数(例如0到1之间的值),较大的值指示最大的确定性。在一些实施例中,候选字符串308可为具有超过阈值和/或最高的n分(例如3-10分)的置信度分数的那些字符串。

在一些实施例中,可使用两个阈值:指示成功解释的第一阈值和指示低置信度但可能相关的结果的第二阈值。因此,候选字符串可包括满足第一阈值的单个成功候选字符串或者满足第二阈值但不满足第一阈值的多个候选字符串。

例如,当候选字符串308具有低于第一阈值的置信度分数时,候选字符串308可输入到逻辑模块310。逻辑模块310可执行图4的方法。逻辑模块310的输出可包括结果312,结果312是被确定为与输出302对应的可能性高的字符串。

逻辑模块310可存储用户的联系人314以及关于用户的联系人和由逻辑模块310处理的其他字符串的元数据。如下面关于图4所述的,元数据可由逻辑模块310使用和更新。

参考图4,所示的方法400可由逻辑模块310来执行。如上面所记载的,方法400的步骤可由ivi系统104、移动装置112或者服务器系统114来执行,或者可分布在这些装置当中。

方法400可包括:接收402一个或多个候选字符串308和对应于一个或多个候选的每一个的置信度分数,以及评估404一个或多个候选中的任何候选是否匹配用户(即作为方法400的主体的用户)的联系人。候选集合可为包含在联系人和元数据314中的联系人的集合。联系人可存储在ivi系统104、移动装置112中或者在可访问服务器系统114或一些其他计算装置的用户的账户中。

如果是,则方法400可包括评估406已知的修正是否存储在关于匹配的候选的元数据中。特别是,联系人和元数据314可存储字符串和关于字符串的元数据,在这种情况下,字符串可包括联系人和已根据方法400评估的候选308。关于字符串的元数据可包括对该字符串的任何修正(即呈现出了该字符串但用户最终选择了不同的字符串作为期望输出的情况的记录)。因此,不同的字符串可作为修正存储在关于该字符串的元数据中,因此,方法400可包括评估406关于匹配的联系人的元数据是否指示不同的联系人。

例如,对于每个联系人或根据方法400处理的候选字符串,可存储<contactorcandidatestring>、<list_of_corrections>、<collapsed_form>、<successes>、<failures>的形式的数据结构。如下所述,可根据方法400更新这些值。

如果发现步骤404的匹配的联系人的数据结构在<list_of_corrections>中包含一个或多个值,则方法400可包括将<list_of_corrections>字段中的一个或多个字符串呈现408给用户。在一些实施例中,步骤408可包括呈现多个选项以供用户从例如在步骤404识别出的一些或全部匹配的联系人、匹配的联系人的<list_of_corrections>字段中的值以及可能还有一个或多个其他字符串(例如在步骤402接收到的一个或多个其他候选字符串)中进行选择。

步骤408可进一步包括存储该选择。例如,如果选择了<list_of_corrections>中的字符串,则该选择可用来增加对元数据中的该字符串的修正次数。如果在步骤408选择了另一个字符串或者用户输入了另一个字符串,则该值可存储在匹配的联系人的数据结构的<list_of_corrections>字段中。

如果不存在在步骤406发现的<list_of_corrections>中的值,则方法400可包括评估410在步骤404发现匹配的候选的置信度分数是否超过阈值(例如,第一阈值)。如果是,则可将匹配的联系人返回412给用户和/或用于执行命令。在一些实施例中,步骤410可包括评估匹配的联系人的<successes>和<failures>字段。如果<successes>超过成功阈值,<failures>低于失败阈值,和/或<successes>与<failures>的比值超过比值阈值,则可确定410对于匹配的联系人置信度高。在一些实施例中,用户可提供指示匹配的联系人是正确解释或者不是正确解释的输入。该输入可记录在关于匹配的联系人的元数据中。例如,如果用户确认结果是正确的,则可增加匹配的联系人的数据结构中的<successes>字段。如果不是,则可增加<failures>字段。

如果在步骤404没有发现匹配的联系人,则方法400可包括评估414对于在步骤402接收到的任何候选字符串是否存储了任何数据结构,以及已知的修正是否记录在这些数据结构中的任何数据结构的<list_of_corrections>中。如果是,则已知的修正将返回416给用户和/或用来执行命令。在多个候选字符串在元数据中具有已知的修正的情况下,步骤416可包括将多个已知的修正返回给用户并且接收对这些修正的其中之一的选择。所选择的已知的修正的修正次数可响应于用户对其的选择而增加。

如果在步骤414没有发现已知的修正或者没有发现410置信度分数满足第一阈值,则可执行进一步的处理以尝试识别联系人。

例如,方法400可包括折叠418候选字符串。参考图5,折叠字符串可包括用1代替502每个辅音并且用0代替504每个元音。在一些实施例中,压缩可包括用单个1代替506连续的1并且用单个0代替508连续的0。例如,名字“peter”将变成“10101”。替代的拼写(例如“pieter”)在步骤502和步骤504之后将变成“100101”,并且在步骤506和步骤508之后将变成“10101”。在另一个示例中,法国名字“thibault”的发音与“tebow”恰好相同。这些名字的折叠的值相同:“thibault”->11010011->10101以及“tebow”->10101。

在一些实施例中,步骤502至步骤508可不作为独立的步骤来执行。例如,当遇到辅音或元音时,输出字中的位(bit)的位置可设置为1或0,并且直到遇到相反的字符类型才设置下一个位的位置。通过这种方式,辅音的字符串将致使设置单个位值,并且根据步骤502至步骤504,不存在多个连续辅音和元音的多个位的中间存储。

返回到图4,在折叠418之后,可将候选字符串的折叠形式与用户的联系人的折叠形式(即用户的联系人的数据结构中的<collapsed_form>字段)进行比较420。如果没有候选字符串的折叠形式匹配422用户的联系人的任何折叠形式,则可报告424失败。可将<collapsed_form>值存储在元数据中所表示的每个联系人和其他字符串的数据结构中。通过这种方式,可减少根据方法400的计算。折叠的值的比较也简化了计算,这能够在不需要复杂的文本和语音分析的情况下识别匹配。在其他实施例中,根据需要,在执行方法400期间计算联系人和先前处理的字符串的折叠形式。

如果发现422匹配,并且发现426匹配数小于匹配阈值,则可将折叠形式与一个或多个候选字符串的折叠形式匹配的联系人作为可能的匹配返回430给用户和/或用作命令的输入。如果发现432用户选择在步骤430报告的其中一个联系人,则方法400可包括更新434关于折叠形式与所选择的联系人匹配的一个或多个候选字符串的元数据以在<list_of_corrections>中列出所选择的联系人,或者如果所选择的联系人已存在于该一个或多个候选字符串的<list_of_corrections>中,则可增加联系人的修正次数。

如果没有发现432用户具有在步骤430呈现的所选择的其中一个联系人,则可更新436失败元数据。例如,对于在步骤422识别出的具有匹配的折叠形式的每个候选字符串,可增加<failures>字段。

如果发现426折叠形式与候选字符串的折叠形式匹配的联系人数超过匹配阈值,则可对匹配的联系人进行过滤428。可根据图6的方法600或者一些其他过滤标准来执行过滤428。然后可在步骤430报告过滤428之后剩余的匹配的联系人,并且可继续进行如上所述的处理。

参考图6,所示的方法600可用来选择折叠形式与候选字符串的折叠形式匹配的联系人的子集。

方法600可进一步包括根据与折叠形式与匹配联系人的折叠形式匹配的候选字符串的文本相似度来对匹配的联系人进行过滤602。可利用任何文本相似度度量标准(例如字符串编辑距离或其他方法)。过滤602可包括去除相对于超过某个阈值度量值的任何候选字符串不具有相似度度量的联系人。

方法600可包括根据位置对联系人进行过滤604。例如,关于联系人的元数据可记录当与该联系人进行通信(打电话、发短信、发电子邮件)时用户的位置(例如,x%(例如90%)的通信所发生在的区域)。因此,过滤604可包括去除不具有包含在执行方法600期间车辆102或移动装置114的当前位置的区域的匹配联系人。

方法600可包括根据时间对匹配的联系人进行过滤606。例如,关于联系人的元数据可记录与该联系人进行通信(打电话、发短信、发电子邮件)的时间窗口(例如,x%(例如90%)的通信所发生在的一天中的时间)。该元数据可存储反映在不同日期或不同类型的日期(一周中的特定日期、工作日、周末)何时进行通信的单独的时间窗口。因此,过滤606可包括去除不具有包含正在执行方法600的当前时间的时间窗口的匹配联系人。在维持特定日期窗口的情况下,过滤606可包括去除不具有在与一周中的当前日期或一类日期(周末或工作日)对应的时间窗口内的当前时间的匹配。

图6公开了可以以各种方式结合的多个过滤步骤602至606。例如,至一个过滤步骤的输入可为在先前的过滤步骤之后剩余的那些联系人。可供选择地,每个过滤步骤可产生分配给每个联系人的分数。例如,如果满足过滤标准,则为1,或者如果联系人不满足过滤标准,则为0。可供选择地,步骤604、606的分数可为随着当前位置与联系人的区域的接近度或者当前时间与适当的时间窗口(例如,联系人的特定日期时间窗口)的接近度而增加的值。对于步骤602,该分数可为文本相似度度量。

对于每个联系人,可对根据过滤步骤602至606的分数进行求和、加权并求和或者以其他方式结合以确定每个联系人的最终分数。可选择具有最高n(例如,2、3或4)最终分数的联系人或者具有超过阈值的最终分数的联系人作为过滤处理之后的剩余联系人。

在一些实施例中,根据在步骤602按照文本相似度进行的过滤来选择联系人的子集。然后可根据步骤604、606来处理该子集,步骤604、606可包括分配分数以及通过上述方式根据最终分数进行选择,该最终分数为来自步骤604、606的分数的结合。

在以上公开中,已参考构成本发明一部分的附图,并且在附图中通过举例说明的方式示出了可实践本发明的具体实施方式。应该理解的是,可利用其他实施方式,并且在不脱离本发明的范围的情况下可做出结构变化。说明书中对“一个实施例”、“实施例”、“示例实施例”等的引用表明所述的实施例可包括特定特征、结构或者特点,但是每个实施例可不必包括该特定特征、结构或者特点。而且,这种措词未必指的是相同的实施例。进一步地,当与实施例有关地描述特定特征、结构或者特点时,主张的是,不论是否做出明确的描述,影响与其他实施例有关的该特征、结构或者特点是在本领域技术人员的认知内。

本文中所公开的系统、装置以及方法的实施方式可包括或者利用包括计算机硬件的专用或者通用计算机,比如,像本文中所讨论的,该计算机硬件为例如一个或多个处理器和系统存储器。本发明范围内的实施方式还可包括用于携带或者存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。该计算机可读介质可为能够由通用或者专用计算机系统来存取的任何可用的介质。存储计算机可执行指令的计算机可读介质为计算机存储介质(装置)。携带计算机可执行指令的计算机可读介质为传输介质。因此,通过举例并且不受限制的方式,本发明的实施方式可包括至少两种明显不同类型的计算机可读介质:计算机存储介质(装置)和传输介质。

计算机存储介质(装置)包括随机存取存储器(random-accessmemory,ram)、只读存储器(read-onlymemory,rom)、电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、光盘只读存储器(compactdiscread-onlymemory,cd-rom)、固态驱动器(solidstatedrive,“ssd”)(例如,基于随机存取存储器)、闪速存储器、相变存储器(phase-changememory,“pcm”)、其他类型的存储器、其他光盘存储装置、磁盘存储装置或者其他磁性存储装置,或者能够用来存储计算机可执行指令或者数据结构形式的期望程序代码手段并且能够由通用或者专用计算机来存取的任何其他介质。

本文中所公开的装置、系统以及方法的实施方式可通过计算机网络进行通信。“网络”定义为能够实现电子数据在计算机系统和/或模块和/或其他电子装置之间进行传输的一条或多条数据链路。当通过网络或者另外的通信连接(硬连线、无线或者硬连线或无线的结合)向计算机传递或者提供信息时,该计算机将该连接适当地视为传输介质。传输介质可包括网络和/或数据链路,其能够用来携带计算机可执行指令或者数据结构形式的期望程序代码手段并且能够由通用或者专用计算机来存取。以上所述的组合也应该包含在计算机可读介质的范围内。

计算机可执行指令包括例如当在处理器执行时使通用计算机、专用计算机或者专用处理装置执行某个功能或者功能组的指令和数据。计算机可执行指令可为例如二进制数、中间格式指令(例如汇编语言)乃至源代码。尽管以特定于结构特征和/或方法动作的语言描述了本发明的主题,但是应该理解的是,所附权利要求中限定的主题未必受限于上文描述的所述特征或者动作。相反,所述特征和动作被公开为实施权利要求的示例形式。

本领域的技术人员将领会的是,可在具有多种计算机系统配置的网络计算环境中实践本发明,该计算机系统配置包括内置式车辆计算机、个人计算机、台式计算机、膝上型计算机、消息处理器、手持式装置、多处理器系统、基于微处理器的或者可编程的消费电子产品、网络个人计算机(personalcomputer,pc)、小型计算机、大型计算机、移动电话、个人数字助理(personaldigitalassistant,pda)、平板电脑、寻呼机、路由器、交换机、各种存储装置等。还可在分布式系统环境中实践本发明,在该分布式系统环境中,经由网络(通过硬连线数据链路、无线数据链路或者通过硬连线数据链路和无线数据链路的结合)连接起来的本地和远程计算机系统都执行任务。在分布式系统环境中,程序模块可位于本地和远程存储装置中。

进一步地,在适当的情况下,本文中所述的功能可在硬件、软件、固件、数字部件或者模拟部件的一个或多个中执行。例如,一个或多个专用集成电路(applicationspecificintegratedcircuit,asic)可编程为实现本文中所述的一个或多个系统和程序。某些术语在说明书和权利要求书中始终用来指特定的系统部件。如本领域的技术人员将领会的,可用不同的名称指称部件。本文并非意在区分名称不同而不是功能不同的部件。

应该注意的是,上文所讨论的传感器实施例可包括用来执行其至少一部分功能的计算机硬件、软件、固件或其任意组合。例如,传感器可包括配置成在一个或多个处理器中执行的计算机代码,并且可包括由该计算机代码控制的硬件逻辑/电气电路。本文中提供这些示例装置的目的是为了举例说明,而非意在做出限制。如相关技术领域的技术人员将已知的,本发明的实施例可在更多类型的装置中实现。本发明的至少一些实施例是针对包括存储在任何计算机可用介质上的这种逻辑(例如,以软件的形式)的计算机程序产品。当在一个或多个数据处理装置中执行时,这种软件使装置像本文中描述的那样运行。

用于执行本发明的操作的计算机程序代码可以用一种或多种编程语言的任何组合来编写,该编程语言包括面向对象的编程语言(例如java、smalltalk、c++等)和传统过程化编程语言(例如“c”编程语言或类似的编程语言)。程序代码可完全在作为独立软件包的计算机系统上执行,在独立硬件单元上执行,部分在与计算机间隔一定距离的远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种场景中,远程计算机可以通过包括局域网(localareanetwork,lan)或广域网(wideareanetwork,wan)在内的任何类型的网络连接到计算机,或者与外部计算机的连接可以(例如,利用互联网服务提供商通过互联网)来进行。

以上参考根据本发明实施例的方法、设备(系统)以及计算机程序产品的流程图和/或框图描述了本发明。要理解的是,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可由计算机程序指令或代码来实现。这些计算机程序指令可提供到通用计算机、专用计算机或者其他可编程数据处理设备的处理器以制造机器,使得经由计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现流程图和/或框图的一个框或多个框中规定的功能/动作的方法。

这些计算机程序指令还可存储在可引导计算机或其他可编程数据处理设备以特定方式工作的非暂时性计算机可读介质中,使得存储在该计算机可读介质中的指令生产包括指令手段的制品,此指令手段实现流程图和/或框图的一个框或多个框中规定的功能/动作。

计算机程序指令还可加载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的过程,使得在计算机或其他可编程设备上执行的指令提供用于实现流程图和/或框图的一个框或多个框中规定的功能/动作的过程。

虽然上文已描述了本发明的各种实施例,但是应该理解的是,这些实施例只是通过示例的方式来呈现,而并非是限制性的。对相关技术领域的技术人员而言,将显而易见的是,在不脱离本发明的精神和范围的情况下,能够对本发明做出各种形式和细节上的改变。因此,本发明的广度和范围不应该受到上述任何示范性实施例的限制,而是应该只根据如下权利要求及其等同范围来限定。呈现前文的描述是为了阐述和说明。其并非意在穷举或者将本发明限制成所公开的确切形式。根据上文的教导可做出很多修改和变化。进一步地,应该注意的是,可通过期望用来形成本发明额外的混合实施方式的任何组合来使用任何或者所有前述替代实施方式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1