用于数据内的共同元素的自主检测和分离的系统以及与之关联的方法和设备的制作方法

xiaoxiao2020-7-22  13

用于数据内的共同元素的自主检测和分离的系统以及与之关联的方法和设备的制作方法
【专利摘要】一种数据解释和分离系统,用于识别数据集内具有共同特征的数据元素,并将那些数据元素与不共有这样的共同特征的其它数据元素分离。与数据集内的改变的方法和/或速率有关的共同性可以用于确定哪些元素共有共同特征。确定共同性可以通过参考数据集内的数据元素而被自主地执行,并且不需要与算法的或预定的限定匹配。经解释和分离的数据可以用于重构仅包括分离的数据的输出。这样的重构可以是无损的。经解释和分离的数据也可以用于回溯地建立与特定源相关联的现有元素集。
【专利说明】用于数据内的共同元素的自主检测和分离的系统以及与之
关联的方法和设备
[0001]本申请要求2011年3月3日提交的标题为“DATA PATTERN RECOGNITION ANDSEPARATION ENGINE”的美国专利申请N0.13/039, 554的部分继续申请的优先权和益处。本申请还要求2012年2月28日提交的标题为“SYSTEM FOR AUTONOMOUS SEPARATION OFCOMMON ELEMENTS WITHIN DATA, AND METHODS AND DEVICES ASSOCIATED THEREWITH” 的美国临时专利申请N0.61/604,343的优先权和益处。这些申请通过引用被全部明确地结合于此。
【技术领域】
[0002]本公开涉及数据解释和分离。更具体地,本公开的实施例涉及用于检测数据集内的模式并可选地相对于数据集内的其它元素分离匹配所述模式的元素的软件、系统和设备。在一些实施例中,可以相对于彼此来评估数据集内的元素以确定共同性。结构中的改变的方法和/或速率方面的共同数据可以被分组为相似数据。可以被解释和分离的数据可以包括音频数据、诸如图像或视频数据之类的视觉数据,或其它类型的数据。
【背景技术】
[0003]通常,通过在电介质、声介质、光介质或其它介质上传输视频或其它数据以便将数据递送到人或设备来进行视频或其它数据的通信。例如,麦克风可以接收模拟音频输入并将该信息转换成电信号、数字信号或其它类型的信号。该信号可以被地送至计算设备以供进一步处理,递送值扬声器,或者可以获取电信号并产生音频输出的其它输出端。当然,类似的处理可以用于视频数据或其它数据。
[0004]当数据被接收、被转换或被发送时,数据的质量可能会被折中。在音频信息的示例中,希望的音频信息可以连同背景或不希望的音频数据一起被接收。例如,在麦克风处接收到的音频数据可以包括或已经加入了一定数据的静态、串话、混响,回响、环境的或其它不想要的或不理想的噪声或数据。尽管技术改进已经提高了设备产生更高质量输出的性能,但是这些输出始终还是包括一些噪声。
[0005]不论输出质量如何,信号通常源发于其中噪声是显著分量的环境,或者信号可以由没有结合针对噪声降低的技术改进的设备或其它设备产生。例如,诸如电话之类的移动设备实际上可以用在任何环境中。当使用电话时,用户可以对麦克风组件讲话;然而,来自办公设备、来自繁忙的街道、来自大会中心或活动场所的欢呼声、来自音乐厅的乐队、来自无数的其它源的附加声音也会被传递到麦克风中。这样的声音可能被加到用户的语音并干扰电话呼叫的另一端上的接听方理解讲话者的能力。在移动电话不包括最高质量的组件的情况中,传输介质经历无线电频率(rf)噪声或与环境或传输介质本身相关联的其它干扰,或者数据在一个或多个传输方向的传输期间被压缩,这样的问题会更复杂。
[0006]当前用于降低背景噪声的系统可以利用相位反转技术。实际上,相位反转技术使用辅助麦克风。辅助麦克风被与主麦克风隔离。由于两个麦克风之间的隔离,在主麦克风处接收到的一些声音在辅助麦克风上不被接收到。两个麦克风共同的信息随后有可能被移除以隔离希望的声音。
[0007]尽管相位反转技术在有些环境中能够有效降低噪声,但是相位反转技术不能用在某些环境中。除了需要附加的麦克风和用于承载在附加的麦克风处接收的信号的数据通道,两个麦克风必需具有相同的反应时间(latency)。即便轻微的变差也会产生其中信号不能匹配上并随后不能被相减的问题。实际上,变差可能引发额外的噪声的产生。并且,由于隔离是使用两个麦克风来执行的,所以无法从自远程源接收的进入音频过滤噪声。因此,利用相位反转技术的设备的用户可以发送具有降低的噪声的音频信号,但是不能接收以随后让噪声降低。

【发明内容】

[0008]根据本公开的方面,描述并应当理解与数据解释和分离有关的方法、系统、软件、计算机程序等的实施例。数据解释和分离可以通过利用模式识别来使识别同步的信息源从而允许相对于其它不希望的源分离一个或多个希望的源的音频。尽管本文中所公开的实施例主要在音频信息的上下文中描述的,但是这样的实施例仅仅是示例性的。例如,在其它实施例中,可以在图像数据或视频数据内、二进制或数字数据内或结合另一些其它类型的数据使用模式识别。
[0009]本公开的实施例涉及数据解释和分离。在一个示例实施例中,一种用于解释和分离数据集的数据元素的计算机实现的方法可以包括访问数据集。该数据可以通过相对于数据集内的多个元素内的其它元素来比较数据集内的所述多个元素的每个相应元素的改变的方法和速率而被解释。数据集还可以被分离成一个或多个集合分量,每个集合分量包括在改变的方法和速率方面具有相似结构的数据元素。
[0010]根据本公开的附加实施例,其中,改变的方法和/或速率可以通过生成具有三个或更多维度的数据的指纹来分析。所生成的指纹随后可以被比较。可选地,比较指纹可以包括在三个或更多方向的任意方向或所有方向上缩放指纹并将经缩放的指纹与另一指纹比较。这样的比较还可以包括相对于另一指纹重叠一个指纹。
[0011]使用本公开的实施例解释和/或分离的数据集可以包括各种类型的数据。这样的数据可以包括例如实时数据、流化数据、或基于文件的存储的数据。数据还可以对应于音频数据、图像数据、视频数据、模拟数据、数字数据、压缩数据、加密数据或任何其他类型的数据。数据可以从任何适合的源获取,包括在电话呼叫期间获取,并且可以在端用户设备处或在端用户设备之间的服务器或其它计算设备处被接收和/或被处理。
[0012]在本公开的一些实施例中,解释数据集可以通过变换数据来执行。数据可以被从示例的二维表示变换成三维或更多维的表示。数据的解释还可以包括比较三维或更多维度中任意维度或所有维度上的改变的方法和/或速率。解释数据可能在一些数据中引入延迟,该延迟通常小于大约500毫秒,或甚至少于大约250毫秒或125毫秒。
[0013]根据本公开的一些实施例,解释和/或分离数据集可以包括识别相同的数据元素。这样的数据元素可以实际上是相同的或可以充分类似而被视为是相同的。在一些情况中,被视为相同的数据元素可以被缩减为单个数据元素。解释和分离数据集还可以包括识别谐波数据,其可以是在谐波频率处重复的数据。[0014]谐波数据或在相同时间的其它充分类似的数据可以进一步用于混叠数据元素。第一数据元素可以使用第二数据元素被混叠,例如通过在第一数据元素上推断(infer)不被包括在第一数据元素中但是被包括在第二数据元素中的数据。被混叠的数据集可以是经剪辑的数据元素。
[0015]一种用于解释和分离数据集的数据元素的系统被公开并且包括存储有计算机可执行指令的一个或多个计算机可读存储介质,所述计算机可执行指令当被一个或多个处理器执行时,使得计算系统访问数据集,自主地识别数据集内元素之间的共同性(可选地不依赖于预定的数据类型或描述),并基于自主地识别的共同性来将数据集的元素与数据集的其它元素分离。在一些实施例中,元素之间的共同性的自主识别可以包括评估数据集的元素并识别与改变的方法和速率有关的相似度。
[0016]当数据元素被分离时,被确定为具有源发自第一源的高概率的数据元素集可以被输出,而被确定为具有源自一个或多个另外的源的高概率的元素可以不被包括在输出中。这样的输出可以是通过重建数据以包括仅分离的数据的一个或多个集合来提供。
[0017]一种用于自主地解释数据集和分离数据集的相似元素的系统可以包括一个或多个处理器以及存储有计算机可执行指令的一个或多个计算机可读存储介质。这一个或多个处理器可以执行指令来使得系统访问一个或多个数据集并解释这些集合的数据。解释数据可以包括自主地识别具有源发自共同源或识别共同源的高概率的数据元素。系统还可以使用经解释的数据来回溯地构建集合的数据。回溯地构建的数据可以包括被确定为具有源发自共同源或识别共同源的高概率的第一集合的数据元素。回溯的构建可以包括重建所访问的数据中满足一个或多个模式的部分。
[0018]在一些实施例中,识别具有源发自共同源或识别共同源的高概率的数据元素可以包括将一个或多个数据集内的数据元素与也在这一个或多个数据集内的其它元素比较并识别具有共同性的元素。这样的数据可以是实时数据或文件数据,并且可以使用数据集本身而不必参考外部的定义或标准被解释。输出数据可以包括通过将三维或更多维度的数据转换成二维数据来重构数据。
[0019]一种用于解释数据和将数据分离成一个或多个构成集合的方法可以包括访问第一格式的数据并将所访问的数据从第一格式变换为第二格式。使用第二格式的数据,经变换的数据内的连续偏差可以被识别并且可选地被用于创建窗口片段。用于偏差和/窗口片段的指纹可以被产生。所产生的指纹还可以被比较来确定一个或多个指纹之间的相似度。相对于在相似度阈值以下的其它指纹,满足或超过的相似度阈值的指纹可以被分离并被包括作为共同集合的一部分。
[0020]被变换的数据可以被从二维数据变换为三维或更多维度的数据,可选地,通过将数据变换为两维或更多维度的中间数据。当可选的窗口片段被识别时,窗口片段可以在连续偏差相对于基线开始和结束时开始和结束。基线可以可选地是噪声基底。
[0021]在一些实施例中,指纹是通过识别一个或多个频率进展来识别的。这样的频率进展可以在窗口片段内,每个窗口片段包括一个或多个频进展。频率进展的数目,或其指纹可以被缩减。例如,相同或近乎相同的窗口片段可以被缩减,可选地被缩减至单个频率进展或指纹。所识别的频率进展可以包括相对于基本频率在谐波频率处的进展。数据可以基于其谐波的进展数据被推断至基本频率。[0022]指纹可以被比较来确定相似度。被比较的指纹可以在同一窗口片段中,或在不同窗口片段中。可选地,指纹被与同一窗口片段的指纹比较以缩减窗口片段的指纹,并且在缩减发生之后被与其它窗口片段的指纹比较。可以针对满足或超过相似度阈值(从而指示源发自共同源的可能性)的指纹创建指纹集合。其它指纹在满足或超过阈值时可以被添加到现有指纹集合。在一些情况中,具有两个阈值之间的相似度的指纹可以被包括在集合中,而两个阈值以上的指纹被组合成指纹集合中的单个条目。相同集合或相似度阈值以上的指纹可以被输出。这样的输出可以包括将指纹转换成所访问的数据的格式。输出数据可以是作为所访问的数据的子集的分离的数据,并且可选地是回溯地呈现或重构/重建的数据。在解释和分离数据时,可以使用时间约束。当超过时间约束时,所访问的数据而不是分离的和/或重构的数据可以被输出。
[0023]相应地,本公开的一些实施例涉及解释和分离音频数据或其它类型的数据。这样的数据可以包括被识别和被指纹识别的特有元素。对应于所选择的指纹集的或者与数据本身内的其它自主地选择的或用户选择的元素相似的数据元素可以被选择。所选择的数据随后可以被输出。可选地,这样的输出本质上是非损坏性的,因为输出可以是从所包括的数据元素的指纹而不是通过减去不想要的数据元素来重建的。 [0024]考虑接下来的描述、附图以及所附权利要求书,本公开的其它方面以及各个方面的特征和优点对于本领域普通技术人员将变得显然。
【专利附图】

【附图说明】
[0025]为了描述可以获得本公开的特征和其它方面的方式,在所附附图中将呈现落在所公开的主题的广泛范围内的某些实施例的更具体的描述。应理解,这些附图仅仅图示出示例实施例因此不应认为是范围的限制,也不是针对所有实施例按比例绘制的,将使用附图利用附加的具体性以及细节来描述和说明各个实施例,在附图中:
[0026]图1是可以与数据分析、解释和/或分离系统关联使用的通信系统的实施例的示意图;
[0027]图2可以通过诸如用图1图示出的通信系统之类的通信系统来接收接收或发送信息的计算系统的实施例的示意图;
[0028]图3图示出用于解释和分离数据信号的元素以及构造包括该数据信号的至少一些元素的输出的方法的实施例;
[0029]图4图示出用于解释数据以检测数据内的元素的共同性(commonality)和相对于不共有共同特征的其它元素分离具有这样的共同特征的元素的方法的实施例;
[0030]图5图示出二维数据信号的波形代表的实施例;
[0031]图6和7图示出通过图5的数据的变换产生的数据的可替代的三维示图;
[0032]图8是图6和7的二维图表的二维表不;
[0033]图9图示出可以在图6-8中所表示的数据中识别的单个窗口片段;该窗口片段包括基本频率进展和基本频率进展的谐波;
[0034]图10提供在图5-9所表示的数据内的单个频率进展的图形表示,该频率进展可以用形成或被用于形成图9的基本频率进展的指纹数据定义;
[0035]图11图示出用于存储与数据信号内的数据的各个窗口片段对应的数据的窗口表格的实施例;
[0036]图12A图示出用于存储与各个窗口片段以及窗口片段内的数据元素的指纹对应的数据的全局散列表格的实施例;
[0037]图12B图示出从图12A的全局散列表格更新的包括指示同一窗口片段内的指纹的相对相似度的相似度值的全局散列表的实施例;
[0038]图12C示出从图12B的全局散列表格更新的包括缩减的数目的指纹和指示不同窗口片段的指纹的相对相似度的相似度值的的全局散列表格的实施例;
[0039]图13图示出识别多个窗口片段并且包括每个窗口片段的指纹数据以及表示指纹相对于任何窗口片段的其它指纹的相似度的数据的指纹表格的实施例;
[0040]图14图示出识别指纹集的集合表格的示例,其中集合的每个指纹类似于或以其他方式匹配该集合的每一个其它指纹的模式;
[0041]图15示意性地图示出图11-14的表格之间的相互影响;
[0042]图16图示出或者分离地或者组合地使用用于解释和分离数据的方法的可以被构造和/或重建以提供输出的由图5表示的数据内的两个元素集合的二维图的实施例;
[0043]图17图示出其中存储在电子设备上的联系人文件中的联系人信息包括与由该联系人文件识别的人匹配的音频数据指纹集合的本公开的实施例的可行实施方式;
[0044]图18图示出用于将声音系统的不同分量分离成来自相同音频源的集合的音频文件分析应用的可行应用的示例用户界面。
具体实施例
[0045]根据本公开的系统、方法、设备、软件和计算机程序产品可以配置为用于分析数据、检测数据内的模式或共同特征,相对于数据的其他部分隔离或分离数据的一个或多个元素,识别所分析的数据的源,迭代地基于共同元素来构建数据集合,回溯地构造或重建数据,或用于其他用途,或用于前述的任意组合。在不限制本公开的范围的情况下,接收的数据可以包括模拟数据或数字数据。在数字数据被接收的情况下,这样的数据可以可选地是模拟数据的数字表示。不论是何种类型的数据,数据都可以包括希望的数据分量和噪声分量。噪声分量可以表示通过设备(例如麦克风)、压缩、传输、环境或其他因素或前述的任意组合而引入的数据。在电话呼叫的上下文中(这仅仅是可以应用本公开的实施例的一个应用例),音频数据可以包括在电话呼叫的另一端上讲话的人的语音。这样的音频数据还可以包括来自背景源(例如,人、机器的等等)不希望的数据。附加的不希望的数据也可以是音频分量或噪声分量的一部分。例如,声音可以是从可能在不同谐波频率处共振的振动产生的。因此,主要或基本频率处的声音可以在出现在另外的已知的频率处的谐波中被大体地重复或反映。诸如串话、混响、回响等的其它信息也可以被包括在数据的音频分量或噪声分量中。
[0046]现在转到图1,示出一示例系统,其包括可与用于分析、解释和/或分离隔离数据的本公开的实施例关联使用的分布式系统100。在图示的系统100中,系统的操作可以包括辅助一个或多个端用户设备104a-104f之间的通信的网络102。这样的端用户设备104a_104f可以包括任意数目的不同类型的设备或组件。例如,这样的设备可以包括计算设备或其它类型的电气设备。适合的电气设备的示例可以包括例如但不限于蜂窝电话、智能电话,个人数字助理(PDA)、陆线电话、平板计算设备、上网本、电子阅读器、膝上型笔记本、桌面计算机、媒体播放器、全球定位系统(GPS)设备、双向无线电设备、能够通过网络102传送数据的其它设备,或前述设备的任意组合。在一些实施例中,端用户设备104a-104f之间的通信可以使用另外的设备或与其关联地进行,其中另外的设备诸如是服务器组件106、数据储存库108、无线基站110,或普通老式电话服务(POTS)组件112,但是也可以使用或存在许多其它类型的系统或组件。
[0047]在至少一个实施例中,网络102可以能够承载电子通信。因特网、局域网、广域网、虚拟专用网(VPN)、电话网络、其它通信网络或信道,或前述网络的任意组合因而可以用网络102表示。此外,应当理解,网络102、端用户设备104a-104f、服务器组件106、数据储存库108、基站110和/或POTS组件112可以各自以许多不同的方式操作。不同操作方式可以至少部分基于网络102的类型或与网络102的连接的类型。例如,系统100的各种组件可以包括硬连线通信组件和/或无线通信组件或接口(例如,802.11、蓝牙、CDMA, LTE、GSM等等)。并且,尽管在图1中图示出单个服务器106和单个网络102,但是这样的组件可以说明作为系统100的部分共同操作的多个设备或组件。实际上,网络102可以包括互连的多个网络来辅助端用户设备104a-104f中的一个或多个之间的通信。类似地,服务器106可以表示多个服务器或其它计算元件,它们以辅助系统100的一个或多个方面的操作的方式而或者处于一起或者被分布。另外,尽管可选的存储装置108被示出为与服务器106和端用户或客户端设备104a-104f分离,但是,在其它实施例中,存储装置108可以整个或部分地被包含在任何其它的设备、系统或组件中。
[0048]系统100图示出根据一个实施例可以用于提供音频和/或视觉通信服务的示例系统。端用户系统104a-104f可以包括,例如,一个或多个麦克风或扬声器、电传打字机等,以便使得一个设备的用户能够与另一设备的用户通信。在图1中,例如,一个或多个电话端用户设备104c、104d可以可通信地连接到POTS系统112。在一个端用户设备104c处发起的呼叫可以通过POTS系统112连接到另一端用户设备104d。可选地,可以使用网络102、服务器106或除POTS系统112之外另外的或取代其的其它组件来发起或维持这样的呼叫。
[0049]电话设备104c,104d可以另外或可替代地与许多其它设备通信。例如,蜂窝电话104a可以向电话104c进行电话呼叫。该呼叫可以通过一个或多个基站110、服务器(例如,服务器106),或其它组件被中继。基站110可以与网络102、POTS系统112、服务器106,或其它组件通信来允许或辅助与电话104c的通信。在其它实施例中,蜂窝电话104a (可选地,是所谓的“智能电话”)可以与膝上型笔记本104b、平板计算设备104e或桌面计算机104f进行音频、视觉或其它数据通信,并且通过网络102和/或服务器106 (可选地以绕过用基站110表示的一个或多个基站的方式)来进行。可以以任何数目的方式提供通信。例如,被交换的消息可以利用因特网协议(“IP”)数据报、传输控制协议(“TCP”)、超文本传输协议(“HTTP”),简单邮件传输协议(“SMTP”)、Voice-Over-1P (“V0IP”),陆线或POTS服务,或其它通信协议或系统,或前述的任意组合。
[0050]根据本公开的一些实施例,在系统100的组件处生成或接收的信息可以被分析和解释。在一个实施例中,通过对照数据内的元素解释数据以确定元素内的共同性来自主地执行数据解释和分析。那些共同性可以一般地定义与数据的其它元素匹配的模式,并随后被用于从具有共同特征的那些和不具有共同特征的那些中分离数据。检测共同性的方式可以变化,但是,在一个实施例中,其可以包括识别关于改变的方法和/或速率的共同性。
[0051]如本文中讨论的,根据本公开的实施例,数据解释和分离以及改进信号的重构可以用在各种产业和应用中,并且与源自多种类型的源的许多类型的数据关联。本公开的方法或系统可以例如被包括在诸如服务器、基站等的中间设备处或端用户设备处的电话系统中。然而,数据可以在其它产业中包括在访问文件的计算设备上被解释、分离、重构等,并且可以对音频和可以对音频、视频、图像或其它类型的数据进行操作。因此,可以根据本公开的实施例被解释和分离的数据的仅一个示例是音频数据,其本身可以实时地或通过基于文件的操作从存储装置被接收。继续蜂窝电话104和电话104c之间的电话呼叫的示例,例如,在蜂窝电话104a处接收的音频数据可以被网络102内的蜂窝电话104a、被电话104c、被P0TS112、被服务器106、被基站110或被任意其它适合的组件解释。呼叫方的语音可以相对于来自其它源的声音或数据被分离,这样的分离基于呼叫方的语音模式进行。分离后的数据可以随后被发送或提供给使用电话104c的人。例如,如果数据解释和分离在电话104a处发生,则电话104a可以构造包括分离的语音数据的数据信号并将数据发送给基站110或网络102。这样的数据可以被传递通过其它组件中的服务器106、P0TS112并被路由至电话104c。
[0052]可替代的,数据解释和分离可以在基站110、网络102、服务器106或POTSl 12处被执行。例如,从蜂窝电话104a发送的数据可以被接收基站110压缩。这样的压缩可能引入噪声,其可以加到已经存在于信号中的噪声。基站110可以解释数据,或可以(可选地,通过一个或多个其它基站110)将信号传递给网络102。网络102的任何基站110或组件都潜在地可以执行与本文中的实施例公开的方法一致的数据解释和分离方法,从而清除音频信号。网络102可以包括或连接至服务器106或POTSl 12,服务器106或POTSl 12可以执行这样的方法来解释、分离和/或重构数据信号。结果,在由蜂窝电话104a产生的数据被电话104c接收之前,数据可以被解释并且某些元素可以被分离。在其它实施例中,由电话104c接收的数据可以包括噪声或其它元素并且数据解释和/或分离可以在电话104c处进行。可以在系统100内生成的任何信号中获取类似的处理,而不论是否是网络102的端用户设备104a-104f组件、服务器106组件或在产生、接收、发送、解释或以其他方式处理数据或通信时使用的其它组件。
[0053]使用专用硬件、软件应用或前述的组合的任意适合的设备都可以执行数据解释和分离。在一些实施例中,解释和分离可以在多个设备上发生,不论是否利用分布式处理、冗余处理或其它类型的处理。实际上,在一个实施例中,发送设备、接收设备或中间组件中的任何一个或全部都可以分析、解释、分离或隔离数据。
[0054]在蜂窝电话通信的示例中,例如,蜂窝电话104a可以解释外出数据和将用户的语音与背景数据和/或由蜂窝电话104a生成的噪声分离。服务器106或POTS 112可以分析通过基站110或网络102接收到的数据和将语音数据与背景噪声、由数据压缩引起的噪声、由传输介质引入的噪声,或由蜂窝电话104a生成的或在环境或网络102内生成的其它噪声分离。接收设备(例如,端用户设备104b-104f中的任一个)可以分析或解释进入数据,和可以将呼叫方的语音与可能由于数据在网络102和接收设备之间的传输导致的其它噪声分离。因此,图1的系统100可以提供数据处理、分析、解释、模式识别、分离和存储,或前述的任意组合,其是主要以客户端为中心的,主要以服务器或云为中心的、或组合以客户端或服务器为中心的体系架构和系统的各个方面的任意其它方式。
[0055]现在转到图2,另外详细地图示和描述了计算系统200的示例。计算系统200可以一般地表示可以在图1的通信系统100中使用的设备或系统中的一个或多个的示例。为了使对本公开的某些实施例的描述和理解更容易,计算系统200在这里有时可以被描述为一般地表示端用户设备,诸如图1的端用户设备104a-104f。然而,在其它实施例中,计算设备200可以表示的图1的服务器106的全部或一部分、可以被包括作为网络102、基站110或POTS系统112的一部分,或者以其他方式在通信系统100或其它适合的系统内的任意适合的组件或设备中使用。图2因此示意性地图示出系统200的一个示例性实施例,其可以用作端用户或客户端设备、服务器、网络、基站、POTS或其它设备或系统或者在它们内使用;然而,应当明白,设备或系统可以包括任意数目的不同或额外特征、组件或能力,并且图2及其描述不应被理解为是对本公开的限制。
[0056]在图2中,计算系统200包括可以通过一个或多个通信信道一起交互的多个组件。在该实施例中,例如,系统可以包括多个处理单元。更具体地,图示的处理单元包括中央处理单元(CPU)214和图形处理单元(GPU)216。CPU214 一般可以是多用途处理器以用于执行系统200的计算机程序的指令,包括基本算术、逻辑、输入/输出(I/O)运算,等等。相对照地,GPU 216可以主要专用于视觉信息的处理。在一个实施例中,GPU 216可以主要专用于建立意图输出给一个或多个显示设备的图像。在其它实施例中,除了图2中图示的那些以外地或另外地,可以使用单个处理器或多个不同类型的处理器。
[0057]在CPU 214和GPU 216被包括在系统200中的情况中,它们可以各自主要专用于不同的功能。如以上注意到的,例如,GPU可以主要专用于图形和视觉相关的功能。在一些实施例中,GPU 216可以被用来执行与视觉和图形信息分开的数据处理。例如,CPU 214和GPU 216可选地具有不同的时钟速度、关于双精度浮点运算处理的不同能力、体系架构差异、或形式、功能或能力上的其它差异。在一个实施例中,GPU216可以具有更高的时钟速度、更高的总线宽度和/或更高的能力以用于执行更大数目的浮点运算,从而允许一些信息相比于被CPU 214执行的情况被更加高效地处理。
[0058]CPU 214、GPU 216或其它处理器组件可以与输入/输出(I/O)设备218与输入/输出(I/O)设备218、网络接口 220、存储器224和/或大容量存储设备226交互或通信。通信可以进行的一种方式是使用通信总线222,但是可以使用多个通信总线或其它通信信道,或任意数目的其它类型的组件。CPU 214和/或GPU 216 —般可以包括能够执行由系统200接收或存储的计算机可执行指令的一个或多个处理组件。例如,CPU 214或GPU 216可以使用通信总线216来与输入/输出设备218通信6。输入/输出设备218可以包括端口、键盘、鼠标、扫描仪、打印机、显示元件、触摸屏、麦克风或其它音频输入设备,扬声器或音频输出设备、全球定位系统(GPS)单元、音频混合设备、相机、传感器、其它组件,或前述的任意组合,其中的至少一些可以提供输入以用于由CPU 214或GPU 216处理,或用于接收从CPU214或GPU 216输出的信息。类似地,网络接口 220可以经由网络(例如,图1的网络102)接收通信。接收的数据可以通过总线222被发送并整个或部分由CPU 214或GPU 216处理。可替代地,由CPU 214或GPU 216处理的数据可以通过总线222被发送至网络接口 220以用于通过网络或其它通信信道传送至另一设备或组件。
[0059]系统200还可以包括存储器224和大容量存储装置226。一般,存储器224可以包括永久性或非永久性的存储装置,并且在图示的实施例中,示出存储器224包括随机存取存储器228和只读存储器230。其它类型的存储器或存储装置也可以被包括在存储器224中。大容量存储装置226 —般可以包括许多不同形式的永久性存储装置。这样的形式可以包括硬驱、基于闪存的存储装置、光存储设备、磁存储设备,或永久地或者可移除地耦接到系统200的其它形式,或前述的任意组合。在一些实施例中,定义计算系统200的一般操作功能并且可以由CPU 214执行的操作系统232可以存储在大容量存储装置226中。存储在大容量存储装置226中的其它示例组件可以包括驱动234,浏览器236和应用程序238。
[0060]术语“驱动”意图广泛地表示任意数目的程序、代码或其它模块,包括内核扩展、扩展、库或套接字。一般,驱动234可以是或包括允许计算系统200与或者在计算系统200内或者在其外围的其它组件通信的程序或指令。例如,在I/O设备218包括显示设备的实施例中,驱动234可以存储或访问通信指令,所述通信指令指示数据可以被格式化以允许数据被传送到其的方式,以便被显示设备理解和显示。浏览器236可以是一般能够与CPU 214和/或GPU 216以及网络接口 220交互来浏览计算系统200上的程序或应用或访问可从远程源获得的资源的程序。这样的远程源可以可选地可通过网络或其它通信信道使用。浏览器236 —般可以通过接收和解释信息的页面进行操作,通常,这样的页面包括标记和/或脚本语言代码。相对照地,由CPU 214或GPU 216执行的可执行代码指令可以为二进制或其它类似格式并且可主要由处理器组件214,216执行和理解。
[0061]应用程序238可以包括可以用在计算系统200的操作中的其它程序或应用。应用程序232的示例可以包括能够通过网络接口 220发送或接收电子邮件或其它消息的电子邮件应用240、用于维护当前或将来的数据或时间的记录或用于存储约会、任务、重要日期等等的日历应用232,或实质上任意其它类型的应用。本领域技术人员鉴于本公开将明白,其它类型的应用238可以提供其它功能或能力,并且可以包括文字处理应用、数据表应用、编程应用、计算机游戏、音频或视觉数据操纵程序、相机应用、地图应用、联系人信息应用,或其它应用。
[0062]在至少一个实施例中,应用程序238可以包括能够被系统200与解释数据来识别数据内的模式或共同性并将共有共同性的元素与不共有共同性的元素分离关联地使用的应用或模块。例如,在一个示例中,音频数据可以被解释,以根据数据内发现的元素所共有的模式或共同性,辅助相对于其它音频源来分离一个或多个语音或其它声音。相似数据随后可以被分组为与共同源相关联和/或被与其它数据分离。可以分析音频或其它数据的程序的示例可以用图2中的数据解释应用244表示。数据解释应用244可以包括许多不同模块中的任意模块。例如,在图示的示图中,数据解释应用244可以包括沙盒246和工作流管理器248组件。在一些实施例中,操作系统232可以具有,或看起来具有统一的文件系统。沙盒组件246可以用于将数据解释应用244的目录或其它信息融合到由操作系统232维护的统一的文件系统中,同时可选地使物理内容保持分离。沙盒组件246因此可以提供与操作系统232的集成操作,但是可以允许数据解释应用244保持区别的和分离的身份。在一些实施例中,沙盒组件246可以是Unionfs叠加,但是也可以使用其它适合的组件。
[0063]工作流管理器组件248—般可以是用于管理数据解释应用244内的其它操作的模块。具体地,工作流管理器248可以用于执行应用的逻辑运算,诸如要调用什么功能或模块,要评估什么数据等等。基于工作流管理器248的判断,可以进行对一个或多个工作者模块254的调用。工作者模块254 —般可以是当在计算系统200上运行时作为由工作流管理器248管理的实例内的过程进行操作的代码或其它计算机可执行指令的一部分。例如,每个工作者模块254可以专用于诸如数据变换、数据跟踪等的具体任务的执行。工作者模块254可以执行针对正使用数据解释应用244被分析的数据的任务,而工作流管理器248可以确定要调用哪个工作者模块254、要提供什么数据以用于由工作者模块254进行的操作。工作者模块254因此可以在工作流管理器248的控制之下。
[0064]数据解释应用244也可以包括其它组件,包括在这里描述和图示的那些。在一个实施例中,例如,数据解释应用244可以包括用户界面模块250。一般,用户界面模块250可以定义某些数据的视图。在数据解释应用244的上下文中,例如,用户界面模块250可以显示数据集内识别的某些模式的标识、共享某些共同性的数据集内的元素集、模式与来自特定源(例如,人、机器或其它源)的数据的关联性等。工作流管理器248可以指导什么信息适用于用户界面250的视图。
[0065]如在图2中进一步示出的,数据解释应用244还可以包括可选的表格模块252,其与存储在数据储存库中(例如,存储在存储器224中、存储在存储装置226中或可通过网络或通信链路获得)的数据交互。表格模块252可以用于读取、写入、存储、更新或以其他方式访问由数据解释应用244提取、处理或生成的不同信息。例如,工作者模块254可以解释接收的数据并识别接收的数据的元素内的模式或其它共同性。数据内的模式、与模式匹配的数据或与被接收并被解释的数据有关的其它数据可以被存储或被援引在由表格模块252管理的一个或多个表格中。在数据元素被识别时,数据元素之间的相似度被确定,相似或相同的数据元素被识别,等等,表格可以使用表格模块252被更新。可选地,由表格模块252写入一个或多个表格的数据可以是永久性数据,但有些信息可以可选地在希望的时刻(例如,在通信会话结束时或在预定数量的时间之后)被移除。
[0066]数据解释应用244的各种组件可以以许多不同方式与计算系统200的其它组件交互。在一个实施例中,例如,数据解释应用244可以与存储器228交互来存储一种或多种类型的信息。对RAM 228的存取可以提供给工作者模块254和/或表格模块252。例如,数据可以被写入存储在RAM 228中的表格或被从其读取。在一些实施例中,数据解释应用244的不同模块可以由不同处理器运行。例如,GPU 216可以可选地包括多个核心,比CPU 214具有更高的时钟速率,不同的体系架构,或具有更高的用于浮点运算的能力。在至少一个实施例中,工作者模块254可以使用GPU 216,可选地通过以每个核心为基础运行实例,来处理信息。相对照地,可以操作来逻辑地定义工作者模块254如何操作的工作流管理器248可以改为在CPU 214上操作。CPU 214可以具有单个核心或多个核心。在一些实施例中,工作流管理器248定义CPU 214上的单个实例,以使得即便具有多个核心,CPU 214也可以运行工作流管理器248的单个实例。
[0067]在一些情况中,工作者模块254的一个或多个实例可以被包含在由工作流管理器248定义的容器内。在这样的配置下,在工作流管理器248的指导下可以优雅地恢复单个实例的故障。相对照地,在其中工作流管理器248在类似的容器外面操作的实施例中,终止工作流管理器248的实例不能不那么优雅。例如,沙盒组件246和/或工作流管理器248可以允许工作流管理器248或在工作流管理器248的控制下的一个或多个工作者模块254拦截正在计算系统200的某些组件之间传输的数据。例如,在通过麦克风或从外呼设备接收的音频数据被发送给扬声器组件,或使用网络接口 220发送给远程组件之前,工作流管理器248可以拦截该信息。可替代地,通过网络接口 220的天线或其它组件接收的信息可以在其被发送给扬声器组件之前或在其被传送给另一远程系统之前被拦截。如果工作流管理器248故障,则数据解释应用244拦截数据的能力可以终止,使得操作系统232控制操作和绕过数据解释应用244至少直到数据解释应用244的实例可以被重启为止。然而,如果工作者模块254失败,则工作流管理器252可以实例化对应工作者模块254的新实例,但是从操作系统的角度看,数据解释应用244的操作可以看起来未被中断。
[0068]图2的系统仅仅是可以用作根据本公开的实施例的通信或其它计算网络内的客户端或端用户设备、服务器组件、或系统的适合的系统的一个示例。在其它实施例中,可以包括其它类型的系统、应用、I/o设备、通信组件等等。另外,可以向数据解释应用提供又一些附加的或可替代的模块,或者,某些模块可以被组合到单个模块中,被与工作流管理器的实例分离,或以其他方式配置。
[0069]图3图示出根据本公开的一些实施例的用于分析和隔离数据的示例方法300。方法300可以由图1或图2的系统执行或在图1或图2的系统内执行;然而,方法300也可以被其它系统或设备执行或与之关联地执行。根据本公开的实施例,方法300可以包括接收或以其它方式访问数据(动作302)。所访问的数据可以可选地被滤波(动作304)和被缓冲(动作306)。数据的类型也可以被验证(动作308)。所访问的数据也可以被包含和被解释(步骤310),并且数据分离的数据可以被输出(动作316)。在一些情况中,数据解释和分离可以定时以便确保通信会话内的数据的及时递送。
[0070]更具体地,解释和分离数据的方法300可以包括访问数据的动作302。在动作302中访问的数据可以有许多不同类型并且可以是从许多不同源接收的。在一个实施例中,例如,数据被实时接收。例如,音频数据可以通过能够接收音频数据或音频数据的表示的网络天线或接口被实时地从麦克风或从其它源接收。在其它实施例中,数据可以是实时图像或视频数据,或计算设备或系统可访问的一些其它类型的实时数据。在另一实施例中,接收的数据是存储的数据。例如,可以从存储器或另一存储组件访问和接收计算系统所存储的数据。因此,动作302中接收的数据可以用于实时数据运算或基于文件的数据运算中。
[0071]方法300可以包括对接收的数据滤波的可选的动作304。例如,可以在接收的音频数据(例如,通过实时或存储的音频信号)的上下文中执行示例。这样的音频数据可以包括从麦克风或其它源接收的信息,并且可以包括扬声器的语音以及与由人的语音制造的声音不一致的噪声或其它信息,或者可以期望其它类型的声音。鉴于本公开应当明白,在实时或存储的音频数据中的任意时刻,来自不同源的声音或数据可以被组合到一起来形成音频数据的完整集。该时刻的声音可以由设备、机器、工具、人或环境因素产生,其中许多不同的做贡献的声音或其它数据每一个是以不同的频率和幅度提供的。
[0072]在一个实施例中,动作304中对接收的数据滤波可以包括应用能够移除数据的不想要的部分的滤波器。在希望或期望人的口声的情况中,例如,可以应用滤波器来移除不可能是由人的语音产生的数据,从而留下在人的语音或其它希望的音频源的范围内的数据。仅通过示例,人类男性通常可以产生具有在大约80Hz和大约IlOOHz之间的基本频率的声音,而人类女性可以产生具有通常在大约120Hz和大约1700Hz之间的基本频率的声音。尽管如此,在其它情形中,人类可以发出在大约80Hz和大约1700Hz之间的期望范围之外的声音,包括谐波的结果。由人类男性产生的完全范围的频率可以在大约20Hz到大约4500Hz的范围中,而对于女性,范围可以在大约80Hz和大约7000Hz之间。
[0073]在至少一个实施例中,动作304中的对数据滤波可以包括应用滤波器,并且滤波器可选地包括捕获人类语音数据的大多数(如果不是全部的话)或希望的任何其它类型的数据的容差。在至少一些实施例中,频率滤波器可以被应用在期望频率范围的一侧或两侧上。例如,低端的滤波器可以用于过滤掉在大约50Hz以下的频率,但在其它实施例中,可以没有低端的滤波器,或,低端的滤波器可以用于过滤掉高于或低于50Hz (例如,低于20Hz)的数据。高端的频率滤波器可以另外或可替代地被置于频率范围的较高端。例如,滤波器可以用于过滤掉在大约2000Hz以上的声音。在其它实施例中,可以使用不同频率滤波器。例如,在至少一个实施例中,高端的频率滤波器可以用于过滤掉在大约3000Hz以上的数据。这样的滤波器可以用于捕获人类语音以及宽范围的人类语音的谐波和其它可能的源的音频数据,但是频率滤波器也可以过滤在大约3000Hz (例如,在7000Hz以上)以上或以下的数据。在其中期望或希望语音数据的另一实施例中,滤波器可以简单地用于识别或通过希望的频率范围,而在该范围之外的信息被丢弃或以其它方式被处理。在一个实施例中,数据可以在方法300期间被变换为具有所识别的频率分量,并且具有在希望范围之外的频率的数据点可以被忽略或被删除。
[0074]对于动作304中用于对数据滤波的示例的以上描述仅仅是说明性的。动作304中的数据的滤波是可选的并且不需要在所有实施例中都使用。在其中使用数据滤波的其它实施例中,数据可以在方法300内的其它步骤处被滤波(例如,作为动作308中验证数据类型的一部分或作为步骤310中的包含或隔离数据的一部分)。所访问的数据可以根据频率或其它标准诸如音频特性(例如,人类语音特性)被滤波。动作304中的数据滤波可以,例如,基于与音频数据和其它类型的数据有关的标准来对数据滤波,包括诸如数据是否是模拟数据、数字数据、加密数据、图形数据或压缩数据之类的标准。
[0075]在动作306中,在动作302中接收的数据可以被存储在缓冲器中。在动作306期间被存储在缓冲器中的数据可以包括如在动作302中其被访问那样的数据,或可以包括滤波后的数据,诸如在其中方法300包括动作304的实施例中。不论数据是否被滤波或什么类型的数据被呈交,存储在缓冲器中的数据都可以用于这里所公开的数据解释、模式识别或分离。在一个实施例中,缓冲器306具有被配置为仅存储预定数量的数据的限定大小。例如,在电话呼叫的示例中,某一数量的数据(例如,2MB)或时段的数据(例如,15秒)可以被存储在存储器或其它存储装置内的缓冲器中。不论数据是音频数据、图像数据,视频数据或其它类型的数据,以及是否是从流、从实时源或甚至是从文件接收的,最旧的数据都可以被替换为更新的数据。在其它实施例中,在动作302中访问的数据可以不被缓冲。例如,在基于文件的操作中,完全数据集可以已经是可获得的,使得可以不需要或不希望对数据的增加的实时部分的缓冲。
[0076]在可选的动作306中的缓冲器中的数据的存储之前或之后,在动作308中,数据的类型可以被验证。这样的验证处理可以包括对照希望类型的数据来评估接收的数据。数据验证的示例可以包括验证数据是音频数据、图像数据、视频数据、加密数据、压缩数据、模拟数据、数字数据、其它类型的数据,或前述的任意组合。数据验证还可以包括验证数据在数据类型的子集(例如,图像、视频或音频数据的特定格式、特定的加密类型等等)内。例如,在电话呼叫期间可以期望音频数据。这样的数据可以具有能够被监控的特定特性。音频数据可以包括,例如,一般可以使用诸如图5中图示出的二维波形表示的数据,其中两个维度包括时间分量和幅度(即,音量或强度)分量。如果方法300在查找其它类型的数据,则与该信息相关联的特性可以被验证。
[0077]如果数据被评估并且动作308中的验证指示数据不符合希望的数据类型,则该处理可以继续进行到动作318,输出接收的数据。在这样的实施例中,存储在缓冲器(如动作306中存储的)、文件或其它位置中的对应数据可以被传递给数据输出组件(例如,扬声器、显示器、文件等等)。因此,输出的信息一般可以与在动作302中接收或以其它方式访问的信息相同,并且有可能绕过方法300的动作310中的解释。然而,如果在动作308中的验证的数据被确定为是期望的类型,则数据可以被传递到容器中以用于分离处理。例如,图3图示出验证的数据可以在步骤310中被解释。这样的步骤可以包括解释或以其它方式处理数据来识别数据内的元素的模式和共同性和/或相对于所有其它数据元素分离具有特定的公共特征、模式或特点的数据元素。可替代地,包含或隔离数据的动作310可以包括解释或以其它方式处理数据,和检测数据内的许多不同特征、模式或特点。可以考虑数据内的每个分离的特征、模式或特点,并且数据的与每个对应的特征、模式或特点相匹配的所有元素都可以被分离到相应的共同的数据元素的集合中。更具体地,每个集合可以包括具有特定模式的数据元素,该特定模式可与用于将数据建立到分离的数据的其它集合中的模式区别。因此,数据可以在动作310中被分离到一个数据集、两个数据集或任意数目的多个数据集中。
[0078]一旦在步骤310中希望的数据被解释、被分析、被分离或以其它方式被包含或被处理,数据可以在动作316中被输出。这可以包括输出实时数据或输出存储的数据。在正在进行的电话呼叫的示例中,数据输出可以对应于电话呼叫的一端或另一端的扬声器的语音,其中,语音被与背景声音、噪声、混响、回响等等分离。来自电话呼叫的输出数据可以被提供给扬声器或通过网络进行传输的通信组件,并且可以包括扬声器的隔离的语音,从而在电话对话期间提供增强的清晰度。提供包括分离的和重建的或重构的数据的输出的设备可以包括端点设备或中间设备。在其它实施例中,输出数据可以是其它类型的,和可以是实时的或存储的数据。例如,文件可以被解释并且来自文件的处理的输出可以被产生和被写入文件。在其它实施例中,实时通信或其它数据可以被输出作为文件而不是持续的实时的或流化的输出。在其它实施例中,输出的数据一不论实时的或用于存储的一可以是音频数据之外的数据。
[0079]至少在包括但不限于电话或类似通信的某些实时数据通信的上下文中将明白,处理进入或外出音频数据可能在对话中引入延迟。显著的延迟可能是不希望的。更具体地,现代通信允许声音、图像或视频对话的近乎即时的递送,并且正在进行通信的人通常偏好通信包括尽可能小的滞后。如果在方法300中数据是实时接收的,则解释和处理数据来隔离或分离特定元素可能花费一定量的时间,从而产生注意得到的滞后(例如,八分之一秒或更多,半秒或更多),这会被引入对话或其它通信。这样的延迟可能适合于有些实时通信;然而,当由处理引起的延迟增大时,某些实时数据的质量和便利性会降低。
[0080]当关心由于解释、分离、重构、重建或以其它方式处理数据而引入的延迟时,方法300可以包括可选的用于确保数据的及时递送的措施。这样的措施在实时数据通信系统中会特别有用,但是可以用在其它系统中。基于文件的操作还可以合并确保适当的或及时的数据递送的某些方面。例如,用于确保处理应用的时间线的措施可以用于使得方法300能够绕过解释或进一步处理某些数据,如果数据或处理时间使得执行方法的系统在特定操作处挂起或停转,或以其它方式延迟数据的递送太长(例如,超过设定的时间阈值)。
[0081]在其中数据递送至关重要或重要的一些实施例中,方法300可以包括定时操作。这样的定时操作可以包括在动作312中初始化定时器。定时器可以在动作310中大约处理开始隔离或包含数据的时刻被初始化。可替代地,定时器可以在其它时刻被初始化。例如,在数据类型在动作308中被验证时,在数据在动作304中被滤波时,在动作302中接收或访问数据紧后,在数据在动作306中被可选地首先存储在缓冲器中时,或在其它适合的时间,定时器可以被启动。
[0082]可选地对照最大时间延迟评估在动作312中启动的定时器。在动作314中,例如,可以对照最大时间延迟测量定时器。如果定时器还没有超过最大值,则方法300可以允许动作310中的数据解释和/或分离继续。可替代地,如果动作310中的解释和/或分离费时太长,使得超过最大时间,则动作314中的判断可以进行到关于某些数据结束动作310,或以其它方式绕过这样的处理。在一个示例中,一旦已经超过了最大时间延迟,该方法300可以包括获取在动作306期间存储在缓冲器中的并且与动作310中正被解释的信息对应的信息,输出被访问、被缓冲的数据而不是输出隔离的数据,如在动作318中示出的。在其中数据不被缓冲的实施例中,可以从原始的或其它的源重新访问数据并随后将其输出来绕过动作310。当接收的数据被输出时,与被解释、被分离的数据相对,方法300还可以使得动作310的解释处理结束。
[0083]在其中包括定时器或其它定时措施的可选的实施例中,使用的最大时间延迟可以改变,并且可以以任何适合的方式被确定或被改变。在一个实施例中,最大延迟可以是固定的值或硬编码的值。例如,可以确定,在大约O和大约250毫秒之间的延迟对于特定类型的数据可以是几乎不可察觉的。例如,大约250毫秒的延迟在实时声音、图像或视频通信可以是仅勉强注意得到的,因此不会显著损坏通信的质量。在该场景中,动作314中评估的时间可以基于250毫秒。如果动作310中的解释和/或分离数据的处理在定时器计数达到250毫秒之前完成了,则在动作316中,隔离的数据可以被输出。然而,如果动作310中的处理没有在定时器计数达到250毫秒之前完成,动作310的处理可以被终止和/或动作318中的输出可以包括原始接收的数据,其可以在存在时从缓冲器获得。然而,定时器可以与250毫秒不同,因为这样的示例仅仅是说明性的。在其它实施例中,例如,定时器可以允许达500毫秒、一秒或甚至更多的延迟。在其它实施例中,定时器可以允许少于250毫秒的延迟、少于125毫秒的延迟,或一些其它延迟。
[0084]在其它实施例中,最大延迟可以比250毫秒更大或更小。根据至少一些实施例,时段可以在大约75毫秒和大约一小时之间,但是可以使用更大或更小的时间值。例如,在大约75和大约125晕秒之间的最大时间值,例如,可以用于进一步减少实时首频、图像或视频通信中的任何延迟的感知。
[0085]不论定时器的长度如何,定时器的值可以是静态的或动态的。特定应用可以,例如,被硬编码以允许具有某一值的最大定时器(例如,75毫秒,125毫秒,或250毫秒)。在其它实施例中,定时器长度可以动态改变。如果考虑文件大小,例如,系统可以自动确定用于分析5MB文件的定时器可以比用于分析5GB文件的定时器小得多。另外,或可替代地,定时器值可以基于其它因素变化,诸如被分析的数据的类型(例如,音频、图像、视频、模拟、数字、实时、存储的等等),发生的数据通信的类型(例如,标准的电话,VOIP, TCP/IP等等),或其它关注方面,或前述的任意组合。
[0086]在其中使用定时器和缓冲器两者的实施例中,定时器的长度还可以与缓冲器的大小相关或与之独立。例如,125毫秒定时器可以指示缓冲器存储大约125毫秒的信息和/或使用每个存储大约125毫秒的数据的多个缓冲器。然而,在其它实施例中,定时器可以相对于存储在缓冲器中的信息量在时间上较短。例如,即使在缓冲器保持更大量的信息(例如,250毫秒的数据,15秒的数据,I小时的数据等等)的情况中也可以使用125毫秒的定时器。
[0087]应当明白,在其它实施例中,由实时数据的解释引起的延迟可以不是显著的。例如,如果数据不是实时数据,而是存储的数据,则用于处理数据的时间可能不会显著到需要考虑。实际上,即使对于实时数据,处理中的延迟也可能不是特别明显,诸如如果实时数据正被转换为存储的数据。对于不是时间敏感的应用,可以消除定时器,或可以使用定时器但是可以可选地包括更大并且可能大得多的最大时间延迟。例如,图示的实施例可以设置一小时的值,使得如果解释完整的文件未在一小时内完成,则操作可以被终止。在其它实施例中,当超过定时器值时,可以出现警告来允许用户或管理员判断是否继续处理。在另一实施例中,如果超过定时器值,正被解释的数据可以被自动切割(sliced)来降低给定时刻正被解释的数据的量,或可以赋予用户或管理员选择是否应当切割数据的能力。不论具体延迟如何,可以提供故障安全数据处理系统以使得即使事件处理被延迟,通信或其它处理操作也不会被中断或被延迟超过希望的量。不论数据是否是实时数据,基于文件的数据,或一些其它类型的数据,都可以使用这样的处理。
[0088]如本文中注意到的,被分析的信息可以用于识别相同数据集的不同元素之间的模式和共同性,并且与特定模式或共同性匹配的数据元素可以被实时地或以其它方式输出。实时分析和输出的示例可以包括通过网络或在电话呼叫中流化音频数据。实时数据可以被缓冲,其中缓冲器存储离散数量的数据,这些数据逐渐被替换为更新的数据。当不是对话、流化的数据或其它实时数据在单个时刻全都可用时,被分析的数据可能不包括完整的数据集,而是可以被分割成更小的时间片段或切片(slice)。在这样的实施例中,在动作316和318中输出的数据可以对应于个别的片段或切片的数据而不是整个对话、文件或其它源的数据。
[0089]在其中数据被部分地分析和输出的实时或其它数据传输场景中,可以在动作320中判断是否存在待处理的更多数据。这样的判断可以在被分离或以其它方式隔离的数据被存储、被输出或以其它方式被确定之后进行。判断是否存在待处理的更多数据可以包括通过考虑还没有被分析的另外的信息是否被存储在缓冲器中、是否存在或以其它方式,监控在动作302中通过其接收或访问数据的通信信道。在不存在要解释的另外的信息的情况中,处理可以结束并且方法300可以终止于动作322。可替代地,如果存在要分析的另外的数据,则方法300可以通过在动作302中接收或访问另外的数据而继续。替代回到动作302,这可以在实时通信场景中的任何时刻继续或如果数据被分条而不是按照整个电话呼叫或其它通信被分析甚至在基于文件的操作中的多个时刻继续,则该方法可以改为返回到动作310。在这样的动作中,缓冲的数据306可以被提取、被包含、被分析、被解释、被分离、被隔离或以其它方式被处理。方法300因此可以在一长度的数据上被迭代执行以便分离数据的部分来逐渐分离整个对话或其它通信中的数据。
[0090]如本文中讨论的,可以对任意数目的类型的不同数据执行方法300,并且可以从许多不同源中的任意源访问或以其他方式接收数据。例如,电话呼叫形式的音频数据可以包括使用麦克风组件接收音频数据。在接收电话处,音频数据可以被缓冲并被置于容器中,在容器中,某些数据(例如,扬声器的语音)可以基于在数据中识别的模式被隔离。隔离的数据可以被输出给通信接口并被发送给接收电话设备。还在电话呼叫示例中,音频数据可以在接收设备处被分析。这样的信息可以通过天线或其它通信组件被接收。在接收设备上,发送方的语音可以被隔离和输出给扬声器组件。在一些实施例中,单个设备可以选择性地仅处理进入或外出音频数据中的一个,但在其它实施例中,设备可以分析和处理进入和外出音频数据两者。在又一些其它实施例中,电话呼叫可以包括发送方和/或接听方设备上的处理、远程设备(例如,服务器或云计算系统)处的处理,或使用前述的组合。被分析的数据也可以在电话呼叫设置的外面被接收或被访问。例如,音频数据可以通过助听器被接收并被实时分析。之前生成的音频数据也可以存储在文件中和被访问。在其它实施例中,其它类型的音频或其它数据可以实时地或在生成之后被组合和分析。
[0091]解释和/或分离数据或以其它方式处理所访问的数据中涉及的实际的步骤或处理,可以基于各种环境或条件而变化。例如,被分析的数据的类型、被分析的数据的数量、可用于解释数据的处理或计算资源等可以每个都影响会发生什么处理、分析、包含或隔离处理。因此,至少图3中的动作310可以包括或表示可以执行的许多不同类型的处理、步骤或动作。在图4中以附加的细节进一步图示出用于分析数据和检测数据内的模式的一种类型的方法的示例。
[0092]为了简化对用于分析数据和检测数据内的模式的一些实施例的讨论,图4的方法400还将关于电话呼叫中的实时音频的接收来进行讨论。这样的示例应当理解为是仅说明性的。实际上,如本文所描述的,可以与其它实时音频、被延迟或被存储的音频,或甚至非音频信息关联地利用本公开的实施例。
[0093]图4的方法400图示出用于分析数据和检测模式的示例方法,并且与分析实时音频数据和检测和隔离数据内的一个或多个不同音频源关联会是有用的。为了帮助理解图4,可以关于各种数据类型或表示、或数据存储容器(诸如图5-16中示出的那些)来参考图4的某些步骤或动作。
[0094]如相对于图3所讨论的,根据本公开的实施例处理的数据可以被存储。例如,实时音频信息可以被至少临时存储在存储器缓冲器中,但可以使用其它类型的存储装置。在数据被以某种方式存储的情况中,数据可以可选地被切割为离散的部分,如动作402中所示。在存储器缓冲器存储实时音频信息的示例中,存储器缓冲器可以开始存储一定量的信息。可选地,在动作402中切割音频信息可以包括提取比所存储的或可用的总数量少的一定量的音频信息。例如,如果存储器缓冲器是满的,则切割数据402可以包括使用用于处理400的所存储的信息的子集。如果存储器缓冲器正开始存储信息,在动作402中切割数据可以包括等待直到预定数量的信息被缓冲。切割的量的数据随后可以被处理同时其它信息被接收到缓冲器或其它数据储存库中。
[0095]在动作402中产生的数据的切片可以导致各种不同大小的数据切片,或者,切片可以每个为一般预定的大小。图5,例如,图示出音频数据的表示。音频数据可以以可以被表示为具有二维特性的模拟波形500的方式被产生或提供。在图5中,例如,二维波形500可以具有时间维度和幅度维度。在其它实施例中,数据可以以其它方式被提供或被表示,包括作为数字数据,作为模拟数据的数字表示,作为音频数据之外的数据,或以其它格式。
[0096]如果由图5中的波形500表示的数据是音频数据,则数据可以是通过电话的麦克风或天线接收的、从文件访问的、或以其它方式被接收和存储在存储器缓冲器中或另一位置中的。在图4的方法400的上下文中,由波形500表示的数据可以被切割成离散的部分。如图5中所示,数据可以被分段或切割成四个切片502a-502d。这样的切片502a_502d可以在数据被接收时递增地产生,但是对于存储的数据,切片502a-502d可以大约被同时地创建,或切割数据甚至可以省略。
[0097]返回图4的方法,根据本公开的一些实施例,动作402中的数据的切割因此是可选的。切割数据的动作402可以例如在实时数据正被接收时特别有用。在电话呼叫或其它真实或实时情形中,音频数据可以被持续产生,并且在音频数据将被发送给接收方之前可能没有机会访问对话或其它场景的所有音频数据。在其中所存储的音频或其它音频文件被处理的示例中,所有信息可以是预先可用的。在该情况下,数据切割可以被执行以使得处理可以在更小的离散的信息的片段上进行,但是在其它实施例中,切割可以省略。
[0098]不论数据的哪个部分被分析,不论其是数据的切片还是完整的文件或数据的其它容器,数据都可以以初始的形式被表示。如图5中所示,该形式可以是二维的,可选地,维度为幅度和时间。在其它实施例中,可以获得其它格式的二维数据。例如,数据可以包括时间分量但是包括不同的第二维度数据值。用于第二维度的其它数据值可以包括频率或波长,但是又一些其它二维数据可以用于音频、视频、图像或其它数据。
[0099]更具体地,关于图5的波形500,波形可以包括时间数据和幅度数据。时间数据一般表不一个或多个声音在什么时刻发生。幅度数据可以表不什么音量或功率分量与该时刻的数据相关联。幅度数据也可以表示声音的组合,其中每个声音对幅度分量贡献一部分。继续执行图4的数据分析和模式识别方法400,用图5的波形500表示的数据或可以被分析的这样的其它数据可以在步骤404中被变换。如本文中讨论的,被处理的数据可以在作为数据的较大部分的子集的切片内,其中迭代处理发生来分析完全数据集,但在其它实施例中,完全数据集可以被同时地处理。因此,在一些实施例中,在步骤404中变换数据可以包括变换数据的切片(例如,图5的切片502a-502d内的数据),或变换完全数据集(例如,波形500是其一部分的波形所表示的数据)。
[0100]音频或其它类型的数据可以以许多不同的方式被变换。根据一个示例性实施例,图5表示的音频数据可以在图4的动作406中被从第一类型的二维数据变换或转换成第二类型的二维数据。所执行的变换类型可以变化,从这样的变换产生的维度的类型同样会变化。根据一个实施例,例如,数据可以从时间/幅度域被转换到时间/频率域。具体地,在处理示例时间/幅度数据时,可以考虑各种峰和谷,以及峰和谷之间的改变频率。可以识别这些频率以及它们发生的时刻。在动作406中可以产生或绘制二维的时间/频率信息,但是数据可以以其它方式被变换到其它维度。
[0101]使用动作40来获取经变换的数据的具体方式可以基于所要执行的变换的类型而改变。根据一个示例实施例,可以通过对由图5的波形500表示的数据施加傅立叶变换来产生经变换的数据。示例傅立叶变换可以是使用归一化Unitary)的普遍频率的分数傅立叶变换。在其它实施例中,可以使用其它类型的傅立叶变换或频谱分析中可使用的其它变换。在数据被切割的情况中,每个切片可以被递增地变换,使得图5中的数据的切片502a-502d可以导致经变换的数据内的对应切片。在数据不被切割的情况中,诸如在一些基于文件的操作中,整个数据集可以在单个操作中被变换。
[0102]在动作406中变换数据,不论是否使用傅立叶变换或其它类型的变换,都可以提供频谱分析能力。具体地,一旦被变换,音频或其它数据都可以被表示为组成图5的合成音频数据的更小的离散的片。频谱分析或其它数据也可以以其它方式被执行,诸如通过使用小波变换或Kramers-Kronig变换。
[0103]本公开的一些实施例的另一方面在于图4的动作406中的变换二维数据可以允许基线或噪声基底被识别。例如,如果经变换的数据在时间/频率域,则经变换的数据可以具有从可以对应于频率O的轴值偏离的正值。在其中音频数据被分析的真实情形中,在其中音频数据被记录、被存储、被传送、被加密、被压缩或以其它方式被使用或被处理的情形中,可以总是存在噪声元素。这样的噪声可能是由所使用的麦克风、环境、电气线缆、AC/DC转换,数据压缩或其它因素引起的。经变换的数据因此可以为代表时间段(例如,切片)的所有时间值示出与频率(例如,OHz)的偏差。噪声基底可以用可以为跨越时间域的最小频率值的基线表示,用时间域上的加权平均频率值表示,用当与基底的显著偏差被移除时的频率的平均值或其它计算结果表示,或用其它方式表示。
[0104]如果在动作406中产生的经变换的数据被进一步变换成三维或更多维度的数据,如图4的方法400的动作408中所示,则噪声基底还可以被更具体地识别和观察。根据一个实施例,例如,在原始的和经变换的数据共用时间域或其它维度的情况中,来自原始数据的信息可以连接到经变换的数据中的数据。考虑波形500所表示的数据,数据可以被如上所述地变换,并且经变换的数据可以连接到波形500所表示的数据。对于对应的时间点,可以执行对波形500所表示的数据的逻辑分析来将幅度分量与在这样的时间点的特定频率关联。所确定的幅度值随后可以被添加到或被援引回到经变换的数据中,从而将第二二维数据变换成三维数据。尽管本文中引用的数据有时可以称为三维数据,但应当明白,这样的术语可以是指最小维度,并且可以存在三维、四维或更多维度。
[0105]因此可以通过取得时间/频率域中的数据并将数据变换到时间/频率/幅度域,或通过以其它方式变换二维数据来产生三维数据。在其它实施例中,可以使用其它的或另外的维度或数据值。在一些实施例中,三维数据可以被滤波。例如,可以对三维数据执行图3的滤波动作304。在音频数据的示例中,例如,可以丢弃数据在特定频率范围(例如,人类声音的范围)外面的数据。在其它实施例中,对其它数据执行滤波,与用于解释和分离数据的方法的其它步骤关联地执行滤波,或完全不包括滤波。
[0106]在动作408中产生的示例三维数据可以以许多不同方式被存储或表示。在一个实施例中,三维数据被可选地存储在存储器中作为点的集合,每个点的集合具有与各个维度(例如,时间/频率/幅度)对应的三个数据值。这样的点的集合可以定义点云。如果被绘制出,则点云可以产生可以被图示来提供与图6和图7的图像类似的图像的数据的表示,图和图7图示出相同的点云数据的不同视角。绘制或图形地图示出数据的三个或更多维度对于本公开的一些实施例的执行不是必需的,但是其可以用于频谱分析。
[0107]在动作408通过变换之前被变换的或中间的数据可以获得表示三维或更多维度的数据的示图,如图6-8中所示。更具体地,图6和7图示出三维表示600、700的示图,该模型针对图示出三个维度中每一个的透视图。相对照地,图8在二维空间中图示出三维表示。更具体地,图8图示出沿两个轴的三维数据。在图6-8的每个图中,第三维度(诸如强度或幅度),可以用不同的颜色图示出。明暗梯度因此可以示出第三维度中大小的变化。在一个示例中,诸如对于音频数据,图8中表示的两个维度可以是时间和频率,其中强度/幅度由明暗的变化反映。在灰度级中,明暗越明亮,第三维度(例如,幅度)越大,暗淡的明暗可以指示点云中哪儿的点具有相对较小的大小。
[0108]当数据已经被变换为三维数据时,方法400可以继续识别一个或多个窗口片段,如步骤410中所示。更具体地,步骤410可以潜在地包括任意数目的并行的或同时的处理或实例。每个实例可以,例如,操作来识别数据集内不同的窗口片段和/或对其动作。
[0109]窗口片段可以被一般地理解为其中存在与基线(例如,音频噪声基底)的显著的持续的偏差的数据的部分。窗口片段表示三维数据,因此在音频样本的时间、频率和幅度域或在其它类型的数据的其它维度中合并点或其它数据。由于窗口片段可以被描述为与基线的偏差,因此识别窗口片段的步骤410的一个方面可以包括识别基线的动作412。在如图6和图7中所表示的三维数据中可以最好地看见,三维数据可以相对于在示图中具有更暗的颜色的更恒定的噪声基底或其它基线具有不同的峰或谷。噪声基底一般会存在于三维数据的所有部分处并且可以对应于可从在动作406中产生的数据识别的基线。关于音频数据,噪声基底可以表示由于麦克风、传输介质、背景语音/机器、数据压缩等等而在音频数据中存在的无线电频率、背景或其它噪声的恒定电平。基线可以是噪声基底的特性,并且可以表示代表强度值的指示符或值。在一些实施例中,基线以下的值一般可以认为是噪声,基线以下的数据可以忽略。对于除音频以外数据,基线可以类似地表示这样的值,该值以上的数据被认为是相关的,并且该值以下的数据可能可以忽略。
[0110]对于所识别的基线,在动作414中可以识别与基线的偏差。在音频数据的上下文中,与基线的偏差(特别是当其显著时)可以表示音频信号内的不同源或类型的音频数据,并且可以被识别为不同于在基线以下的一般噪声。这些偏差可以继续一持续时段、跨多个频率,并且具有变化的幅度或强度值。每个偏差因此展示数据的三个维度中的任何一者或全部中的改变的具体的方法和速率,而不论使用哪三个维度,以及不论数据是否是音频数据、图像数据或其它类型的数据。在这些偏差连续的情况下,方法400可以认为偏差是在动作416中被可选地标记的窗口片段的一部分。
[0111]可以在图8的上下文中理解在动作414、416中识别和标记偏差,其中图示出多个窗口片段802a-802h。图8可以具有多得多的窗口片段;然而,为了避免不必要地模糊本公开,仅示出八个窗口片段802a-802h。窗口片段802a_802h可以每个包括在噪声基底以上的数据点的集群。这样的数据点的集群也可以被编组以使得系统能够从在噪声基底以上并且在窗口片段中的一个点到另一个地进行跟踪或移动,而不需要穿过在基线以下的点。如果从点云中的一个点移动到另一个点将需要存在在基线处或在基线以下的横穿点,则偏差可以用于定义不同的窗口片段。
[0112]当动作414中在连续的三维或更多维度的数据点被识别为与基线偏离时,包含那些偏差的窗口可以被标记。例如,可以通过识别窗口开始的时刻(例如当与基线的偏离开始时的时刻)与当窗口片段结束时的时刻(例如,当偏离回落到噪声基底时的时刻)来标记图8的窗口片段802c。在图8代表具有时间、频率和幅度维度的音频数据的情况中,窗口开始时刻可以一般是跨越相同窗口片段内的多个频率恒定的。对于片段的结束时刻,同样可以如此。然而,在其它实施例中,窗口片段可以跨越多个频率并且数据点可以在该窗口内的不同时刻落入基线或从基线上升。实际上,在一些实施例中,窗口片段可以开始于跨越音频数据的多个频率的显著偏离,但在窗口片段的时间维度上,可以存在分离并且不同的部分可能落入噪声基底中。然而,由于进展的点可以被跟踪到窗口片段的开始并且保持在噪声基底以上,所以它们全都可以是其中数据在开始时刻连续的相同的窗口片段的部分。
[0113]在标记窗口片段时,一个实施例可以包括标记窗口片段的开始时刻。结束时刻也可以被标记为与从基线的连续偏离的最后时刻相对应的单个时间点。使用时间数据,特定时间窗口内的所有频率可以是相同的窗口片段的部分。窗口片段因此可以包括连续的偏差和附加信息诸如包含在重叠的窗口片段中的噪声或信息,但是用于定义窗口片段的连续偏差可以主要用于如以下所讨论的处理。
[0114]多个窗口片段可以在步骤410中被识别,并且这样的窗口片段可以重叠或分离。可以通过执行步骤410的多个并行的实例或以其它方式来进行窗口片段的识别。当通过识别与基线的偏差可能地识别每个窗口片段时,可以以任意数目的方式在动作416中标记这样的窗口片段。在一个实施例中,不是使用步骤410的每个实例来标记数据文件本身,而是可以创建和/或更新表格以包含定义窗口片段的信息。在图11中图示出这样的表格的一个实例。具体地,图11可以定义具有可用于识别不同窗口片段的标记符、指示符或信息的窗口表格1100。在图示的具体的表格1100中,例如,可以使用特有标识(ID)来识别每个窗口片段。可以以任意数目的不同形式提供ID。为了简化,图11中的图示将ID示出为递增的数值ID。然而,在其它实施例中,可以提供其它ID。适合的ID的示例可以包括全局特有标识符(GUID),其示例可以表示为32个字符的十六进制字符串。这样的标识可以以其它方式被随机地生成或指派。在随机指派的情况中,由于可以生成的大量特有密钥,对于32个字符的GUID,随机生成同一数字两次的概率可以达到零。
[0115]窗口表格1100还可以包括用于识别窗口片段的其它信息。如图11中所示,窗口表格可以包括窗口片段的开始时刻(T1)和结束时刻(T2)。可以用绝对项或相对项提供与T1和T2对应的数据值。例如,时间值可以是毫秒或秒的,并且是关于它们是其一部分的时间切片来提供的。可替代地,时间值可以是关于整个数据文件或数据会话而提供的。在一些实施例中,还可以识别窗口片段开始处的幅度(A1X可选地,还可以标注窗口片段的结束幅度(A2)0在一些情况中,结束幅度(A2)可以表示回落到基线的数据的幅度。该示例标注在图4的方法400的其它步骤或动作中以及在识别在基线以上并用于设置窗口片段的连续偏离时可以是有用的。根据一些实施例,窗口表格1100也可以包括其它信息。例如,窗口片段1100可以指示窗口片段的最小和/或最大频率,以进一步标记连续偏差和/或定义有限频率范围上的窗口片段。
[0116]如鉴于本文中的本公开应当明白的,特别是在其中在动作402中数据被切割成离散的部分的实施例中,窗口片段可以不总是被干净地包含在特定数据切片内。即,数据信号的声音或其它分量可以在特定切片结束之前开始,而在这样的切片结束之后终止。为了考虑这样的场景,本公开的一个实施例包括识别可能存在于给定切片的外面的窗口片段重叠(动作418)。识别这样的窗口片段可以动态进行。例如,在步骤410中,如果窗口片段具有与时间切片的末尾相等的结束时间,则执行方法400的计算系统可以访问存储在数据缓冲器中的附加数据,变换数据404,并处理数据来识别窗口片段。在这样的处理中,在三维域中具有对应偏差的窗口片段随后可以被和与原始时间切片的连续偏差匹配,并且可以被分组到一起。
[0117]然而,识别动作418的窗口片段重叠或如果识别它们则执行重叠的识别不是必需的。例如,在另一实施例中,使用方法400接收和处理的数据可以包括将数据402切割成重叠的切片。图5例如图示出各个切片502a-502d,每个切片可以与另外的时间切片504a-504c重叠。重叠的时间切片可以被并行处理。因此,在图4的步骤410的窗口片段识别发生时,可以通过使用已经在处理的重叠的数据来自动启动识别片段重叠418的动作418。
[0118]尽管图5图示出时间切片的大约一半的重叠,但是,应当明白,这样的重叠仅仅是说明性的。在其它实施例中,重叠可以更大或更小。在至少一个实施例中,例如,在单个时间切片内可以存在三个或更多重叠的片段。例如,对于两个顺序的时间切片,重叠的时间切片可以重叠第一顺序的时间切片的三分之二,以及第二顺序的时间切片的三分之一。在其它实施例中,任何给定的时间切片可以与多于三个时间切片重叠。
[0119]通过执行步骤410的多个实例,可以根据数据如何被处理,在特定的时间切片或文件内识别多个不同的窗口片段。在这样的识别后,窗口片段中的数据可以被进一步分析以识别每个窗口片段内的一个或多个频率进展。这可以通过指纹识别窗口片段的步骤420进行。步骤420中的指纹识别窗口片段可以解释窗口片段中的数据和分离一个或多个数据点。例如,用于窗口片段的主要或基本数据源可以被识别为单个频率进展。还如图4中所示,可以针对多个窗口片段同时执行指纹识别窗口片段的步骤420,并且可以在单个窗口片段内识别或产生多个指纹。
[0120]一旦窗口片段已经被识别,数据就能够被解释。解释数据的一种方式可以包括识别数据和数据的改变的对应的方法和/或速率。这可以通过查看图9的图形表示900来更好地理解。图9中的示图一般地提供表示图8的一个窗口片段802c的三维数据的示图,并且可以在其中包括一个或多个连续的频率进展。如在这样的示图中所示,点云数据,当被图示时,可以用于查看跨越三个维度(例如,时间、幅度和频率)的特定的区别的路径。每个频率进展可以具有特有的特性,所述特有的特性当被图形地表示时可以被示为每个频率进展具有不同的形状、波形或其它特性。在一个实施例中,跟踪功能可以被调用(例如,当工作流管理器调用工作者模块时,如图2中所图示的),并且可以跨越窗口片段的多个部分跟踪一个或多个路径。这样的路径一般可以表示相同的窗口片段内的不同频率进展,并且跟踪路径可以作为动作422的一部分被执行。
[0121]在一些情况中,可以在一窗口片段中找到单个频率进展,但是也可以找到多个频率进展。在至少一个实施例中,可以在一窗口片段中识别多个频率进展。图9,例如,图示出可以在同一窗口片段内并且甚至同时或大约同时开始的两个频率进展902a和902b。在一些情况中,当多个频率进展被识别时,可以在窗口片段内隔离单个频率进展。例如,基本或主要频率进展可以在动作424中被识别。这样的识别可以以许多不同方式的任一种进行。例如,频率进展可以被认为是基本频率进展,如果其具有最大幅度并且在窗口片段的开始处开始。可替代地,基本频率进展可以是具有最大平均幅度的进展。在其它实施例中,可以通过考虑其它因素来识别基本频率进展。例如,与基线的连续偏离内的最低频率处的频率进展可以是基本频率进展。在另一实施例中,具有最长持续时间的频率进展可以被认为是基本频率进展。其它方法或前述的组合也可以用于在动作424中确定基本频率进展。在图9中,频率进展902a可以是基本频率并且可以相对于频率进展902b具有更高的强度和更低的频率。
[0122]通过识别窗口片段内的各个频率进展,可以针对每个进展确定并可选地存储指纹数据,如在动作426中所示。在一个实施例中,在动作426中存储指纹数据可以包括存储与特定频率进展对应的点云数据。在其它实施例中,动作426可以包括散列点云数据或以其它方式基于频率进展的点云数据来获取表示或值。
[0123]指纹数据可以被存储在任意数目的位置中,并且以任意数目的方式被存储。在至少一个实施例中,可以维护一表格,其包括在动作410中识别的窗口片段的指纹信息。图12A-13例如图示出可以储存库指纹和/或窗口片段信息的表格的示例实施例。图12A的表格1200可以表存储有关被识别为与特有的频率进展对应的每个指纹的彳目息的表格。例如,如图12A中所示,表格1200可以用于存储识别正被分析的数据内的三个或更多个窗口片段的信息。当频率进展被跟踪或以其它方式被识别时,与那些频率进展对应的数据可以认为是指纹。每个指纹和/或窗口片段可以被惟一地识别。更具体地,可以使用ID来识别每个窗口片段,ID可选地对应于图11的窗口表格1100中的ID。相应地,在窗口表格1100中特有地识别的每个窗口片段都可以在图12的表格1200中具有对应的条目。
[0124]另外,在步骤420中所识别或所产生的每个指纹可以在表格1200中被可选地援引或包含。在图12A中,例如,提供相似度数据区间。用于窗口片段的每个指纹可以具有存储在相似度数据中的对应值或标识符以及该指纹等于其自身的指示。例如,如果在窗口片段0001中,用于窗口片段的第一指纹被识别为FPw,数据集或阵列中的一条目可以指示该指纹等于其自身。在该实施例中,例如,可以用O和I之间的值来表示相似度,其中O表示没有相似度而I表示相同的准确匹配。与窗口片段0001相对应的阵列或其它容器中的文字“FP^l”可以指示指纹FPh是与`其自身的完美匹配(100%)。为了方便,在提及表格1200时,这样的表格在本文中可以称为“全局散列表格”,但是不应认为,表格1200必需包括散列值或表格中的任何值或数据本质上是全局的。而是,全局散列表格可以在这个意义上是全局的,即,来自散列表的数据可以被本文中公开的其它表格使用或以其它方式从对其的公开的回顾中习得。
[0125]可以按照需要修改图12A的表格1200中的数据。在一些实施例中,例如,当附加的窗口片段和/或指纹被识别时,表格1200可以被更新以包括附加的窗口片段和/或指纹。在其它实施例中,附加的信息可以被添加,或信息甚至可以被移除。相应地,根据一些实施例,指纹数据可以被存储,如图4的动作426中所示。在至少一个实施例中,指纹数据可以被存储在图12A的全局散列表格1200中,但是在其它实施例中,指纹数据可以存储在其它位置中。例如,指纹数据可以存储在图13中示出的指纹表格1300中,在以下另外地详细描述该表格。
[0126]在产生各个窗口片段和指纹后,方法400可以包括缩减指纹428的步骤。在至少一个实施例中,缩减指纹428可以包括比较同一窗口片段内的指纹的动作430。
[0127]更具体地,一旦一窗口片段内的频率进展已经(例如,通过产生其指纹)被识别,频率进展内的改变的方法和速率可以被跟踪或以其它方式确定以用于与同一窗口片段内的其它频率进展比较。可选地,比较频率进展包括比较指纹和针对每个指纹确定相似度。可以使用任何尺度或相似度分级机制,但是在图示的实施例中,可以在O到1的尺度上确定相似度值,其中O指示没有相似度而1指示相同匹配。
[0128]特定窗口片段共同的指纹的相似度数据可以被识别或被存储。例如,图12B图示出图12A的全局散列表格1200,其中该表格被更新为包括某些相似度数据。在该实施例中,与ID 0001相关联的第一窗口片段被示为具有与之相关联的五个指纹。这样的指纹被识别为FPh到FPh。第二窗口片段被示为具有四个识别的指纹,并且第三窗口片段被示为具有两个识别的指纹。
[0129]在每个窗口片段内,指纹可以被比较。指纹FPw,例如,可以被与其它四个指纹比较。这样的指纹在改变的方法和/或速率方面如何相似的度量可以被存储在全局散列表格1200的相似度部分中。在该实施例中,例如,可选的阵列一可选地,多维阵列一可以存储每个指纹相对于同一窗口片段中的每个其它指纹的相似度值。结果,图12B图示出一阵列,该阵列示出指纹FPw相对于同一窗口片段中的所有其它指纹的相似度值。指纹FP"到FPp5可以每个被迭代地比较以获取相似度值,但是一旦已经在两个指纹之间执行了比较,就不需要重复了。更具体地,在指纹上进行迭代并将它们与其它指纹比较时,两个指纹之间的比较仅需要进行和/或被参考一次。例如,如果指纹FPh被与指纹FPh比较,则指纹FPp3不需要被与指纹FPh比较。单个比较的结果可以可选地被存储一次。在图12B的表格1200中,例如,指纹FPn和FPh之间的比较可以产生相似度值0.36,并且可以在与指纹FPh对应的阵列的部分中找到该值。因此,图示的阵列具有缩减的信息,因为随后的指纹与之前的指纹的比较不需要被执行或被冗余地存储。
[0130]通过在动作430中比较指纹生成的相似度数据可以表示不同指纹之间的共同性,并且那些共同性可以对应于相似度或模式。示例模式可以包括关于三个维度中的任意维度中的值改变的方法和/或速率的相似度。对于音频数据的示例,例如,频率和/或幅度可以在特定数据指纹上改变,并且那些改变发生的方式可以被与其它数据指纹的频率和/或幅度改变相比较。
[0131]当数据被比较时,满足一个或多个阈值或标准的指纹可以被确定为是相似的或甚至是相同的。例如,在所描述的相对于O和I之间的尺度测量相似度数据的示例中,具有某一阈值以上的相似度值(例如,0.95)的数据可以认为是充分类似于指示数据实际上相同,尽管发生了多次。因此,如图12B中所示,相似度值指示指纹FPh具有相对于指纹FPh的相似度值0.97和相对于指纹FPp4的相似度值0.98。类似地,指纹FPh被示为具有相对于指纹FP^的相似度值0.99。
[0132]当数据相同或充分相似而被视为相同时,多个指纹可以被缩减以避免冗余。在图12B的全局散列表格1200内,例如,指纹FPh和FPy可以被消除,因为它们可以被认为与指纹FPw相同。此外,指纹FPp5如果与指纹FPp2相同则可以被消除。通过类似的处理,指纹FP2_2到FP2_4和FP3_2在它们可以被认为分别相对于指纹FPp1和FPp1是相同的时可以被消除。图12C示出缩减相同指纹之后的示例全局散列表格1200,在该实施例中,其对于窗口片段0001仅包括两个指纹并且对于窗口片段0002和0003中的每个包括一个指纹。在一些实施例中,所保持的(一个或多个)指纹是对应于窗口片段内的基本频率的那些。[0133]尽管以上描述包括用于消除充分相似的指纹的实施例,但是其它实施例可以采用其它方法。例如,相似的指纹可以被分组到集合中,或指示符可以被提供回其它类似指纹。在其它实施例中,可以保持指纹的所有信息,而不论相似度如何。
[0134]另外,用于确定哪些数据指纹相同或充分相似而被视为相同或确定相似度的方法的具体阈值或标准可以根据不同环境或偏好而不同。例如,用于确定指纹之间的必需的相似度水平的阈值可以被硬编码,可以被用户改变,或可以被动态地确定。例如,在一个实施例中,窗口片段可以被分析来识别谐波,如动作432中所指示的。一般而言,给定频率处的声音可以在特定的额外的频率和距离共振。其中出现该共振的频率称为谐波频率。通常,谐波频率处的音频数据的改变的方法和速率与基本频率的那些类似,但是尺度可以在一个或多个维度上变化。因此,对于某些音频数据,谐波的频率进展和指纹可以是相似或相同的。
[0135]通常,谐波频率进展在同一窗口片段被展现。在一个示例实施例中,基本频率进展可以被确定,并且该数据的指纹可以被与数据片段内的可能存在于其它频率处的数据相比较。如果对于已知谐波频率处的数据存在指纹,则该谐波数据可以被移除,被分组在集合中,或利用指示符被援引至基本频率进展,如在本文中所公开的。在一些情况中,如果相似度值未达到确定的阈值,则阈值可以可选地被动态修改而允许谐波被分组,被消除,或以其它方式被按需处理。
[0136]确定不同频率进展的指纹之间的相似度可以用作音频或其它数据内的模式识别的技术,并且实际上可以用于确定在数据元素之间存在的共同性。这样的元素可以在相同的数据中,但是,共同性也可以是相对于不同数据集的元素来确定的,如以下所描述的。
[0137]可以使用任意数目的不同技术来确定相似度值、共同性或其它特征,每个技术可以适合于各种不同的应用。根据本公开的一个实施例,边缘重叠比较可以用于识别不同数据元素之间的共同性。作为边缘重叠比较或另一比较机制的一部分,与一个指纹或频率进展对应的数据点可以被与和另一指纹或频率进展对应的那些相比较。例如,比较指纹的动作430可以尝试将一个频率进展重叠在另一个上。频率进展可以在三个维度的任何维度或所有维度上被拉伸或以其它方式缩放来逼近底层的频率进展。当这样的缩放被执行时,作为结果产生的数据可以被比较并且相似度值可以被产生。相似度值可以用于确定两个指纹内的改变的方式和速率之间的相对相似度。如果相似度值在特定阈值之上,则数据可以被认为是类似的或被认为是相同的。相同的数据可以分组到一起或消除冗余,如本文中讨论的。被认为相似但是不在将被认为相同的阈值以上的数据也可以被消除或被分组,或者可以以其它方式被处理,如本文中讨论的。
[0138]边缘重叠或其它比较处理可以比较整个频率进展,或可以比较其部分。例如,频率进展可以具有各种高度区别的部分。如果这些部分在其它频率进展中被识别,则高度区别的部分可以相对于频率进展的其它部分被更高地加权,以使得被比较的指纹产生足以允许指纹被消除、被分组或以其它方式被使用的匹配。当边缘重叠或其它比较没有找到匹配时,诸如当在三个维度中的任意维度或所有维度上拉伸或以其它方式缩放指纹没有产生阈值以上的相似度值时,可以认为指纹是其自己的集合或样本,因为数据元素可能具有与其它指纹的特性(例如,数据元素的改变的速率或方法)不充分相似的特有特性。
[0139]鉴于本文中的本公开应当明白,一些实施例可以针对每个窗口片段产生多个指纹,但是在操作中,许多窗口片段可以对于一个窗口片段产生单个指纹。在其它实施例中,步骤428中指纹的缩减可以可选地包括将多个指纹缩减为单个指纹,或者通过消除相似的指纹、将相似的指纹分组成集合,或包括到对应窗口片段的基本指纹或频率进展的指示符。单个窗口片段内的多个指纹还可以认为是不相似的并且存在。例如,具有相同开始时刻和结束时刻的两个频率进展可以相交。在这样的情况中,跟踪功能可以跟踪不同的频率进展并且在进展跨越的位置处,可以观测到幅度中不期望的尖峰。因此,所跟踪的指纹可以被分离地处理同时保持在单个窗口片段内被识别。在其它实施例中,在单个窗口片段中识别多个不相似的频率进展的情况中,可以获取主导片段并消除其余片段,或可以在图11的窗口表格1100、图12A-12C的全局散列表格1200和/或图13的指纹表格1300中创建新的窗口片段标识符,以使得每个窗口片段具有与之对应的单个指纹。
[0140]鉴于本文中的本公开应当明白,比较对应于窗口片段内的频率进展的指纹、识别对应于基本频率进展的谐波级数和/或识别相似或相同指纹可以简化方法400期间的处理。例如,在方法400在多个指纹和窗口片段上迭代的情况中,消除或分组指纹可以缩减要执行的操作的数目,诸如稍后与额外的指纹的比较。这样的高效性在其中数据正被实时处理或其中执行方法400的计算设备具有较低处理能力的实施例中特别显著,以使得方法400可以以不产生显著延迟的及时的方式被自主完成。
[0141]本公开的实施例的另一方面在于数据质量或特征可以被识别并甚至有可能被提高或增强。例如,在音频信号的示例中,音频信号有时可以被剪辑。音频剪辑可以在麦克风、均衡器、放大器或其它组件处发生。在一些实施例中,例如,音频组件可以具有最大容量。如果会超过该容量的数据被接收到,则会对超过容量或组件的其它能力的数据进行剪辑。结果可以是能够以二维波形或以本文中所公开的三维数据集反映的数据,其具有在数据的峰处的高地(plateaus)。
[0142]然而,本公开一些实施例的谐波分析的一个方面是谐波可以出现在相对于基本频率更高的频率处。在更高的频率处,需要更大的功率来维持希望的音量电平并且因此,谐波频率处的音量常常迅速降落。
[0143]由于减小的幅度,谐波频率处的频率进展可以不以与基本频率处的数据相同的方式被剪辑,或者剪辑可以不那么重要。一旦基本频率这样被识别,谐波频率也可以被确定。如果在谐波频率和基本频率处的数据的指纹中存在显著差异,则来自谐波频率进展的数据可以被推断为在基本频率进展上。即,谐波频率进展的三维数据内的改变的方法和速率——如果数据被绘制,那些数据可以对应于形状或波形的改变——可以被添加到基本频率进展数据来产生可以被比较和被确定为相同或几乎相同的数据。该处理一般由图4中的动作434表示。在这样的实施例中,可以使用谐波频率进展来混叠频率进展,并且这样的动作有可能可以提高数据质量或恢复经剪辑或以其他方式改变的数据。频率进展的混叠版本随后可以被保存为特定窗口的指纹,并且可以替换之前剪辑的数据的指纹。
[0144]如以上所讨论的,指纹可以在同一窗口片段内被比较来识别其它相似指纹,并且窗口片段信息随后可以被缩减至一个指纹或较少数目的指纹。一般,这些窗口片段具有相同的开始时刻和结束时刻,使得窗口内的音频或其它信息常常包括相同的信息的变形。在同一窗口片段外面,也可以存在相似的共同性或其它模式,不论数据是否是音频数据、视觉数据、数字数据、模拟数据、压缩数据、实时数据、基于文件的数据,或其它数据,或前述的任意组合。本公开的实施例可以包括相对于不同窗口片段内的指纹来评估指纹并相对于不相似的数据元素来分离相似或相同的数据元素。
[0145]例如,在音频数据的上下文中,每个人、设备、机器或其它结构通常具有产生其结构特有的声音的能力,并且声音可以使用本公开的实施例被识别以识别对应于具体声源的数据元素中的共同性。即使说不同单词或音节的人也可以产生具有允许所产生的音频数据被比较和被确定为高概率地相似的共同特质的声音。
[0146]比较音频或其它数据的能力可以允许本公开的实施例有效地解释数据和分离共同元素,诸如来自具体源、在延长的时段上、不同位置的声音,其是使用不同设备或基于各种其它类型的不同条件而产生的。做这些的一种方式是比较不同窗口片段的指纹。不同片段的指纹可以被比较来识别具有共同性的其它数据元素,或甚至相对于已知与特定源关联的模式被比较。
[0147]在本公开的一些实施例中,有关窗口片段和/或指纹的信息可以被存储以便允许跨越多个窗口片段的比较。例如,有关窗口片段和/或指纹的附加信息可以被存储在图13的指纹表格1300中。指纹表格1300可以包括其中可以识别窗口片段的ID部分。对于图12A-12C的全局散列表格1200和图11窗口表格1100,用于每个窗口片段的ID可以是一致的。换而言之,可以使用同一 ID值可选地在表格1100、1200和1300的每个中援引同一窗口片段。在其它实施例中,不是援引个别的窗口片段,而是可以使用指纹的标识。在这样的情况中,图示的表格中的一个或多个,或另外的表格,可以提供有关每个指纹对应于哪个窗口片段的息。
[0148]此外,在指纹表格1300内可以是其中可以存储频率进展的指纹的指纹部分。如以上注意到的,在一个实施例中,图4中的方法400的动作426可以包括针对所识别的频率进展在指纹部分中存储点云数据,或其表示,但是指纹数据的存储可以发生在任何时间或任意数目的不同位置中。在具体示例实施例中,数据blob可以存储在指纹部分中,其中数据blob包括单个指纹的三维点云信息。图10图示出在图9的窗口片段900内可以被跟踪或以其它方式被识别的单个频率进展1000。定义频率进展1000的点云数据,或其它数据,包括三维或更多维度中的相应的点、改变的方法和速率等,可以被存储为指纹或用于生成指纹。尽管一窗口片段可以具有针对其存储的单个指纹,但是一窗口片段也可以具有关于其存储或援引的多个指纹。例如,每个窗口片段0002-0007可以具有与之关联的单个指纹;然而,可以对应于窗口片段0001存储两个指纹。在一些情况中,针对给定窗口片段存储的指纹的数目可以随时间变化。例如,可以如本文中所讨论的那样缩减或组合指纹。
[0149]继续参考图4,步骤420中的窗口片段的指纹识别,步骤428中的指纹缩减以及动作434中的推断基本频率进展的数据中每个步骤一般都可以在多个窗口片段上被执行,其中每个窗口片段在分离的(并且可选地,并列的)处理中被处理。继续图4中的处理的示例,一旦已经针对一窗口片段完成了数据指纹识别,则可以执行比较来相对于其它窗口片段的指纹来识别一个指纹内的指纹的共同性。
[0150]在图4的动作436中,例如,指纹可以被与所有其它指纹比较。该动作可以包括仅比较在步骤428的指纹的缩减之后已经维持的指纹。另外,在一些情况中,可以仅针对在特定通信会话期间获得的指纹而不是所有时间的所有指纹执行该比较。在一个示例中,可以在特定通信或数据处理会话结束之后或在预定数量的时间之后,清除窗口表格1100、全局散列表格1200和指纹数据1300中的信息。因此,当新的通信或处理会话开始时,被比较的指纹可以是新识别的指纹。
[0151]在其它实施例中,指纹数据可以被永久性存储以用于比较目的。例如,例如如图14中所示的集合表格1400可以被提供和用于存储信息。每个集合可以被识别,并且可以对应于特有的模式,在音频数据的情况中,特有的模式可以对应于音频源。一个集合可以包括例如被认为来自特定的人的语音的音频数据。第二集合可以包括由特定乐器产生的数据元素。而另一集合可以包括在制造设施内操作的特定类型的机器的声音。也可以包括音频或其它信息的集合。
[0152]可以示出表格1400中的每个集合是使用编号识别的。编号可以是任何适合的类型,包括GUIDS,或甚至通常的命名惯例。例如,如果已知音频数据的集合与名为“Steve”的具体的人相关联,则标识符可以是名称“Steve”。因为集合可以对应于音频源,所以集合编号也可以独立于和不同于图11,12A-12C和13的表格内表不窗口片段的ID。集合表格1400也可以包括给定集合的所有指纹的表示。例如,集合表格1400可以包括数据blob,其包括集合内的每个相似指纹的指纹的数据。在其它实施例中,集合表格中的信息可以是指示符。示例指示符可以指回图13的指纹表格1300,其中,所识别的指纹可以被存储为数据blobs或存储为其它结构。如果如本文中讨论地清除指纹表格1300,则指纹表格1300中的数据可以引入集合表格1400中,或指纹表格可以仅让其部分被清除(例如,针对同一窗口片段或通信会话的其它指纹的比较数据)。
[0153]当时间切片、数据文件或其它源内的数据被解释时,来自多个不同窗口片段的指纹可以被产生、被缩减和/或被分组。具体地,一个时间点处的指纹可以具有与另一时间点处的指纹匹配的相似度值。比较指纹的动作436因此还可以包括用表示不同指纹之间的相似度的数据来标注图11-13的表格中的一个或多个。图12C,例如,图示出表格1200,在该表格中,来自多个不同窗口片段的指纹被参考和被比较。在该实施例中,例如,一阵列一可选地,多维或嵌套阵列一可以存储指示指纹FPw和FPp2相对于彼此和相对于其它指纹FPy1到FPh的相对相似度。
[0154]动作436中的指纹的比较也可以以许多不同方式中的任意方式执行。尽管是可选的,但是一个实施例可以包括使用与图4的动作430中使用的系统相似的系统。例如,边缘重叠比较可以用于比较两个指纹。根据这样的比较,可以通过相对于另一指纹重叠一个指纹并在三个维度的每一个中缩放指纹来改变三个维度中的每个维度内的值的改变的相对速率和方法。基于指纹的形式中的相似度,可以获得相似度值。可以比较整个指纹,或如上所述,可以比较指纹的局部部分,其中指纹的某些分量可选地相对于其它分量被加权。
[0155]在一些情况中,可以缩减被比较的指纹。例如,在音频数据的上下文中,两个指纹可以在时间上靠近,诸如在一个指纹是从回响,混响,或对声音质量的其它劣化产生的情况中。在该情况下,有可能消除额外的指纹。可以确定,相对于更主导的样本,由于声学或其它因素而产生相似或相同的指纹,于是随后可以消除这样的指纹。可替代地,同一时间点的两个指纹可以被识别为相同或相似,并且可以被缩减。作为结果产生的指纹可以在图12C的全局散列表格1200和/或图13的指纹表格1300中被识别,并且不同指纹之间的相似度的值或其它数据代表可以被包括在表格1200、1300中。
[0156]根据本公开的一些实施例,方法400中接收的数据集的一些元素可以相对于数据集的其它数据元素被分离。这样的分离可以基于指纹与其它指纹的相似度。如本文中讨论的,指纹相似度可以基于数据内的模式的匹配,所述模式可以包括识别诸如指纹之类的结构内的改变的速率和/或方法的共同性。在电话呼叫的上下文中,例如,可能希望相对于背景中的其它噪声隔离电话呼叫的外呼或入呼侧的扬声器的语音。在这样的情况中,与扬声器相关联的一个或多个指纹的集合可以基于指纹的共同方面被识别,并随后被提供用于输出。这样的选择可以以任意方式被执行。例如,根据一些实施例,执行方法400的应用可以处于电话设备上,并且能够自主地相对于其它声音分离人的语音。例如,在扬声器讲话时,扬声器可以提供音频信息,音频信息相对于其它个别的源是主导的。在数据的三维表示内,语音的主导本质可以被反映为具有最高幅度的数据。执行方法400的应用或设备因此可以将语音识别为主导样本,分离与主导样本的指纹类似的数据的指纹,并随后有可能仅发送或输出与该语音相关联的指纹。识别一个或多个窗口片段中的其它频率进展中的主导样本或频率进展可以是识别动作438中的输出的指定数据源或特性的一种方式。在一些情况中,计算应用可以被编程为识别与语音或其它音频数据相关联的某些结构,以使得非口声声音不太可能被认为是主导的,即便其在最高音量/幅度处。
[0157]在又一些其它实施例中,动作438中被指定用于输出的数据可以不是音频数据,或者可以以其它方式被识别。例如,应用可以提供用户界面或其它组件。当数据被解释并且一个或多个数据元素基于它们的共同性被分离时,分离的数据元素的不同集合可以供用于选择。这样的数据集因此可以每个对应于代表人或其它音频数据源、视觉数据中的物体的类型,或一些其它结构或源的特定指纹。选择分离的数据集中的一个或多个可以在处理数据之前、处理数据期间或在数据的处理和分离之后被执行。在示例实施例中,可以相对于一个或多个指定的指纹集合执行数据元素的比较,并且与指定集合不充分相似的任何指纹可以不被包括在分离的数据集中。
[0158]然而,满足某些标准的指纹可以被输出和可选地被存储在包括被确定为相似的其它指纹的群组或集合中。这样的分组可以基于使用如本文中所描述的阈值相似度值,或以许多不同方式中的任何方式。例如,如果对于方法400静态或动态地设置0.95的相似度阈值,相对于被指定用于输出的指纹具有95%或更高相似度的指纹可以被确定为足够相似而被认为是源自相同的源,并因此被准备用于输出。在其它实施例中,95%的相似度可以对于数据的两个元素不仅是同一数据源的而且是相同的提供充分高的概率。在语音音频数据的上下文中,相同数据集的高概率可以不仅指示同一个人正在讲话,而且正在发出相同的音节或声音。
[0159]在其中针对相似度评估数据元素的实施例中,可以执行向集合添加指纹的步骤440。如果确定指纹具有希望的阈值以上的相似度值,则指纹可以被丢弃或被忽略。可替代地,指纹可以用于建立附加的集合。在步骤444中,例如,可以创建新的集合。步骤444中的新集合的创建可以包括创建图14的集合表格1400的新条目并且包括表格1400的对应指纹部分中的指纹,或对可以存储在图13的指纹表格1300中的这样的指纹的参考。
[0160]然而,如果指纹被产生并且当被解释和与其它指纹比较时被确定为与现有集合的一个或多个指纹相似,则指纹可以被与数据集的其它数据分离。在一个实施例中,例如,被确定为与集合的其它数据相似的指纹可以被添加到那个集合。作为这样的处理的一部分,在动作446中,指纹可以被添加到与将要添加的指纹共有共同性的现有指纹集中。
[0161]在一些情况中,被确定为有匹配在动作438中设置或识别的某些标准的高概率的数据可以被从数据集排除,但是在其它实施例中,所有共同的数据可以被添加到数据集。表格1400中的数据集可以包括,例如,被确定为有从同一源源发或满足一些其它标准的充分高的概率的特有指纹的集合。因此,两个相同或近乎相同的指纹可以不被包括在同一集合中。而是,如果指纹被示出充分相似以致它们很有可能相同,则新识别的指纹可以被从可应用的集合中排除。相似但不是近乎相同的数据指纹可以继续被添加到数据集。
[0162]为了进一步图示出该点,一个示例实施例可以包括指纹或其它数据元素与多个阈值的比较。例如,相似度数据可以被获取并被与第一阈值相比较。如果满足该阈值,则方法可以认为数据与已知的指纹相同。这样的指纹随后可以与另一指纹分组并被认为是单个指纹,指示符可以用于指向相似指纹,指纹可以从相似和/或相同指纹的集合中被消除或被排除,指纹可以与之前的指纹一样被处理,或者指纹可以以其它方式被处理。在一个实施例中,例如,0.9和1.0之间的相似度值可以用于将指纹识别为相同。在其它实施例中,用于“相同”指纹的相似度值可以更高或更低。例如,两个数据元素之间的0.95的相似度值可以用于指示两个元素应当作为相同而不是仅仅相似来处理。新的条目可以不是必需随后被添加到图14的集合表格1400内,因为指纹可能被认为与已经包含在其中的指纹相同或等同。
[0163]随后可以利用另一阈值来确定相似度而非等同度。利用本文中所讨论的相同示例尺度,用于等同度的阈值可以被设置为0.7的相似度值或大约0.7的相似度值。被比较并且具有至少0.7的相似度的任何两个指纹一可选地,在0.7和上限阈值之间一可以被认为相似但不相同。在这样的情况中,新的指纹可以被添加到其中指纹被确定为具有自同一源源发的高概率或以其它方式相似的集合。当然,该阈值也可以变化,并且可以高于或低于0.7。例如,在另一实施例中,较低的相似度阈值可以在大约0.75和大约0.9之间。在另一示例实施例中,用于相似度的较低的相似度阈值可以是大约0.8。在至少一个实施例中,针对音频数据中的相似度评估指纹的相似度可以产生由具体的人讲出的不同单词或音节的集合。具体地,尽管不同的单词或音节可以讲出,但是与人的语音相关联的模式可以提供0.8或一些其它适合的阈值以上的相似度值。因此,指纹的集合可以随时间而继续建立并且可以开发具有相比较而言相似但不相同的指纹的更强壮的数据集。
[0164]根据本公开的一些实施例,被认为是“良好”数据的数据可以被输出或以其它方式被提供。这样的“良好”数据可以例如被写入输出缓冲器,如图4的动作448中所示。当确定数据具有满足动作438中所识别的指定的充分高的概率时,可以认为数据是“良好”的。这在当被指纹识别时共有关于一个或多个维度中的改变的方法和/或速率的共同性的数据内发生。例如,可以已知指纹与指定的输出源相关联,而相对于该指纹具有充分高的相似度值的其它指纹可以被分离和输出。将良好的输出写入输出缓冲器,或以其他方式提供分离的数据,在一些情况中可以实时发生,诸如在其中正在进行电话对话的情况中。具体地,表示时间切片的窗口片段内的频率进展的指纹可以被与源的其它已知的指纹比较。类似的指纹可以被隔离并且与之对应的数据可以被输出。该指纹也可以可选地被添加到供选择的
隹A
口 O
[0165]在一些实施例中,指纹数据本身可能不是适合于输出的形式的。相应地,在一些实施例中,指纹数据可以被变换为另一类型的数据,如动作450所表示的。在音频信息的情况中,例如,三维指纹可以被变换回二维音频数据。这样的格式可以与方法400中接收的信息的格式相似。然而,在一些实施例中,被输出的数据可以与输入数据不同。示例差异可以包括:输出数据包括已经与其它接收的数据元素分离的数据元素,使得隔离的或分离的数据被输出。隔离的或分离的数据可以共有共同性。可替代地,来自多个数据集的数据元素可以被输出,其中每个数据元素的集合具有某些共同性。在至少一个实施例中,将三维数据变换为二维表示可以包括对三维指纹数据或三维指纹数据的二维表示执行拉普拉斯变换,以将数据变换到另一二维域中。对于音频信息,例如,时间/频率/幅度数据可以被变换成时间/幅度域中的数据。
[0166]当数据被变换时,其可以被输出(参见图3的动作316)。在至少一些另外的或可替代的实施例中,来自一个或多个表格的信息可以用于输出分离的数据。例如,相对于图11的窗口表格1100,特定指纹可以被与具有具体开始时刻和结束时刻的窗口片段相关联。指纹因此可以通过使用开始时刻和结束时刻数据而被输出。开始和结束幅度或其它强度数据也可以用于将音频数据写入输出流以使得数据在正确的时刻以正确的音量提供。
[0167]相应地,方法400可以用于接收数据和通过对照数据内的其它数据元素分析数据元素而确定共同性来解释数据。共有共同性的数据随后可以被与其它数据分离和按需被输出或保存。图16图示出两个示例波形1600a、1600b,其中每一个表示可以在图5的波形500的处理之后被输出以解释和分离特定源的声音的数据。波形1600a,1600b可以每个对应于具有被与同一源相关联的可能性的数据,并且波形1600a,1600b中的每个可以被分离地输出,或者输出可以包括波形1600a,1600b两者。
[0168]鉴于本文中的本公开应当明白,图3和图4的方法可以以任意数目的方式被组合,并且不同的方法动作和步骤是可选的,可以在不同时刻被执行,可以被组合,可以以其它方式被更改。并且,图3和图4的方法不是必需在任意特定类型的数据上操作。因此,尽管一些示例涉及音频数据,但是相同或类似的方法可以结合视觉数据、模拟数据、数字数据、力口密数据、压缩数据、实时数据、基于文件的数据、或其它类型的数据使用。
[0169]此外,还应当理解,图3和4的方法可以被设计成在有或没有用户干预的情况下操作。在一个实施例中,例如,方法300和400可以诸如通过计算设备执行存储在计算机可读存储介质上的或以另一方式接收的计算机可执行指令而自主地操作。数据内的共同性可以被动态地和自主地识别并且相似的数据元素可以被分离。以这种方式,用于声音或其它类型的数据的不同结构不需要被预编程,而是可以改为被立即识别和分组。这可以通过例如相对于同一数据集内的其它数据元素分析区别的数据元素以确定关于结构的改变的方法和/或速率的那些共同性而发生。这样的结构可以定义在三个维度中,并且改变的速率和方法可以是相对于强度值的,例如但不限于音量或幅度。并且,方法300和400允许自主和回溯地重构和重建数据集和输出数据。例如,数据集可以自主地建立自身以进一步定义特定源或特性的数据(例如特定人的语音数据或由特定设备发出的声音)。即使没有用户干预,相似的数据也可以被添加到与特定源相关联的集合,而不论这样的数据是否被包括在输出数据中。并且,被分离的数据可以使用指纹或数据的其它表示被重建。这样的构造可以用于构造接收的完全数据集,或可以用于构建数据集的隔离的或分离的部分,如本文中所讨论的。
[0170]如鉴于本文中的本公开将明白的,本公开的实施例可以利用一个或多个表格或其它数据储存库来存储和处理可以在识别数据内的模式和输出与一个或多个指定的源对应的隔离的数据时使用的信息。图11-14图示出可以用于这样的目的的表格的示例实施例。[0171]图15示意性地图示出包括窗口表格1100、全局散列表格1200、指纹表格1300和集合表格1400中的每个并描述它们之间的相互影响的不例表格系统1500。一般,表格可以包括援引其它数据的数据或被用于对其它表格进行读或写,如在解释数据内的模式和隔离一个或多个指定的源的数据的处理期间所需要的。表格1100-1400—般可以以与之前所描述的方式相似的方式操作。例如,窗口表格1100可以存储表不一个或多个窗口片段的位置的信息。这些窗口片段的标识可以被提供给全局散列表格1200和/或指纹表格1300中的相同窗口片段的标识或与之一起使用。窗口表格1100还可以与集合表格1400 —起使用。例如,当与集合相关联的良好数据要被输出时,所识别的指纹可以使用存储在窗口表格1100中的时间、幅度、频率或其它数据值写入输出缓冲器。
[0172]全局散列表格1200还可以结合指纹表格1300使用。例如,全局散列表格1200可以识别窗口片段内的一个或多个指纹以及同一窗口片段内的指纹之间的比较相似度。相同或相似的指纹可以被缩减或指示符可以被包括来援引相似指纹的比较值,以使得重复的数据不需要被存储。指纹表格1300可以包括指纹本身,指纹可以用于提供用于全局散列表格1200的比较值。另外,指纹表格中的比较或相似度数据可以基于全局散列表格1200中的信息。例如,如果全局散列表格1200指示两个指纹相似,则对应的信息可以并入指纹表格1300 中。
[0173]集合表格1400也可以与指纹表格1300或窗口表格1100交互。例如,如前所述,集合表格1400可以包括对在定义的集合内的指纹的援引;然而,指纹可以存储在指纹表格1300中。因此,集合表格1400中的信息可以是到指纹表格1300中的数据的指示符。如也在以上注意到的,当用于集合的良好信息被识别用于输出时,存储在窗口表格1100中的与时间或其它数据值有关的信息可以用于输出在集合表格1400中识别的已知的良好值。
[0174]一般,本公开的实施例可以与实时音频通信或传输结合使用。使用这样的处理,具有比较相似的模式的信息的数据集可以被动态地开发并被用于隔离希望的声音。说明性的示例可以包括电话对话,其中,数据可以在外呼、入呼或中间设备处被处理并且某些信息可以被隔离和被包括。本公开的方法和系统可以在其中满足集合标准(例如,源自特定的人或源)的数据被包括在集合中的包含基础上进行操作。这样的处理可以与排他性处理相反,在排他性处理中,对照某些标准分析数据并且满足标准的数据被排除。
[0175]可以结合许多不同类型的数据、通信或情形利用本公开的实施例。另外,指纹、集合或其它模式数据可以以任意数目的不同方式被开发和共有。图17,例如,图示出可以与人的个人信息的容器相关联的联系人卡1700的视觉表不。根据一个实施例,卡1700可以包括联系人信息1702以及个人信息1704。
[0176]联系人信息1702 —般可以用于联系该人,不论是通过电话、电子邮件、邮件、地址等。相对照地,个人信息1704可以改为提供有关该人的信息。示例个人细节可以包括配偶或孩子的名字、人的生日或周年纪念日,有关该人的其它记录,等等。在一个实施例中,联系人卡1700可以包括有关用联系人信息1702识别的人的语音特性的信息。例如,使用本公开的方法,所识别的人发出的不同单词或音节可以被收集到信息的集合中并被识别为具有相似模式。该信息可以存储在集合表格或其它容器中,如本文中所描述的。在至少所图示的实施例,该集合信息也可以被提取和被包括作为联系人容器的一部分。因此,该人的发音特性可以与其它的人共有。在电话呼叫稍后被发起的事件中,有权访问用卡1700表示的联系人容器的计算系统可以立即开始使用或建立语音数据的集合,而不需要创建新的集合并随后将该集合与特定的源相关联。
[0177]在一个实施例中,电话可以访问个人信息1704中的语音数据的指纹来让设备的用户知道谁在电话呼叫的另一端。例如,可以从不知道的号码或甚至另一个已知的人的号码拨出电话呼叫。如果“John Smith”开始讲话,则进入电话可以能够识别语音模式并将它们与针对John Smith存储的语音数据的指纹相比较。在检测到语音模式匹配指纹的那些语音模式时,电话上的应用可以自动指示用户正在与John Smith讲话,而不论是通过显示名字“John Smith”,通过显示相关联的照片还是以其它方式给出呼叫另一端上的扬声器的指示。
[0178]本公开的实施例还可以用于其它环境中。例如,本文中公开的方法和系统,包括图3和4的方法,可以用于解释不是音频数据和/或不是实时数据的数据。例如,可以对音频数据或其它类型的数据执行基于文件的操作。例如,歌曲可以存储在文件中。一个或多个人可以在歌曲期间正在唱歌和/或一个或多个乐器诸如诸如吉他、键盘、贝司或鼓可以每个被奏响。在实况记录时,人群的欢呼和噪声也会被包括在背景中。
[0179]可以以与如上所述非常相同的方式分析数据。例如,参考图3,数据可以被访问。随后可以使用图4的方法来包含或隔离数据。在这样的方法中,数据可以被从二维表示变换为三维表示。这样的文件不需要如图4中所示被切割,而是可以改为通过识别整个文件内而不是特定时间切片中的窗口片段而作为整体被处理。可以识别和标记与噪声基底或其它基线的偏差。在时间切片被创建的情况中,可以不需要如图4中所示那样识别重叠。而是,所有窗口片段的频率进展都可以被指纹识别、比较并可能被缩减。在一些情况中,一个或多个输出集合可以被识别。例如,图18图示出用于能够分析文件的应用的示例用户界面1800,在该具体实施例中,文件可以是音频文件。在该应用中,来自文件的音频信息已经被访问和解释。以与本文中所公开的方式一致的方式使用数据元素与数据集内的其它元素的比较,已经识别具有来自相同源的高概率的不同数据元素集合。
[0180]在图18中图示的具体实施例中,例如,可以提供原始文件1802,并且已经识别五个不同数据元素集合中的每一个。这些元素可以包括两个语音数据集1804、1806和三个乐器数据集1808-1812。各个集合的分离可以自主地仅基于所分析的文件1802内的共同特征来完成。在其它实施例中,之前使用文件或其它数据的自主分析所产生的其它数据集也可以用于确定音频文件的哪些特征对应于特定集合。
[0181]一旦文件被分析,每个集合1804-1812可以经由用户界面1800被呈现。这样的集合可以被用户独立地选择,并且每个集合可以可选地被输出为分离的文件或独立于其它集合被播放。在一些实施例中,可以以许多不同方式选择和组合集合。例如,如果用户想要播放任何东西除了语音之外,则用户可以选择播放集合1808-1812中的每个。如果用户想要只听到主要的发音,则用户可以选择只播放集合1804。当然,可以使用任意其它组合以使得分离的音频可以按照用户希望的任何方式并且以任何级别的粒度被组合。以这种方式,用户可以能够执行对音频数据的分析并分离或隔离特定的音频源,而不需要高度复杂的音频混合设备或如何使用那样的设备的知识。而是,接收的数据可以基于数据本身中被识别的模式被自主地呈现和/或重构。
[0182]本公开的实施例一般可以由计算设备执行,并且更具体地,响应于由在计算设备上运行的应用提供的指令而执行。因此,与某些之前存在的技术相比,本公开的实施例可以不需要特定的处理器或芯片,而是一旦适合的应用被安装就可以在通用或专用计算设备上被运行。在其它实施例中,硬件、固件、软件或前述的任意组合可以用于指导计算设备或系统的操作。
[0183]本公开的实施例因此可以包括或利用专用或通用的计算机,其包括计算机硬件,诸如,例如,一个或多个处理器和系统存储器,如在本文中更详细地讨论的。本公开的范围内的实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理的和其它的计算机可读介质,包括用于执行特定功能或指导其它模块的选择或执行的应用、表格或其它模块。这样的计算机可读介质可以是可以被通用或专用计算机系统访问的任何可用的介质。存储计算机可执行指令的计算机可读介质是物理的存储介质。执行计算机可执行指令的计算机可读介质是传输介质。因此,例如,但不是限制性的,本公开的实施例可以包括至少两种有区别地不同的类型的计算机可读介质,至少包括计算机存储介质和/或传输路径。
[0184]计算机存储介质的示例包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储介质、磁盘存储介质或其它磁存储设备,或可以用于以计算机可执行指令或数据结构的形式存储希望的程序代码装置并且可以被通用或专用计算机访问的任何其它非传输介质。
[0185]“通信网络” 一般可以定义为使能计算机系统和/模块、引擎和/或其它电子设备之间的电子数据的传输的一个或多个数据链路。当信息通过通信网络或与计算设备的另一通信连接(或者硬连线、无线或硬连线或无线的组合)而被传输或提供时,计算设备适当地将该连接视为传输介质。传输介质可以包括通信网络和/或数据链路、载波、无线信号等,它们可以用于以计算机可执行指令或数据结构的形式承载希望的程序或模板代码装置并且可以被通用或专用计算机访问。物理存储介质和传输介质的组合也应当包括在计算机可读介质的范围内。
[0186]此外,在实现各种计算机系统组件时,计算机可读指令或数据结构的形式的程序代码装置可以自动从传输介质被传输到计算机存储介质(反之亦然)。例如,通过网络或数据链路接收的计算机可执行指令或数据结构可以被缓冲在网络接口模块(“NIC”)内的RAM中,并且随后最终被传送到计算机系统RAM和/或计算机系统处的不那么易失性的计算机存储介质。因此,应当理解,计算机存储介质可以包括在也利用(或甚至主要利用)传输介质的计算机系统组件中。
[0187]计算机可执行指令例如包括当在处理器处被执行时使得通用计算机、专用计算机或专用处理设备执行某些功能或某组功能的指令和数据。计算机可执行指令可以例如是二进制的中间格式的指令,诸如汇编语言或甚至源代码。尽管已经以特定于结构特征和/或方法动作的语言描述了主题,但是应当理解,在所附权利要求书中所定义的主题不是必需受限于以上所描述的特征或动作,也不受限于由以上所述的组件来执行所描述的动作或步骤。而是,所描述的特征和动作被公开作为实现权利要求的示例形式。
[0188]本领域技术人员将认识到,可以在具有许多类型的计算机系统配置的网络计算环境中实行这些实施例,所述计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持设备、可编程逻辑机器、多处理器系统,基于微处理器的或可编程的消费电子设备、网络PC,平板计算设备,迷你计算机、主机计算机、移动电话、PDA、服务器等。[0189]实施例也可以在分布式系统环境中实行,在分布式系统环境中,通过网络(或者通过硬连线的数据链路、无线数据链路,或者通过硬连线和无线的数据链路的组合)连接的本地和远程计算机系统两者都执行任务。在分布式系统环境中,程序模块可以处于本地和远程计算机系统两者中。
[0190]产业应用
[0191]一般,本公开的实施例涉及用于解释和分离数据的自主的动态系统和应用。这样的自主系统可以能够仅基于为识别模式而呈交的数据来分析数据,而不需要涉及数据模式的算术、算法的或其它的确定的定义。可以根据本公开的实施例解释和分离的数据可以包括实时数据、存储的数据或其它数据或前述的任意组合。并且,被分析的数据的类型可以改变。因此,在一些实施例中,分析的数据可以是音频数据。然而,在其它实施例中,数据可以是图形数据、视频数据、股票市场数据、医疗成像数据或任意数目的其它类型的数据。
[0192]本文中公开了其中可以实时地例如在电话呼叫中获取音频数据的示例。本文中所构想的系统和应用可以用在端用户设备处、或用在任何中间位置处。例如,蜂窝电话可以运行与本文中的公开一致的应用,其解释和分离从设备的用户或从另一端用户设备的用户接收的音频。该数据可以被分析并且特定用户的数据可以被与背景或其它噪声分离和隔离。因此,即使在噪声环境或在其中数据压缩向数据添加噪声的环境中,人的语音也可以被清晰地播放。类似地,系统可以解释和分离数据同时远离端用户设备。蜂窝电话运营商例如可以在服务器或其它系统处运行应用。当从一个源接收到语音数据时,数据可以被解释并且用户的语音被与由环境、技术或其它源引起的噪声分离。分离的数据随后可以以与其它噪声分离的方式被发送给(一个或多个)其它端用户。在一些实施例中,蜂窝电话用户或系统管理员可以能够设置策略或将应用开/关以便选择性地解释和隔离数据。用户可以例如仅在噪声环境中或在已经难以听到另一呼叫方时打开本地运行的应用。服务器可以选择性地对来自端用户或管理员的输入执行应用。在一些情况中,可以在电话呼叫的中间激活或撤销系统或会话。例如,一示例实施例可以用于自动检测电话呼叫一端上的扬声器,并且相对于其它噪声或音频隔离扬声器的语音。如果电话递给另一个人,则手动或自动地,应用可以被撤销,或会话可以被重启,以使得新的扬声器的语音可以被听到和/或相对于其它声音被隔离。
[0193]根据另一个方面,本公开的系统、设备和应用可以用于演播室设置中的音频数据。例如,音乐师可以能够使用采用本文中公开的方面的系统来分析所记录的音乐。具体的音频样本或乐器可以被自动和有效地检测和隔离。音乐师可以仅提取特定轨道或特定轨道集合。因此,在乐曲制作之后,本公开的系统可以自动地将歌曲去混合。随后,任何希望的轨道可以被混合、被修改或以其他方式被更改或调整。任何白噪声、背景噪声、附带的噪声等也可以在样本被再次组合之前被提取和消除。实际上,在一些实施例中,给与制作音乐的人或群组以可听性的指令甚至可以被记录并被有效地滤除。因此,音频混合和主控系统可以结合本公开的各个方面并且音乐师可以节省时间和金钱,因为系统能够自主地、高效地、有效地并且无损地隔离特定的轨道。
[0194]根据本公开的另外的实施例,其它声学设备也可以结合本公开使用。例如,助听器可以有益地结合本公开的各个方面。根据一个实施例,使用内建到助听器或其它收听增强设备中的应用或使用与这样的设备接口的应用,助听器可以用于不仅增强收听,也将希望的声音与不想要的声音分离。在一个示例中,例如,助听器用户可以在公共场合与一个或多个人对话。对话中所涉及的那些人的语音可以被与外部的和不希望的噪声或声音分离,并且,仅那些语音可以使用助听器或其它设备被呈现。
[0195]这样的操作可以结合在移动设备上运行的应用被执行。使用无线或其它通信,助听器和移动设备可以通信,并且移动设备可以识别被助听器听到的所有不同的声音或源。用户可以分类或选择他们想要的特定源,并且该源可以以与所有其它音频源隔离的方式被呈现。
[0196]使用本公开的实施例,也可以实现其它特征。使用助听器的人例如可以在移动应用或其它应用上设置警报。当助听器听到与警报对应的声音时,用户可以被通知。用户可以例如想要被通知是否听到特定语音、是否电话响了,是否门铃响了等,每个声音可以与和该特定音频源对应的指纹集合或其它数据一致。
[0197]其它音频有关的字段可以包括语音或文字识别系统中的使用。特定指纹可以例如被与特定音节或单词相关联。当遇到该指纹时,根据本公开的系统可以能够检测正在说的是什么单词——有可能与其它声音组合。这可以用于使用语音识别系统来打字,或甚至用作审查器。例如,诅咒可以被隔离并且不被输出,或可以甚至被自动替换为更善意的单词。
[0198]又一些其它音频使用可以包括隔离声音来改进睡眠习惯。打鼾的配偶或室友可以让打鼾的声音被隔离以最小化晚上的打扰。汽笛、大声的邻居等也可以被隔离。在另一上下文中,可以改进实况事件。结合本公开的系统或与本公开的系统关联的麦克风可以包括声音隔离技术。欢呼或其它噪声可以被隔离以不被发送到扬声器,或甚至对于记录而言,实况事件可以被记录成就像演播室制作一样的声音。
[0199]根据又一些示例实施例,其它领域可以从本文中公开的技术受益。在一个实施例中,例如,电话呼叫或其它对话可以被记录或被无意地听到。信息可以被解释和被分析,并且被与文件上的其它信息比较。一个人的语音的模式可以用于判断语音是否是针对特定人的匹配,以使得不论用于捕获声音的设备、源位置等如何,人都可以被可靠地识别。特定语音的模式也可以被识别并且在语音识别系统中被比较以针对用户认证对文件、楼宇或其它资源的访问权。
[0200]类似的原理可以用于识别背景声音。火车站的通告可以被分离和听到是与特定火车或地点一致的,以使得被听到在附近的人的位置可以被更容易地识别,甚至不需要复杂的音频混合设备。当然,火车站的通告仅仅是一个示例实施例,并且还可以识别其它声音。可以基于声音数据内的模式的识别和元素的共同性识别的其它声音的示例可以包括识别特定的管弦乐队或甚至特定管弦乐队中的乐器(例如特定的Stradivarius小提琴)。可以识别的其它声音包括特定动物的声音(例如某类型的鸟、灵长类或其它动物特有的声音)、机器(例如制造设备、电梯或其它传输设备、机场通告、建筑设备或其它重型设备等等)特有的声音,或其它类型的声音。
[0201]除音频数据之外的数据也可以被分析和被解释。例如,图像可以被扫描并且数据可以使用本文中所公开的自主模式识别系统被分析。在医疗领域,例如,X射线、MR1、EEG、EKG、超声、CT扫描等可以生成通常难以分析的图像。利用本公开的实施例,图像可以被分析。由于谐波失真产生的数据可以使用本文中的实施例来缩减。并且,当遇到具有不同密度、成分、反射/折射特性的材料或其它元素时,每一个都可以产生特有的指纹以允许对材料的有效识别。恶性脑瘤可以例如具有与正常组织或甚至良性脑瘤不同的组成。通过自主的和非侵入性技术,可以分析图像来不仅检测材料是什么的一并且不需要活组织检查一并且还检测其位于哪儿,其大小,其是否在体内扩散等等。在甚至更微观的级别,存在的特定病毒可以被检测以使得甚至模糊的病也可以被快速诊断。
[0202]相应地,本公开的一些实施例可以涉及实时数据、存储的数据或其它数据或前述的任意组合的自主的动态的解释和分离。并且,可以被处理和分析的数据不限于音频信息。实际上,本文中所描述的实施例可以结合图像数据、视频数据、股票市场信息、医疗成像技术或任意数目的其它类型的数据来使用,其中,模式检测将是有益的。
[0203]尽管前述描述包含许多具体内容,但是这些不应被理解为限制本发明的范围或所附权利要求中任一项的范围,而仅仅是提供与可以落在本发明和所附权利要求书的范围内的一些具体实施例有关的信息。描述了不同的实施例,其中一些结合了不同的特征。关于一个实施例图示或描述的特征是可交换的和/或可以结合本文中任意其它实施例的特征组合采用。另外,也可以构想在本发明和所附权利要求书的范围内的本发明的其它实施例。因此,本发明的范围仅由所附权利要求书和它们的法律等同物指示和限定。落在权利要求书的含义和范围内的对本文中所公开的本发明的所有添加、删除和修改都由权利要求书涵
至JHL ο
【权利要求】
1.一种计算机实现的方法,用于解释和分离数据集的数据元素,包括: 使用计算系统来访问数据集; 使用计算系统来自动解释数据集,其中,解释数据集包括将数据集内的多个元素中的各相应的一个元素的改变的方法和速率与数据集内的所述多个元素的其它每个元素比较;以及 使用计算系统来将数据集分离成一个或多个集合分量,每个集合分量包括在改变的方法和速率方面具有相似结构的数据元素。
2.如权利要求1所述的方法,其中,分析结构的改变的方法和速率包括将改变的方法和速率考虑成所访问的数据集的强度值。
3.如权利要求1所述的方法,其中,分析改变的方法和速率包括: 生成具有三维或更多维度的数据的指纹;以及 比较具有三维或更多维度的数据的所生成的指纹。
4.如权利要求3所述的方法,其中,比较所生成的指纹包括在所述三维或更多维度中的任意维度或所有维度中缩放至少一个指纹并且将经缩放的所述至少一个指纹与另一指纹比较。
5.如权利要求1所述的计算机实现的方法,其中,所访问的数据集包括实时数据或基于文件的存储的数据中的一者或多者。
6.如权利要求1所述的计算机实现的方法,其中,使用计算系统来自动解释数据集包括:` 将所访问的数据集从二维表示变换成三维或更多维度的表示;以及 比较所述三维或更多维度的表示的所述三维或更多维度上的改变的方法和速率。
7.如权利要求1所述的计算机实现的方法,其中,访问数据集,解释数据集,和分离数据集的计算系统是: 端用户电话设备;或 辅助至少两个端用户电话设备之间的通信的服务器。
8.如权利要求7所述的计算机实现的方法,其中,解释和分离数据集在实时通信中引入延迟,其中所述方法还包括: 输出数据,其中: 当解释和分离数据集引入少于时间约束的延迟时,输出数据包括分离的数据;并且 当解释和分离数据集引入大于时间约束的延迟时,输出数据包括所访问的数据。
9.如权利要求1所述的计算机实现的方法,其中,解释和分离数据集包括识别一个或多个相同的数据元素以及将相同的数据元素缩减为单个数据元素。
10.如权利要求1所述的计算机实现的方法,其中,解释和分离数据集包括识别谐波频率处的重复的数据。
11.如权利要求10所述的计算机实现的方法,其中,识别谐波频率处的重复的数据包括使用谐波频率处的第二数据元素来混叠第一数据元素。
12.如权利要求1所述的计算机实现的方法,其中,将数据集分离成一个或多个集合分量包括从经解释的数据重构所访问的一个或多个数据集的至少一部分,所访问的数据集的经重构的部分包括所述一个或多个数据集中被确定为具有源发自共同源或识别共同源的高概率的第一集合的数据元素。
13.如权利要求1所述的计算机实现的方法,其中,将数据集分离成一个或多个集合分量包括基于在数据集内单独地识别的模式并且不参考数据元素的外部的或外在的模式或特征来创建至少一个集合分量。
14.一种用于解释和分离数据集的数据元素的系统,包括: 一个或多个处理器;以及 一个或多个计算机可读存储介质或硬件组件,其存储有计算机可执行指令,所述指令当被一个或多个处理器执行时,使得执行如权利要求1-13中任一项所述的方法。
15.如权利要求1-13中任一项所述的系统,其中,所述数据集包括音频数据、图像数据和视频数据中的一个或多个,并且其中,使用计算系统来自动解释数据集包括: 将所访问的数据集从第一格式变换为第二格式; 使用第二格式的所述数据集来识别多个窗口片段,每个窗口片段对应于经变换的数据内相对于基线的连续偏离; 针对所述多个窗口片段的每一个生成一个或多个指纹; 比较所述一个或多个指纹并确定所述一个或多个指纹之间的相似度; 其中,将数据集分离成一个或多个集合分量包括相对于在相似度阈值以下的其它指纹分离满足或超过相似度阈值的 指纹。
【文档编号】G06K9/00GK103688272SQ201280021228
【公开日】2014年3月26日 申请日期:2012年3月3日 优先权日:2011年3月3日
【发明者】T·L·埃德沃茨 申请人:赛弗有限责任公司

最新回复(0)