会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 人工智能 / 人工智能 / 机器学习 / 深度学习 / 模块化深度学习模型

模块化深度学习模型

阅读:706发布:2020-05-12

IPRDB可以提供模块化深度学习模型专利检索,专利查询,专利分析的服务。并且本文中描述的技术使用模块化模型来处理语音。基于深度学习的声学模型包括不同类型的神经网络层的堆叠。基于深度学习的声学模型的子模块可以用于表示不同的非音素的声学因素,诸如口音来源(例如,母语、非母语)、语音通道(例如,移动、蓝牙、桌面等)、语音应用场景(例如,话音搜索、短消息口述等)和说话者变型(例如,单个说话者或集群说话者)等。本文中描述的技术在第一上下文中使用某些子模块并且在第二上下文中使用第二组子模块。,下面是模块化深度学习模型专利的具体信息内容。

1.一种自动语音识别(ASR)系统,包括:

存储声学模型的计算机存储介质,所述声学模型被配置为标识声学信息内的声学单元;以及所述声学模型(AM)包括模块化深度学习模型,所述模块化深度学习模型包括多个隐藏层,所述多个隐藏层包括至少一个模块化层和共享层,所述至少一个模块化层包括多个特定于上下文的子模块,其中所述模块化层中的仅第一特定于上下文的子模块在第一上下文中处理所述声学信息。

2.根据权利要求1所述的系统,包括控制模块,所述控制模块确定所述声学信息的所述第一上下文,并且激活所述第一特定于上下文的子模块。

3.根据权利要求1所述的系统,其中所述模块化深度学习模型包括门,所述门打开以允许来自先前层的输出被输入到所述第一特定于上下文的子模块。

4.根据权利要求1所述的系统,其中所述第一上下文是由蓝牙麦克风记录的声学信息,并且所述第一特定于上下文的子模块使用在蓝牙麦克风上捕获的声学数据来进行训练。

5.根据权利要求1所述的系统,其中所述第一上下文用于具有在第一范围内的sCluster值的所述声学信息,并且所述第一特定于上下文的子模块使用具有在所述第一范围内的sCluster值的声学数据来进行训练。

6.根据权利要求1所述的系统,其中所述第一上下文用于具有在第一范围内的iCluster值的所述声学信息,并且所述第一特定于上下文的子模块使用具有在所述第一范围内的iCluster值的声学数据来进行训练。

7.根据权利要求1所述的系统,其中所述模块化深度学习模型包括训练到不同的上下文类的多个特定于上下文的层。

8.一种使用模块化深度学习模型标记声音的方法,所述方法包括:接收包括来自用户的语音的声学信息;

确定针对所述声学信息的上下文;

将所述声学信息转换为声学特征;

当所述模块化深度学习模型正在处理所述声学特征时,激活与所述上下文相关联的子模块以执行计算;

将所述声学特征输入到所述模块化深度学习模型中;以及

通过使用所述模块化深度学习模型处理所述声学特征来生成用于所述声学信息的标签数据。

9.根据权利要求8所述的方法,其中所述上下文是捕获有男性话音的声学信息。

10.根据权利要求8所述的方法,其中所述上下文是针对所述声学信息而计算的sCluster值。

11.根据权利要求8所述的方法,其中所述上下文是针对所述声学信息而计算的iCluster值。

12.根据权利要求8所述的方法,其中所述上下文是从外部信号或所述声学信息得出的。

13.根据权利要求8所述的方法,其中所述方法还包括确定针对所述声学信息的附加上下文,并且激活与所述附加上下文相关联的附加子模块,以在所述模块化深度学习模型正在处理所述声学信息时执行计算。

14.根据权利要求8所述的方法,其中所述子模块在所述模块化深度学习模型内形成整个隐藏层。

15.根据权利要求8所述的方法,其中所述模块化深度学习模型包括共享层,所述共享层在所述模块化深度学习模型的所有实现中执行计算而不管上下文。

说明书全文

模块化深度学习模型

背景技术

[0001] 自动语音识别(ASR)允许计算设备理解人类语音。通过使用声学模型的音频处理的结果作为输入,自动语音识别(ASR)可以使用语言模型来确定针对给定语言的似是而非的词序列。理解人类语音可以实现话音到文本转录和话音命令等功能。在现实世界中,需要在各种声学环境中理解语音。对于单个声学模型来说,跨多个环境和说话者来准确地标识声音是一个挑战。

发明内容

[0002] 提供本发明内容是为了以简化形式介绍所选择的概念,这些概念将在以下具体实施方式中进一步描述。本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在孤立地被用作确定所要求保护的主题的范围的辅助手段。
[0003] 本文中描述的技术可以对标识音频信号内的声学单元或构成语音的其他语言学单元的深度学习声学模型进行模块化。然后可以通过语言模型处理从声学模型输出的声学单元候选以及得分,语言模型输出可以实现人与计算机交互的词序列。因此,该技术可以用于促进由人类话音控制的人机接口。该接口可以接收查询、口述、话音命令和用于其他目的的输入。
[0004] 深度学习声学模型包括不同类型的神经网络层(例如,全连接层、卷积层、长短期存储器单元层)的堆叠或其组合。这些层可以被组织成前馈或循环网络结构。这些层等效地是深度神经网络的单独模块,并且在本文中可以称为子模块。基于深度学习的声学模型的子模块可以用于表示不同的非音素(non-phonetic)的声学因素,诸如口音来源(例如,母语、非母语)、语音通道(例如,移动、蓝牙、桌面等)、语音应用场景(例如,话音搜索、短消息口述等)和说话者变型(例如,单个说话者或集群说话者)等。
[0005] 与现有的子模块一起,本文中描述的技术还可以插入附加神经网络子模块,并且使用它们来参数化和优化特定的非音素的声学条件。总体而言,除了适应特定声学条件的一些特定子模块之外,很多神经网络组件跨多个声学条件被共享。
[0006] 该技术可以用于在语音引擎中的解码,其中特定于条件的子模块被交换进出模型,而不引入附加的运行时的搜索成本。该技术可以被应用于各种自动语音识别(“ASR”)服务,该ASR服务使用不同类型的基于深度学习的声学模型,诸如深度神经网络(“DNN”)、卷积神经网络(“CNN”)、长短期记忆递归神经网络(“LSTM-RNN”)、或卷积长短期记忆深度神经网络(“CL-DNN”)。

附图说明

[0007] 以下参考附图详细描述本技术的各方面,在附图中:
[0008] 图1是根据本文中描述的技术的一个方面的适合于生成和使用模块化声学模型的示例性计算环境的框图;
[0009] 图2是描绘根据本文中描述的技术的一个方面的自动语音识别系统的图;
[0010] 图3是描绘根据本文中描述的技术的一个方面的具有多类子模块的模块化神经网络的视觉表示的图;
[0011] 图4是描绘根据本文中描述的技术的一个方面的具有多类子模块的模块化神经网络的基础版本的视觉表示的图;
[0012] 图5是描绘根据本文中描述的技术的一个方面的、训练特定于男性话音的子模块用于与模块化神经网络一起使用的视觉表示的图;
[0013] 图6是描绘根据本文中描述的技术的一个方面的、训练特定于女性话音的子模块用于与模块化神经网络一起使用的视觉表示的图;
[0014] 图7是描绘根据本文中描述的技术的一个方面的包括模块化声学模型的自动语音识别系统的图;
[0015] 图8是描绘根据本文中描述的技术的一个方面的由控制器使用上下文信息来配置的模块化神经网络的视觉表示的图;
[0016] 图9是描绘根据本文中描述的技术的一个方面的由控制器使用上下文信息来配置的模块化神经网络的视觉表示的图;
[0017] 图10是适合于实现本文中描述的技术的各方面的示例性计算环境的框图;
[0018] 图11描绘了示出根据本文中描述的技术的一些方面的使用模块化深度学习模型标记声音的方法的流程图;以及
[0019] 图12描绘了示出根据本文中描述的技术的一些方面的使用模块化深度学习模型标记声音的方法的流程图。

具体实施方式

[0020] 在本文中以具体说明对本文所描述的技术的主题进行描述以符合法定要求。然而,描述本身并不旨在限制本专利的范围。相反,本发明人已经设想,所要求保护的主题还可以结合其他当前技术或未来技术以其他方式来实施,以包括与本文档中描述的步骤类似的不同步骤或步骤的组合。而且,尽管本文中可以使用术语“步骤”和/或“框”来暗示所采用的方法的不同元素,但是除非并且除了当明确描述了个体步骤的顺序时之外,这些术语不应该被解释为暗示本文中所公开的各种步骤之中或之间的任何特定顺序。
[0021] 本文中描述的技术可以包括用于标识音频信号内的声学单元或构成语音的其他语言学单元的模块化深度学习声学模型。然后可以通过语言模型处理声学单元,语言模型将一系列声学单元转换成可以实现人与计算机交互的词序列。因此,该技术可以用于促进由人类话音控制的人机接口。该接口可以接收查询、口述、话音命令和用于其他目的的输入。
[0022] 当前声学模型的技术问题是使得单个模型能够准确地处理在大量不同上下文中捕获的音频信号。通常,在处理适合特定上下文的信号时,可以处理各种上下文的模型不如针对该特定上下文而训练的模型准确。当然,在尝试处理与特定上下文不匹配的音频信号时,针对特定上下文训练的模型可能表现不佳。此外,由于数据稀缺性,很难为每个上下文训练单独的声学模型。本文中描述的技术构建具有特定于上下文的子模块的模型。模块化模型可以包括在所有上下文中使用的、并且然后与特定于上下文的子模块组合的层,特定于上下文的子模块仅在特定上下文中使用以产生结果。子模块允许模型适应当前的上下文。
[0023] 上下文可以通过分析声学信号或其他非声学信息来确定。例如,声学信号可以用于确定说话者的可能性别;关于地理位置的信息可以用于确定说话者的可能口音。关于说话者的标识信息可以用于初始化具有子模块的模块化模型,这些子模块专门地适于处理与这些用户特性相匹配的语音。使用专用子模块可以提高模型的准确性。
[0024] 本文档中的“上下文”表示语音识别中不同的非音素的声学因素。上下文可以是标量或向量格式的离散或连续信号。上下文可以是确定性的或非确定性的。上下文的示例是性别、口音来源(例如,母语、非母语)、语音通道(例如,移动、蓝牙、桌面等)、语音应用场景(例如,话音搜索、短消息口述等)和说话者变型(例如,单个说话者或集群说话者)、iCluster、sCluster等。特定于上下文的模块可以对应于每个可用的上下文。
[0025] 模块化模型可以是基于深度学习的声学模型。基于深度学习的声学模型包括不同类型的神经网络层(例如,全连接层、卷积层、长短期存储器单元层)的堆叠或其组合。这些层可以组织成前馈或循环网络结构。这些层等效地是深度神经网络的单独模块,并且在本文中可以被称为子模块。基于深度学习的声学模型的子模块可以用于表示不同的非音素的声学因素,诸如口音来源(例如,母语、非母语)、语音通道(例如,移动、蓝牙、桌面等)、语音应用场景(例如,话音搜索、短消息口述等)和说话者变型(例如,单个说话者或集群说话者)等。
[0026] 与现有的子模块一起,本文中描述的技术还可以插入附加的神经网络子模块,并且使用它们来参数化和优化特定的非音素的声学条件。总体而言,除了适应特定声学条件的一些特定子模块之外,很多神经网络组件跨多个声学条件被共享。
[0027] 该技术可以用于在语音引擎中的解码,其中特定于条件的子模块被交换进出模型,而不引入附加的运行时的搜索成本。该技术可以被应用于各种自动语音识别(“ASR”)服务,该ASR服务使用不同类型的基于深度学习的声学模型,诸如深度神经网络(“DNN”)、卷积神经网络(“CNN”)、长短期记忆递归神经网络(“LSTM-RNN”)、或卷积长短期记忆深度神经网络(“CL-DNN”)
[0028] 经过专门训练的子模块可以用于在单个深度学习声学模型内对多个口音、通道、语音应用场景和不同说话者进行建模,并且进一步提高针对多风格训练模型的模型鲁棒性。模块化模型可以包括若干不同的子模块类。子模块是被优化以处理具有特定上下文的音频信号的模型的一部分(诸如层)。上下文可以包括说话者的特性、捕获说话者声音的设备和音频信号的其他特性。
[0029] 可以提供控制器,控制器标识上下文,并且激活或去激活模块化模型内的不同子模块。例如,控制器可以根据上下文确定:音频信号捕获到女性话音。控制器可以激活被专门训练用于处理女性话音的子模块,而不是默认子模块或者被训练用于处理男性话音的子模块。可以同时激活专用子模块的不同组合。例如,模型可以包括专用于具有特定口音的、试图口述消息(一种场景)的女性说话者的子模块。
[0030] 在一个方面,控制器接收外部信号以理解上下文,并且初始化相关子模块。外部信号可以是离散的或连续的。离散信号可以基于在信号处理会话期间不太可能改变的一次性确定来定义上下文。离散信号可以包括枚举信号,诸如性别(女性、男性等)、场景(话音搜索、短消息口述等)、通道(移动、蓝牙、桌面等)等。离散信号可以从用户简档信息、设备上下文、信号分析等中导出。
[0031] 离散信号还可以包括从声学上下文的向量空间表示的无监督聚类导出的聚类信号。例如,iCluster是一种基于iVector表示的语音聚类信息。iVector经由在全差异(total variation)空间中的因子分析将可变长度语音信号映射到固定长度向量。差异空间由全差异矩阵定义,全差异矩阵包含具有全差异协方差矩阵的最大特征值的特征向量。iVector语音表示包含语音信号的多个可变性,诸如说话者、通道等。sCluster是基于从speakerID神经网络导出的表示的另一种类型的语音聚类信息。在这种表示中,声学上下文由speakerID神经网络的瓶颈层表示。
[0032] 除了离散信号之外,可以监测连续信号以确定上下文。连续信号可以是标量信号或向量信号。标量信号可以是单个值,诸如整数。向量信号可以包括多个变量,每个变量具有指定的值。
[0033] 作为离散或连续信号的备选,外部信号可以备选地被分类为确定性的或非确定性的。由于确定性信号在识别话语之前是可用的,因此可以在第一阶段解码中应用子模块。信号可以通过用户或系统设置来获取(用户勾选的非母语框,用户勾选的男性/女性框;系统设置的麦克风类型、蓝牙连接、模块化用户ID(MUID)、位置等)。确定性信号也可以推断出来。例如,检测到的60英里/小时的位置变化可以用于推断驾驶模式。名称/电话簿/搜索历史可以用于推断性别/年龄。GPS数据信号可以用于激活位置相关的子模块。
[0034] 信号还可以使用非确定性算法来处理。与确定性算法相反,非确定性算法是一种即使对于相同的输入也可以在不同的运行中表现出不同的行为的算法。由于非确定性信号可以利用在线计算,因此当使用非确定性信号时,可以在第二阶段解码中应用特定于上下文的子模块。信号可以通过在线计算和推断来获取,(例如,iCluster、sCluster、噪声水平(SNR)、性别/年龄检测、口音检测。)
[0035] 无论使用(多个)何种外部信号,控制器都处理信号并且确定上下文。上下文可以使用启发法或机器分类器来确定。在一个示例中,机器分类器使用可以被映射到感兴趣的上下文的上下文训练数据来训练。一旦经过训练,机器分类器就可以接收未标记的信号数据,并且分配一个或多个上下文。
[0036] 如上所述,可以考虑若干不同的上下文。一个上下文是说话者的性别。说话者的性别可以被确定为男性或女性。
[0037] 另一上下文是说话者的口音。以英语为例,说话者可以有英国口音、爱尔兰口音、澳大利亚口音、印度口音或若干不同的美国口音(例如,南部、纽约、芝加哥、新英格兰)之一。上下文还可以包括若干不同的外国口音。例如,说话者会说带有德国口音、法国口音、西班牙口音、中国口音等的英语。
[0038] 上下文可以是特定于场景的。人们在执行不同的任务时会不同地说话。例如,用户在口述消息时的说话可以与发布命令时的说话不同。特定于场景的上下文可以包括口述、查询、话音命令等。
[0039] 上下文可以是特定于通道的。特定于通道是指用于捕获音频信号的通信介质。通信介质可以包括麦克风、通信流水线、数据压缩等。例如,使用蓝牙技术捕获的音频信号可以与嵌入在客户端设备中的麦克风所捕获的音频信号不同。音频信号可以根据麦克风的模型和设置而不同。
[0040] 上下文可以是特定于设备的。由于形成设备的硬件和软件的组合,不同的设备可以具有不同的音频特性。设备上下文可以由操作系统定义,其中运行操作系统的所有设备形成单个上下文。设备上下文可以通过形式因子来定义,诸如PC、智能手机、电子阅读器、虚拟现实耳机、增强现实等。设备上下文可以是特定于模型的,例如,特定模型的智能手机模型可以具有特定于模型的上下文。这些示例也可以组合以形成设备上下文。例如,可以通过形式因子和操作系统的组合来定义上下文,诸如运行第一操作系统的平板电脑。可以针对每个设备上下文来训练单独的子模块。
[0041] 上下文可以基于环境噪声水平。环境噪声上下文可以包括通过信噪比测量的环境噪声量。环境噪声上下文也可以基于环境噪声内容的类型。例如,上下文可以是包括音乐、电影或电视的环境噪声。环境噪声环境可能包括多个说话者在背景中谈话。可以训练不同的子模块来处理不同的环境噪声上下文。
[0042] 上下文可以基于iCluster。为了计算iCluster:首先,计算用于每个话语的iVector和用于iVector提取的加载矩阵。接下来,针对iVectors进行K-均值聚类,并且从而获取每个iCluster的质心。通过自适应来估计特定于iCluster的子模块,并且获取特定于iCluster的子模块的清单。在解码期间,控制器可以使用加载矩阵来计算针对测试话语的iVector,并且然后基于ivector与不同的iCluster的质心之间的距离来分配语音iCluster。一旦标识出适当的iCluster子模块,特定于iCluster的子模块就可以被包括在模块化模型中用于解码。备选地,客户端和iCluster的关联可以离线获取,作为用于模块化的确定性信号。例如,一旦在给定上下文中计算出适合于说话者的iCluster,就可以基于上下文信号选择该iCluster。
[0043] 上下文可以基于sCluster。为了计算sCluster,控制器可以训练speakerID神经网络以进行说话者标识。可以提取最后的隐藏层瓶颈特征作为帧级向量空间表示。瓶颈特征是从多层感知器生成的,其中内层中的一个内层具有相对于其他层的大小的较小数目的隐藏单元。该小层在网络中产生收缩,这个收缩迫使与分类相关的信息成为低维表示。
[0044] 控制器可以经由对帧级表示求平均来计算话语级向量表示。然后,控制器可以对话语级向量表示进行K均值聚类,并且因此获取每个sCluster的质心。在测试中,首先通过将输入特征向前传递到speakerID神经网络来获取帧级瓶颈特征,并且通过对帧级特征求平均来计算话语级瓶颈特征,然后根据话语级speakerID神经网络瓶颈特征与不同的sCluster的质心之间的距离来分配sCluster。备选地,客户端和sCluster的关联可以离线获取作为用于模块化的确定性信号。
[0045] 模块化模型的输入层可以接收音频信号的特征或表示作为输入。特征可以包括在不同方法期间提取的多个表示。示例性方法包括:倒谱系数、梅尔频率对数滤波器组特征、感知线性预测。备选地,语音音频的波形也可以直接用作输入特征。每种方法可以用于生成音频信号的不同表示集。输入可以是单个特征帧或帧窗口。输入层将输入传达给后续层中的节点以进行处理。后续层执行计算并且将输入提供给下一层。
[0046] 计算环境
[0047] 现在转向图1,除了未示出的其他组件,系统100还包括通信地耦合到一个或多个数据源108、存储装置106、客户端设备102和104以及模型生成器120的网络110。在一个方面,模型是声学模型。模型根据此处描述的技术进行模块化。例如,在深度学习模型的情况下,一个或多个层可以是模块化的。图1所示的组件可以在一个或多个计算设备上或使用一个或多个计算设备来实现,诸如结合图10描述的计算设备1000。网络110可以包括但不限于:一个或多个局域网(LAN)和/或广域网(WAN)。这种网络环境在办公室、企业范围的计算机网络、内联网和因特网中是常见的。应当理解,在本文中描述的技术的范围内,可以在系统100内采用任何数目的数据源、存储组件或数据存储装置、客户端设备和模型生成器。每个可以包括单个设备或在分布式环境中协作的多个设备。例如,模型生成器120可以经由布置在分布式环境中的、共同提供本文中描述的功能的多个计算设备或组件来提供。另外,未示出的其他组件也可以被包括在网络环境中。
[0048] 示例系统100包括一个或多个数据源108。(多个)数据源108包括用于训练本文中描述的模型的数据资源。由(多个)数据源108提供的数据可以包括标记和未标记数据,诸如转录和未转录数据。例如,在一个实施例中,数据包括一个或多个电话机(声音),并且还可以包括可以用于初始化模型和模型内的各种专用子模块的对应的转录信息或传感器标签。训练数据可以包括具有训练所需特性的多个说话者的音频。例如,训练数据可以包括男性说话者、女性说话者和具有各种口音的说话者。训练数据还可以包括用于不同信号收集场景的数据,诸如通过蓝牙扬声器。训练数据还可以包括针对单个说话者的语音的频谱。
[0049] 在一个实施例中,(多个)数据源108中的未标记数据由一个或多个部署反馈循环提供。例如,来自在搜索引擎上执行的口头搜索查询的使用数据可以被提供作为未转录数据。作为示例而非限制,数据源的其他示例可以包括各种口语音频或图像源,包括流式声音或视频、网络查询、移动设备相机或音频信息、网络摄像头馈送、智能眼镜和智能手表馈送、客户服务系统、安全相机馈送、网络文档、目录、用户馈送、SMS日志、即时消息日志、口语词脚本、游戏系统用户交互(诸如话音命令或捕获的图像(例如,深度相机图像))、推文、聊天或视频通话记录、或社交网络媒体。所使用的特定(多个)数据源108可以基于应用来确定,包括数据本质上是否是特定于域的数据(例如,仅与娱乐系统相关的数据)还是一般数据(非域特定的)。技术的一些方面可以训练特定于域的子模块。
[0050] 示例系统100包括客户端设备102和104,其可以包括任何类型的计算设备,其中以下是被期望的:在该设备上具有自动语音识别(ASR)系统或者与基于服务器的ASR系统交互。例如,在一个实施例中,客户端设备102和104可以是本文中关于图10描述的一种类型的计算设备。作为示例而非限制,用户设备可以被实施为:个人数据助理(PDA)、移动设备、智能电话、智能手表、智能眼镜(或其他可穿戴智能设备)、增强现实耳机、虚拟现实耳机、笔记本电脑、平板电脑、遥控器、娱乐系统、车辆计算机系统、嵌入式系统控制器、家电、家用计算机系统、安全系统、消费电子设备或其他类似的电子设备。在一个实施例中,客户端设备能够接收输入数据,诸如由本文中描述的在设备或服务器上操作的ASR系统可使用的音频和图像信息。例如,客户端设备可以具有用于接收音频信息的麦克风或线路输入、用于接收视频或图像信息的相机、或用于从诸如因特网或数据源108等的另一源接收这样的信息的通信组件(例如,Wi-Fi功能)。
[0051] 示例客户端设备102和104被包括在系统100中,以提供其中可以部署模块化声学模型的示例环境。虽然预期本文中描述的模型的各方面可以在一个或多个客户端设备102和104上操作,但是还预期本文中描述的技术的一些实施例不包括客户端设备。例如,模块化模型可以在服务器上或在云中实施。此外,尽管图1示出了两个示例客户端设备,但是可以使用更多或更少的设备。
[0052] 存储装置106通常存储在本文中描述的技术的实施例中使用的信息,包括数据、计算机指令(例如,软件程序指令、例程或服务)和/或模型。在一个实施例中,存储装置106存储来自一个或多个数据源108的数据、一个或多个模块化模型、用于生成和训练模块化模型的信息、以及由一个或多个模块化模型输出的计算机可用信息。如图1所示,存储装置106包括模块化模型107和109,两者都具有多个子模块。模块化模型的附加细节和示例结合图2-图9来描述。尽管为了清楚起见被描绘为单个数据存储组件,但是存储装置106可以被实施为一个或多个信息存储器,包括在客户端设备102或104、模型生成器120上或在云中的存储器。
[0053] 模型生成器120包括访问组件122、训练组件124和解码组件128。模型生成器120通常负责生成模块化模型,包括创建新的模块化模型(或调节现有的模块化模型)。由模型生成器120生成的模块化模型可以部署在诸如设备104或102的客户端设备、服务器或其他计算机系统上。例如,模型生成器120及其组件122、124和128可以被实施为一组经编译的计算机指令或函数、程序子模块、计算机软件服务、或者在一个或多个计算机系统(诸如结合图10描述的计算设备1000)上执行的过程的布置。模型生成器120、组件122、124和128、由这些组件执行的功能、或者由这些组件执行的服务可以在(多个)计算系统的适当的(多个)抽象层(诸如操作系统层、应用层、硬件层等)上实现。备选地或附加地,这些组件、模型生成器
120和/或本文中描述的技术的实施例的功能可以至少部分由一个或多个硬件逻辑组件来执行。例如而非限制,可以使用的说明性类型的硬件逻辑组件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD)等。
[0054] 继续图1,访问组件122通常负责访问模型生成器120,并且从一个或多个数据源108向模型生成器120提供训练数据。在一些实施例中,访问组件122可以访问关于特定客户端设备102或104的信息,诸如关于在客户端设备上可用的计算和/或存储资源的信息。在一些实施例中,该信息可以用于确定由模型生成器120生成的、用于在特定客户端设备上部署的模型的最佳大小。
[0055] 在一个实施例中,模块化模型可以实施为输入到一组适当输出的映射概率关系的特定结构,诸如图3中说明性地描绘的。概率关系(被示出为每层的节点305之间的连接线)可以通过训练来确定。因此,在本文中描述的技术的一些实施例中,模块化模型300根据其训练来定义。(因此,未经训练的模块化模型可以被认为具有与经过训练的相同的模块化模型不同的内部结构。)
[0056] 返回图1,训练组件124向模块化模型内的节点分配参数。在一个方面,模型的默认版本或基础版本使用各种训练数据来训练,例如,通过汇集来自所有专用上下文的数据。一旦建立了基础版本,就通过在基础模型中保持所有其他节点的值恒定,并且使用特定于上下文的数据重新训练专用子模块中的节点来训练专用子模块。例如,可以使用针对女性话音的训练数据来训练子模块(例如,深度学习模型中的一个或多个层)以更准确地处理女性话音数据。一旦被重新训练,可以在处理女性话音时使用新的子模块。
[0057] 作为初始训练步骤,训练组件124可以通过汇集来自所有上下文的数据来训练多风格深度学习声学模型。一旦经过训练,各层中的节点可以与以下变量相关联,这些变量用于处理非训练数据,以分配给定声学帧应当被标记为声学单元的概率。通过这个步骤生成的模型可以称为默认模型。默认模型将包括在每个上下文中处理数据的通用层。当与模块化层相关联的上下文没有被确定时,模块化层中的节点可以变成要使用的默认子模块。
[0058] 一旦训练了默认模型,就可以使用默认子模块作为起始点来训练特定于上下文的子模块。例如,可以通过以下来训练诸如针对具有南方口音的英语的特定于口音的模块:通过使用针对具有南方口音的英语的特定于口音的数据、经由模型适配来重新估计默认的特定于口音的模块。这可以通过在通用层和其他模块化层的默认子模块中保持值恒定来实现。仅调节特定于口音的模块中的节点值。一旦被调节,重新训练的子模块成为针对具有南方口音的英语的特定于口音的模块。可以重复这个过程以针对不同口音生成特定于口音的模块。
[0059] 用于构建特定于性别的子模块的过程是类似的。可以使用特定于性别的数据、经由模型适配来重新估计默认的特定于性别的子模块。特定于男性的模块可以用于构建特定于男性话音的子模块,并且女性话音数据可以用于构建特定于女性话音的子模块。
[0060] 可以使用特定于场景的数据、经由模型适配来重新估计默认的特定于场景的子模块,以构建特定于场景的子模块。
[0061] 可以使用特定于通道的数据、经由模型适配来重新估计默认的特定于通道的子模块,以构建特定于通道的子模块。
[0062] 可以使用不同环境噪声水平的语音、经由模型适配来重新估计默认的特定于噪声的子模块,以构建特定于噪声的子模块。
[0063] 可以使用属于不同iCluster的语音、经由应用于所选择的特定于iCluster的层的模型适配来重新估计默认的特定于iCluster的子模块,以构建特定于iCluster的子模块。
[0064] 可以使用属于不同sCluster的语音、经由应用于所选择的特定于sCluster的子模块的模型适配来重新估计默认的特定于sCluster的子模块,以构建特定于sCluster的子模块。
[0065] 解码组件128应用经训练的模型来对音频数据进行分类。在一个方面,解码是在逐帧的基础上生成的。备选地,可以使用包括构成窗口的帧的输入来计算针对帧窗口的结果。来自不同窗口的估计的平均值可以改善最终估计结果。
[0066] 如本文中使用的,子模块可以是单个层、多个层或者一个或多个层内的多个节点。
[0067] 自动语音识别系统模块化掩模。
[0068] 现在转向图2,根据本文中描述的技术的实施例,示出了自动语音识别(ASR)系统201的示例。图2所示的ASR系统201仅是适合与用于处理语音信号的模块化模型一起使用的ASR系统的一个示例,其最终可以用于理解说话者的语音。预期可以使用ASR系统的其他变型,包括以下ASR系统,该ASR系统包括比这里示出的示例ASR系统更少的组件或者包括图2未示出的附加组件。ASR系统可以在具有处理器和存储器的计算设备上实现,诸如随后描述的计算设备1000。存储器可以包括一旦执行就将计算设备配置为执行本文中描述的ASR功能的计算机可执行代码。
[0069] ASR系统201示出了传感器250,传感器250感测由用户说话者295、296和297提供的声学信息(可听地说出的词或语音290、291、292)以及背景噪声293。本文中描述的技术的各方面可以在单说话者环境或所示的多说话者环境中使用。背景噪声可以包括音乐、人群噪声等。传感器250可以包括一个或多个麦克风或声学传感器,其可以在用户设备(诸如图1中描述的客户端设备102或104)上实施。传感器250将语音290、291、292和背景噪声293转换为声学信息253,声学信息253可以被提供给特征提取器255(或者在一些实施例中可以直接提供给解码器260)。在一些实施例中,声学信息可以在特征提取器255之前经历预处理(未示出)。特征提取器255通常执行特征分析,以确定语音信号的参数化有用特征,同时降低噪声干扰或以其他方式丢弃冗余或不需要的信息。特征提取器255将声学信息变换成适合于解码器260所使用的模型的特征258(其可以包括语音语料库)。特征258可以包括与语音290、291、292和噪声293相对应的特征。
[0070] 解码器260包括声学模型(AM)265和语言模型(LM)270。AM 265可以使用模块化模型从所提供的特征258中提取针对各个说话者的特征。一旦为每个说话者生成了特征集,AM 265就可以处理特定于说话者的特征以标识声学单元。AM 265包括构成词的不同声音的统计表示,其可以被分配被称为声学单元的标签。AM 265可以向声音分配标签。AM 265可以基于语音特征对声学单元建模,并且向LM 270提供包括声学单元序列以及得分的语料库。得分可以表示声学单元正确的概率或置信度。作为备选,AM 265可以向LM 270提供一串声学单元。LM 270接收词的语料库、声学单元,在某些情况下还有相关联的得分,并且确定所识别的语音280,其可以包括词、实体(类)或短语。
[0071] 在一些实施例中,LM 270可以反映特定子域或某种类型的语料库,诸如某些类(例如,个人姓名、位置、日期/时间、电影、游戏等)、词或词典、短语、或这些的组合。
[0072] 现在转向图3,根据本文中描述的技术的一个方面,示出了具有多个类的子模块的模块化神经网络模型300的视觉表示。图3还示出了数据集301、302和303,其出于理解的目的而被示出,但不被视为模块化模型300的一部分。一些层是在模型的所有部署中使用的共享层,而其他层包括多个特定于类的模块,其中只有一部分在任何给定的部署中使用。共享层包括输入层310、第一共享层312、第二共享层和第三共享层345。特定于类的层包括特定于通道的模块化层319、特定于聚类的模块化层330和特定于性别的模块化层350。其中一些层实际上是若干层深。数据集301、302和303被传递到活动的模型配置,计算由不同节点执行,并且结果集360被生成。
[0073] 如本文中使用的,共享层包括在模块化模型的所有配置中都是活动的节点和/或模块。共享层中的节点或模块在多个场景中进行训练。如本文中使用的,模块化层包括多个子模块,其中的至少一个子模块在给定部署中不活动。模块化层中的不同子模块各自根据不同的场景而被调整。
[0074] 模块化模型300包括输入层310。输入层310是包括各自与输入类型相对应的多个节点的共享层。节点也可以描述为感知器。在一个方面,使用一种或多种类型的特征提取过程来处理音频信号。特征可以包括在不同方法期间提取的多个表示。示例性方法包括:幅度调制光谱仪、相对光谱变换和感知线性预测、梅尔频率、倒谱系数和耳蜗图响应。每种方法可以用于生成针对音频信号的不同表示集。例如,这些表示可以包括与音频信号内的不同频率范围相关联的表示。每个表示可以被输入到被训练为接收该类型的表示的节点。例如,可以训练与数据集A 301相关联的节点(X1,X2,X3...X80)以接收使用幅度调制频谱图所提取的特征。可以训练与数据集B 302相关联的节点(X81,X82,X83...X120)以接收使用感知线性预测所提取的特征。可以训练与数据集C 303相关联的节点(X121,X122,X123...Xn)以接收根据某种其他方法而生成的特征。
[0075] 模块化模型300包括在特定于性别的子模块(351、353或355)中的输入层310与顶部活动层之间的多个隐藏层。第一共享层312是将在模块化模型300的所有配置中处理数据的共享层。共享层也可以被描述为通用的。每个层包括节点(被示出为圆圈),节点使用从较低层中的节点接收的输入来执行函数。可以在训练期间建立与每个节点相关联的函数所使用的权重。线将输入层310中的每个节点连接到第一共享层312中的每个节点。(为了简单起见,未示出在每个节点之间的线。)例如,第一共享层312内的单个节点可以从输入层310中的每个节点接收输入,并且使用输入执行计算以生成输出。不同的节点可以对不同的输入赋予不同的权重,从而产生不同的输出。与用于执行计算以产生输出的每个节点相关联的权重和其他因素在本文中被描述为“节点参数”或仅“参数”。节点参数通过训练来学习。
[0076] 从第一共享层312中的每个节点生成的输出可以被传递到特定于通道的子模块层319中的活动子模块(313、314或315)中的每个节点。然后,特定于通道的子模块层319中的活动子模块使用指定的函数执行附加计算,并且生成输出,该输出被传递到第二共享层320中的节点。
[0077] 特定于通道的子模块层319是模块化层,其具有经过专门训练以处理通过不同通信通道而接收的音频信号的不同子模块。特定于通道的子模块层319包括三个不同的子模块313、314和315。针对特定上下文来训练每个子模块。例如,蓝牙子模块313可以专用于处理蓝牙。蓝牙子模块313可以使用由蓝牙麦克风捕获的训练数据来训练。嵌入式子模块314可以处理由嵌入式麦克风捕获的音频数据。嵌入式子模块314可以使用由嵌入式麦克风捕获的训练数据来训练。当上下文信息不能确定通道信息时,可以使用默认子模块315。可以通过汇集针对多个通道的训练数据来训练默认子模块325。由蓝牙子模块313、嵌入式子模块314或默认子模块315生成的结果集被传递到第二共享层320。
[0078] 在一个方面,模块化模型300包括层之间的一个或多个门。所示出的门包括在第一共享层312与蓝牙子模块313之间的门316、在第一共享层312与嵌入式麦克风子模块314之间的门318、以及在第一共享层312与默认子模块315之间的门317。
[0079] 每个门基于主动上下文来打开或关闭,主动上下文可以通过分析除了模型之外的数据来确定。门316被描绘为打开。当确定要通过蓝牙设备捕获音频信号时,门316将打开。当门关闭时,数据不从第一共享层312向与该门相关联的子模块发送。目标是:在没有接收到与特定于上下文的子模块相关联的信号时关闭门。门的使用允许在分析期间随着上下文变化(例如,环境噪声水平可能改变)而动态地改变输出层的数目。
[0080] 作为门的备选,可以将子模块交换进出模型,因此仅存在上下文适当的子模块来处理数据。这种备选方法在图9中示出。当还没有确定与子模块的类相关的上下文时,上下文适当的子模块可以包括默认模块。
[0081] 来自特定于通道的子模块层319中的活动的子模块的输出被传递到第二共享层320。第二共享层320中的节点使用来自特定于通道的子模块层319的输出来执行计算,并且生成通过打开的门322传递到聚类子模块371的输出。
[0082] 特定于聚类的层330中的子模块可以基于iCluster或sCluster上下文来激活或去激活。在一个方面,每个子模块与一系列iCluster或sCluster值相关联。适当的子模块可以通过计算针对由模型评估的声学信号的iCluster值或sCluster值来确定。在一个方面,当话语很短时,可以使用iCluster,诸如查询或命令。在一个方面,当使用较长的话语(诸如口述)时,可以使用sCluster。iCluster和sCluster子模块(370、371、372、373和374)各自都是多层深。例如,iCluster或sCluster可以是两层深、三层深、五层深、七层深等。在确定上下文之后,可以通过门(321、322、323、324和325)来控制对各个聚类的访问。第一特定于聚类的子模块370可以包括输入层322和输出层331。第一特定于聚类的子模块370可以包括在这两个层之间的隐藏层,这些隐藏层未示出但是由三个竖直点表示。当门321打开时,输入层322从第二共享层320接收结果。由输出层331生成的结果可以传递到第三共享层345。特定于聚类的层330内的其他子模块以类似的方式工作。门322允许结果数据传递到第二特定于聚类的子模块371的输入层334。相关联的输出层333向第三共享层345传递信息。门323允许结果数据传递到第三特定于聚类的子模块372的输入层。相关联的输出层335向第三共享层
345传递信息。门324允许结果数据传递到第四特定于聚类的子模块373的输入层338。相关联的输出层337向第三共享层345传递信息。门325允许结果数据传递到第五特定于聚类的子模块374的输入层340。相关联的输出层339向第三共享层345传递信息。
[0083] 第三共享层345处理来自活动的特定于聚类的子模块的结果,以生成传递给特定于性别的子模块350之一的结果集。特定于性别的子模块被训练以处理男性话音、女性话音、或性别未知的话音。门346允许信息从第三共享层345传递到男性话音子模块381的输入层352。男性话音子模块的输出层351可以生成最终结果集360。门347(被描绘为打开)允许信息从第三共享层345传递到默认子模块382的输入层354。当话音的性别未知时,可以使用默认话音子模块382。默认子模块的输出层353可以生成最终结果集360。门348允许信息从第三共享层345传递到女性话音子模块383的输入层356。女性话音子模块383的输出层355可以生成最终结果集360。应当注意,结果集360的值可以根据针对给定处理运行哪个子模块是活动的而不同。然而,为了简单起见,示出了单个结果集。
[0084] 如上所述,输入层312可以逐帧地或基于帧窗口接收特征。无论输入单位如何,结果集都可以使用相同的单位。
[0085] 图4-图6示出了如何训练模块化模型。最初,可以通过汇集特定于上下文的训练数据401、402和403来训练模型400的默认版本。默认模型400中的子模块可以形成将在所有场景中处理数据的共享层(312、320和345)、以及当与子模块类相关联的上下文未确定时使用的默认子模块(314、336、335、353和354)。然后,可以使用默认模型400来构建特定于上下文的子模块。
[0086] 图5示出了训练特定于男性话音的子模块381。特定于男性话音的子模块381包括输入层352和输出层351。子模块381可以包括未示出的附加层。特定于男性话音的子模块381中的层可以通过以下方式来训练:在原始被训练以形成默认模型400的所有其他子模块和层中保持值恒定,并且然后使用特定于男性话音的输入数据501、502和503来在默认特定于话音的模块382中重新训练层,形成特定于男性话音的子模块381,包括输入层352和输出层351。
[0087] 图6示出了训练特定于女性话音的子模块383。特定于女性话音的子模块383包括输入层356和输出层355。子模块383可以包括未示出的附加层。特定于女性话音的子模块383中的层可以通过以下方式来训练:在默认模型400中原始训练的所有其他子模块和层中保持值恒定,并且然后使用特定于男性话音的输入数据601、602和603来重新训练默认的特定于话音的模块382,以形成特定于女性话音的子模块383。
[0088] 现在转向图7,前面参考图2描述的声学模型265的细节在语音识别系统720的上下文中提供。声学模型265包括控制模块730、模型配置组件732和模型执行组件734。
[0089] 控制模块730接收外部信号数据并且确定声学信息的上下文。例如,控制模块730可以从上下文确定:音频信号捕获到女性话音。控制模块730可以激活被专门训练用于处理女性话音的子模块,而不是默认子模块或者被训练以处理男性话音的子模块。可以同时激活专用子模块的不同组合。例如,模块化模型可以包括专用于女性说话者的子模块、用于特定口音的子模块、以及用于口述消息的子模块(一种场景)。
[0090] 在一个方面,控制模块730接收外部信号以理解上下文,并且初始化相关子模块。外部信号可以是离散的或连续的。离散信号可以基于在信号处理会话期间不太可能改变的一次性确定来定义上下文。离散信号可以包括枚举信号,诸如性别(女性、男性等)、场景(话音搜索、短消息口述等)、通道(移动、蓝牙、桌面等)等。离散信号可以从用户简档信息、设备上下文、信号分析等中导出。
[0091] 离散信号还可以包括聚类信号,诸如iCluster(例如,基于iVector表示的语音信号聚类)、sCluster(例如,基于speakerID神经网络瓶颈特征表示的语音信号聚类)等。
[0092] 除了离散信号之外,可以监测连续信号以确定上下文。连续信号可以是标量信号或向量信号。标量信号可以是单个值,诸如整数。向量信号可以包括多个变量,每个变量具有指定的值。
[0093] 作为离散或连续信号的备选,外部信号可以备选地被分类为确定性的或非确定性的。由于确定性信号在识别话语之前是可用的,因此可以在第一阶段解码中应用子模块。信号可以通过用户或系统设置来获取(用户勾选的非母语框,用户勾选的男性/女性框;系统设置的麦克风类型、蓝牙连接、模块化用户ID(MUID)、位置等)。确定性信号也可以推断出来。例如,检测到的60英里/小时的位置变化可以用于推断驾驶模式。名称/电话簿/搜索历史可以用于推断性别/年龄。GPS数据信号可以用于激活位置相关的子模块。
[0094] 信号还可以使用非确定性算法来处理。与确定性算法相反,非确定性算法是一种即使对于相同的输入也可以在不同的运行中表现出不同的行为的算法。由于非确定性信号可以利用在线计算,因此可以在第二阶段解码中应用特定于上下文的子模块。信号可以通过在线计算和推断来获取,(例如,iCluster、sCluster、噪声水平(SNR)、性别/年龄检测、口音检测。)
[0095] 无论使用(多个)何种外部信号,控制子模块730都处理信号并且确定上下文。上下文可以使用启发法或机器分类器来确定。在一个示例中,机器分类器使用可以被映射到感兴趣的上下文的上下文训练数据来训练。一旦经过训练,机器分类器就可以接收未标记的信号数据,并且分配一个或多个上下文,这些上下文可以用于激活或去激活模块化模型中的不同子模块。
[0096] 如上所述,可以考虑若干不同的上下文。一个上下文是说话者的性别。说话者的性别可以被确定为男性或女性。
[0097] 另一上下文是说话者的口音。以英语为例,说话者可以有英国口音、爱尔兰口音、澳大利亚口音、印度口音或若干不同的美国口音(例如,南部、纽约、芝加哥、新英格兰)之一。上下文还可以包括若干不同的外国口音。例如,说话者会说带有德国口音、法国口音、西班牙口音、中国口音等的英语。
[0098] 上下文可以是特定于场景的。人们在执行不同的任务时会不同地说话。例如,用户在口述消息时的说话可以与发布命令时的说话不同。特定于场景的上下文可以包括口述、查询、话音命令等。
[0099] 上下文可以是特定于通道的。特定于通道是指用于捕获音频信号的硬件和软件技术的组合。例如,使用蓝牙技术捕获的音频信号可以与嵌入在客户端设备中的麦克风捕获的音频信号不同。音频信号可以根据麦克风的模型和设置而不同。
[0100] 上下文可以是特定于设备的。由于形成设备的硬件和软件的组合,不同的设备可以具有不同的音频特性。设备上下文可以由操作系统定义,其中运行操作系统的所有设备形成单个上下文。设备上下文可以通过形式因子来定义,诸如PC、智能手机、电子阅读器、虚拟现实耳机、增强现实等。设备上下文可以是特定于模型的,例如,特定模型的智能手机模型可以具有特定于模型的上下文。这些示例也可以组合以形成设备上下文。例如,可以通过形式因子和操作系统的组合来定义上下文,诸如运行第一操作系统的平板电脑。可以针对每个设备上下文来训练单独的子模块。
[0101] 上下文可以基于环境噪声水平。环境噪声上下文可以包括通过信噪比测量的环境噪声量。环境噪声上下文也可以基于环境噪声内容的类型。例如,上下文可以是包括音乐、电影或电视的环境噪声。环境噪声环境可能包括多个说话者在背景中谈话。可以训练不同的子模块来处理不同的环境噪声上下文。
[0102] 上下文可以基于iCluster。为了计算iCluster:首先,计算用于每个话语的iVector和用于iVector提取的加载矩阵。接下来,针对iVectors进行K-均值聚类,并且从而获取每个iCluster的质心。通过自适应来估计特定于iCluster的子模块,并且获取特定于iCluster的子模块的清单。在解码期间,控制器可以使用加载矩阵来计算针对测试话语的iVector,并且然后基于ivector与不同的iCluster的质心之间的距离来分配语音iCluster。一旦标识出适当的iCluster子模块,特定于iCluster的子模块就可以被包括在模块化模型中用于解码。备选地,客户端和iCluster的关联可以离线获取,作为用于模块化的确定性信号。例如,一旦在给定上下文中计算出适合于说话者的iCluster,就可以基于上下文信号选择该iCluster。
[0103] 上下文可以基于sCluster。为了计算sCluster,控制器可以训练speakerID神经网络以进行说话者标识。可以提取最后的隐藏层瓶颈特征作为帧级向量空间表示。瓶颈特征是从多层感知器生成的,其中内层中的一个内层具有相对于其他层的大小的较小数目的隐藏单元。该小层在网络中产生收缩,这个收缩迫使与分类相关的信息成为低维表示。
[0104] 控制模块730可以经由对帧级表示求平均来计算话语级向量表示。然后,控制模块730可以对话语级向量表示进行K均值聚类,并且因此获取每个sCluster的质心。在测试中,首先通过将输入特征向前传递到speakerID神经网络来获取帧级瓶颈特征,并且通过对帧级特征求平均来计算话语级瓶颈特征,然后根据话语级speakerID神经网络瓶颈特征与不同的sCluster的质心之间的距离来分配sCluster。备选地,客户端和sCluster的关联可以离线获取作为用于模块化的确定性信号。
[0105] 模型配置组件732获取由控制模块730确定的上下文,并且生成合适的模块化模型。在一个方面,通过选择相关的、特定于上下文的子模块以包括在每个模块化层中来初始化模块化模型。在对于特定模块化层,上下文不可用的情况下,可以使用默认子模块。这种类型的模块化模型每层将仅包括一个子模块,并且不需要门。这种类型的模块化模型的外观类似于图9所示的特定于上下文的模块化模型900。可以看出,模型900包括特定于蓝牙的子模块313、包括层339和340的默认聚类子模块374、以及特定于女性话音的子模块383。模块化模型900还包括公共层,并且被示出处理输入数据901、902和903。执行组件734可以提供用于处理的信号数据901、902和903,并且收集接着被发送到语言模型270的结果集。
[0106] 在另一方面,模型配置组件732通过打开和关闭相关门来配置特定于上下文的模块化模型,如图8所示。图8的特定于内容的模型800包括模块化模型300中示出的所有组件。然而,不同的门已经被打开或关闭,以将模型800配置为用于与模型300的上下文不同的特定上下文。具体地,门318、门325和门346打开,以允许它们各自的子模块处理数据。给定相同的数据作为输入,模型800应当产生与模型300不同的结果集360,因为具有不同参数的不同子模块正在处理数据。所有其他门关闭,并且与这些门相关联的子模块和层将不处理数据,或不对最终结果集360有贡献。应当注意,门可以采用引导神经网络内的流向的代码的形式。
[0107] 现在转向图11,根据本文中描述的技术的一个方面,提供了一种使用模块化深度学习模型来标记声音的方法1100。方法1100可以作为被声学模型用于标记声音或声学数据的过程的一部分来执行,声学模型标记声音或声学数据以供语言模型用于标识人类语音。因此,方法1100可以由计算设备执行,诸如先前描述的计算设备1000。
[0108] 在步骤1110,接收包括来自用户的语音的声学信息。包括人类语音的声音可以由客户端设备捕获,如先前参考图2所述。用于捕获声音的传感器和相关硬件可以将声音转换为声学信息。
[0109] 在步骤1120,确定针对声学信息的第一上下文。可以通过分析除了声学信息之外的信号来确定上下文。例如,关于捕获音频信号的电话的信息可以用于确定说话者的可能性别、说话者的口音、国家的区域等。关于说话者的信息可以用于对具有子模块的模块化模型进行初始化,这些子模块专门适于处理匹配这些上下文特性的语音。使用专用子模块可以提高模型的准确性。
[0110] 可以提供控制器,控制器标识上下文,并且激活或去激活模块化模型内的不同子模块。例如,控制器可以根据上下文确定:音频信号捕获到女性话音。控制器可以激活被专门训练用于处理女性话音的子模块,而不是默认子模块或者被训练用于处理男性话音的子模块。可以同时激活专用子模块的不同组合。例如,模型可以包括专用于具有特定口音的、试图口述消息(一种场景)的女性说话者的子模块。
[0111] 在一个方面,控制器接收外部信号以理解上下文,并且初始化相关子模块。外部信号可以是离散的或连续的。离散信号可以基于在信号处理会话期间不太可能改变的一次性确定来定义上下文。离散信号可以包括枚举信号,诸如性别(女性、男性等)、场景(话音搜索、短消息口述等)、通道(移动、蓝牙、桌面等)等。离散信号可以从用户简档信息、设备上下文、信号分析等中导出。
[0112] 离散信号还可以包括聚类信号,诸如iCluster(例如,基于iVector表示的语音信号聚类)、sCluster(例如,基于speakerID神经网络瓶颈特征表示的语音信号聚类)等。iVector语音表示经由在全差异空间中的因子分析将可变长度语音信号映射到固定长度向量。差异空间由全差异矩阵定义,全差异矩阵包含具有全差异协方差矩阵的最大特征值的特征向量。iVector语音表示包含语音信号的多个可变性,诸如说话者、通道等。iCluster是一种基于iVector语音表示和K均值聚类的语音聚类方法。sCluster是一种基于speakerID深度神经网络瓶颈表示和K均值聚类的语音聚类方法。
[0113] 除了离散信号之外,可以监测连续信号以确定上下文。连续信号可以是标量信号或向量信号。标量信号可以是单个值,诸如整数。向量信号可以包括多个变量,每个变量具有指定的值。
[0114] 无论使用(多个)何种外部信号,控制器都处理信号并且确定上下文。上下文可以使用启发法或机器分类器来确定。在一个示例中,机器分类器使用可以被映射到感兴趣的上下文的上下文训练数据来训练。一旦经过训练,机器分类器就可以接收未标记的信号数据,并且分配一个或多个上下文。
[0115] 如上所述,可以考虑若干不同的上下文。一个上下文是说话者的性别。说话者的性别可以被确定为男性或女性。
[0116] 另一上下文是说话者的口音。以英语为例,说话者可以有英国口音、爱尔兰口音、澳大利亚口音、印度口音或若干不同的美国口音(例如,南部、纽约、芝加哥、新英格兰)之一。上下文还可以包括若干不同的外国口音。例如,说话者会说带有德国口音、法国口音、西班牙口音、中国口音等的英语。
[0117] 上下文可以是特定于场景的。人们在执行不同的任务时会不同地说话。例如,用户在口述消息时的说话可以与发布命令时的说话不同。特定于场景的上下文可以包括口述、查询、话音命令等。
[0118] 上下文可以是特定于通道的。特定于通道是指用于捕获音频信号的硬件和软件技术的组合。例如,使用蓝牙技术捕获的音频信号可以与嵌入在客户端设备中的麦克风所捕获的音频信号不同。音频信号可以根据麦克风的模型和设置而不同。
[0119] 上下文可以是特定于设备的。由于形成设备的硬件和软件的组合,不同的设备可以具有不同的音频特性。设备上下文可以由操作系统定义,其中运行操作系统的所有设备形成单个上下文。设备上下文可以通过形式因子来定义,诸如PC、智能手机、电子阅读器、虚拟现实耳机、增强现实等。设备上下文可以是特定于模型的,例如,特定模型的智能手机模型可以具有特定于模型的上下文。这些示例也可以组合以形成设备上下文。例如,可以通过形式因子和操作系统的组合来定义上下文,诸如运行第一操作系统的平板电脑。可以针对每个设备上下文来训练单独的子模块。
[0120] 上下文可以基于环境噪声水平。环境噪声上下文可以包括通过信噪比测量的环境噪声量。环境噪声上下文也可以基于环境噪声内容的类型。例如,上下文可以是包括音乐、电影或电视的环境噪声。环境噪声环境可能包括多个说话者在背景中谈话。可以训练不同的子模块来处理不同的环境噪声上下文。
[0121] 上下文可以基于iCluster。为了计算iCluster:首先,计算用于每个话语的iVector和用于iVector提取的加载矩阵。接下来,针对iVectors进行K-均值聚类,并且从而获取每个iCluster的质心。通过自适应来估计特定于iCluster的子模块,并且获取特定于iCluster的子模块的清单。在解码期间,控制器可以使用加载矩阵来计算针对测试话语的iVector,并且然后基于ivector与不同的iCluster的质心之间的距离来分配语音iCluster。一旦标识出适当的iCluster子模块,特定于iCluster的子模块就可以被包括在模块化模型中用于解码。备选地,客户端和iCluster的关联可以离线获取,作为用于模块化的确定性信号。例如,一旦在给定上下文中计算出适合于说话者的iCluster,就可以基于上下文信号选择该iCluster。
[0122] 上下文可以基于sCluster。为了计算sCluster,控制器可以训练speakerID神经网络以进行说话者标识。可以提取最后的隐藏层瓶颈特征作为帧级向量空间表示。瓶颈特征是从多层感知器生成的,其中内层中的一个内层具有相对于其他层的大小的较小数目的隐藏单元。该小层在网络中产生收缩,这个收缩迫使与分类相关的信息成为低维表示。
[0123] 控制器可以经由对帧级表示求平均来计算话语级向量表示。然后,控制器可以对话语级向量表示进行K均值聚类,并且因此获取每个sCluster的质心。在测试中,首先通过将输入特征向前传递到speakerID神经网络来获取帧级瓶颈特征,并且通过对帧级特征求平均来计算话语级瓶颈特征,然后根据话语级speakerID神经网络瓶颈特征与不同的sCluster的质心之间的距离来分配sCluster。备选地,客户端和sCluster的关联可以离线获取作为用于模块化的确定性信号。
[0124] 在步骤1130,将声学信息转换为声学特征。特征可以包括在不同方法期间提取的多个表示。示例性方法包括:幅度调制光谱仪、相对光谱变换和感知线性预测、梅尔频率、倒谱系数和耳蜗图响应。备选地,语音音频的波形也可以直接用作输入特征。每种方法可以用于生成针对音频信号的不同表示集。例如,这些表示可以包括与音频信号内的不同频率范围相关联的表示。
[0125] 在步骤1140,当模块化深度学习模型正在处理声学特征时,激活与第一上下文相关联的第一子模块以执行计算。模块化模型可以是基于深度学习的声学模型。基于深度学习的声学模型包括不同类型的神经网络层(例如,全连接层、卷积层、长短期存储器单元层)的堆叠或其组合。这些层可以组织成前馈或循环网络结构。基于深度学习的声学模型的子模块可以用于表示不同的非音素的声学因素,诸如口音来源(例如,母语、非母语)、语音通道(例如,移动、蓝牙、桌面等)、语音应用场景(例如,话音搜索、短消息口述等)和说话者变型(例如,单个说话者或集群说话者)等。与现有的子模块一起,本文中描述的技术还可以插入附加的神经网络子模块,并且使用它们来参数化和优化特定的非音素的声学条件。总体而言,除了适应特定声学条件的一些特定子模块之外,很多神经网络组件跨多个声学条件而被共享。
[0126] 可以通过打开门来激活第一子模块,该门允许从前一层输出的数据被输入到第一子模块中。可以关闭与同一上下文类中的其他子模块关联的门。上下文类是训练特征,诸如话音性别。在话音性别类中,可以存在用于男性话音、女性话音以及默认或未确定性别的子模块。
[0127] 在另一方面,当模型被实体化以处理音频特征时,通过将子模块包括在模块化模型中来激活子模块。在这个示例中,模块化模型仅包括共享模块、对于一个上下文类上下文信息不可用的默认模块、以及当上下文已知时的特定于上下文模块。门不被需要,因为每个上下文类的仅一个模块被包括在模型中。
[0128] 子模块可以通过以下方式来训练:保持模块节点的基线版本恒定,并且然后使用特定于上下文的输入数据来重新训练特定于上下文的模块。因此,作为初始训练步骤,可以通过汇集来自所有上下文的数据来训练基线模块化深度学习声学模型。一旦经过训练,各层中的节点可以与以下变量相关联,这些变量用于处理非训练数据,以分配给定声学帧应当被标记为声学单元的概率。通过这个步骤生成的模型可以称为默认模型。默认模型将包括在每个上下文中处理数据的通用层。当与模块化层相关联的上下文没有被确定时,模块化层中的节点可以变成要使用的默认子模块。
[0129] 一旦训练了默认模型,就可以使用默认子模块作为起始点来训练特定于上下文的子模块。例如,可以通过以下来训练诸如针对具有南方口音的英语的特定于口音的模块:通过使用针对具有南方口音的英语的特定于口音的数据、经由模型适配来重新估计默认的特定于口音的模块。这可以通过在通用层和其他模块化层的默认子模块中保持值恒定来实现。仅调节特定于口音的模块中的节点值。一旦被调节,重新训练的子模块成为针对具有南方口音的英语的特定于口音的模块。可以重复这个过程以针对不同口音生成特定于口音的模块。
[0130] 用于构建特定于性别的子模块的过程是类似的。可以使用特定于性别的数据、经由模型适配来重新估计默认的特定于性别的子模块。特定于男性的模块可以用于构建特定于男性话音的子模块,并且女性话音数据可以用于构建特定于女性话音的子模块。
[0131] 可以使用特定于场景的数据、经由模型适配来重新估计默认的特定于场景的子模块,以构建特定于场景的子模块。
[0132] 可以使用特定于通道的数据、经由模型适配来重新估计默认的特定于通道的子模块,以构建特定于通道的子模块。
[0133] 可以使用不同环境噪声水平的语音、经由模型适配来重新估计默认的特定于噪声的子模块,以构建特定于噪声的子模块。
[0134] 可以使用属于不同iCluster的语音、经由应用于所选择的特定于iCluster的层的模型适配来重新估计默认的特定于iCluster的子模块,以构建特定于iCluster的子模块。
[0135] 可以使用属于不同sCluster的语音、经由应用于所选择的特定于sCluster的子模块的模型适配来重新估计默认的特定于sCluster的子模块,以构建特定于sCluster的子模块。
[0136] 在步骤1150,将声学特征输入到模块化深度学习模型中。特征可以输入到输入层。输入层中的每个节点可以适于接收特定特征。
[0137] 在步骤1160,通过使用模块化深度学习模型处理声学特征来生成用于声学信息的标签数据。输入层将接收的输入传输到模块化深度学习模型的最低隐藏层。模块化深度学习模型的每个隐藏层根据与每个节点相关联的函数和训练期间设置的参数来执行计算。输出集形成标签数据,标签数据可以传递给语言模型。可以为每个声学单元分配与不同分类相关联的得分。换言之,可以为单个声学单元分配三种不同的可能分类,每种分类具有不同的置信度得分。然后,该输出可以被处理,以确定不同语言序列的概率。
[0138] 现在转向图12,提供了使用模块化深度学习模型来标记声音的方法1200。方法1100可以作为被声学模型用于标记声音或声学数据的过程的一部分来执行,声学模型标记声音或声学数据以供语言模型用于标识人类语音。因此,方法1100可以由计算设备执行,诸如先前描述的计算设备1000。
[0139] 在步骤1210,接收包括来自用户的语音的声学信息。包括人类语音的声音可以由客户端设备捕获,如先前参考图2所述。用于捕获声音的传感器和相关硬件可以将声音转换为声学信息。
[0140] 在步骤1220,将声学信息转换为声学特征。特征可以包括在不同方法期间提取的多个表示。示例性方法包括:幅度调制光谱仪、相对光谱变换和感知线性预测、梅尔频率、倒谱系数和耳蜗图响应。备选地,语音音频的波形也可以直接用作输入特征。每种方法可以用于生成针对音频信号的不同表示集。例如,这些表示可以包括与音频信号内的不同频率范围相关联的表示。
[0141] 在步骤1230,针对第一上下文类来进行以下确定:声学信息与第一上下文相关联。每个上下文类可以与若干特定于上下文的子模块相关联。例如,类可以是话音性别,并且类可以包括男性话音子模块、女性话音子模块和默认子模块。可以通过分析除了声学信息之外的信号来确定上下文。例如,关于捕获音频信号的电话的信息可以用于确定说话者的可能性别、说话者的口音、国家的区域等。关于说话者的信息可以用于对具有子模块的模块化模型进行初始化,这些子模块专门适于处理匹配这些上下文特性的语音。使用专用子模块可以提高模型的准确性。
[0142] 可以提供控制器,控制器标识上下文,并且激活或去激活模块化模型内的不同子模块。例如,控制器可以根据上下文确定:音频信号捕获到女性话音。控制器可以激活被专门训练用于处理女性话音的子模块,而不是默认子模块或者被训练用于处理男性话音的子模块。可以同时激活专用子模块的不同组合。例如,模型可以包括专用于具有特定口音的、试图口述消息(一种场景)的女性说话者的子模块。
[0143] 在一个方面,控制器接收外部信号以理解上下文,并且初始化相关子模块。外部信号可以是离散的或连续的。离散信号可以基于在信号处理会话期间不太可能改变的一次性确定来定义上下文。离散信号可以包括枚举信号,诸如性别(女性、男性等)、场景(话音搜索、短消息口述等)、通道(移动、蓝牙、桌面等)等。离散信号可以从用户简档信息、设备上下文、信号分析等中导出。
[0144] 离散信号还可以包括聚类信号,诸如iCluster(例如,基于iVector表示的语音信号聚类)、sCluster(例如,基于speakerID神经网络瓶颈特征表示的语音信号聚类)等。iVector语音表示经由在全差异空间中的因子分析将可变长度语音信号映射到固定长度向量。差异空间由全差异矩阵定义,全差异矩阵包含具有全差异协方差矩阵的最大特征值的特征向量。iVector语音表示包含语音信号的多个可变性,诸如说话者、通道等。iCluster是一种基于iVector语音表示和K均值聚类的语音聚类方法。sCluster是一种基于speakerID深度神经网络瓶颈表示和K均值聚类的语音聚类方法。
[0145] 除了离散信号之外,可以监测连续信号以确定上下文。连续信号可以是标量信号或向量信号。标量信号可以是单个值,诸如整数。向量信号可以包括多个变量,每个变量具有指定的值。
[0146] 无论使用(多个)何种外部信号,控制器都处理信号并且确定上下文。上下文可以使用启发法或机器分类器来确定。在一个示例中,机器分类器使用可以被映射到感兴趣的上下文的上下文训练数据来训练。一旦经过训练,机器分类器就可以接收未标记的信号数据,并且分配一个或多个上下文。
[0147] 如上所述,可以考虑若干不同的上下文。一个上下文是说话者的性别。说话者的性别可以被确定为男性或女性。
[0148] 另一上下文是说话者的口音。以英语为例,说话者可以有英国口音、爱尔兰口音、澳大利亚口音、印度口音或若干不同的美国口音(例如,南部、纽约、芝加哥、新英格兰)之一。上下文还可以包括若干不同的外国口音。例如,说话者会说带有德国口音、法国口音、西班牙口音、中国口音等的英语。
[0149] 上下文可以是特定于场景的。人们在执行不同的任务时会不同地说话。例如,用户在口述消息时的说话可以与发布命令时的说话不同。特定于场景的上下文可以包括口述、查询、话音命令等。
[0150] 上下文可以是特定于通道的。特定于通道是指用于捕获音频信号的硬件和软件技术的组合。例如,使用蓝牙技术捕获的音频信号可以与嵌入在客户端设备中的麦克风所捕获的音频信号不同。音频信号可以根据麦克风的模型和设置而不同。
[0151] 上下文可以是特定于设备的。由于形成设备的硬件和软件的组合,不同的设备可以具有不同的音频特性。设备上下文可以由操作系统定义,其中运行操作系统的所有设备形成单个上下文。设备上下文可以通过形式因子来定义,诸如PC、智能手机、电子阅读器、虚拟现实耳机、增强现实等。设备上下文可以是特定于模型的,例如,特定模型的智能手机模型可以具有特定于模型的上下文。这些示例也可以组合以形成设备上下文。例如,可以通过形式因子和操作系统的组合来定义上下文,诸如运行第一操作系统的平板电脑。可以针对每个设备上下文来训练单独的子模块。
[0152] 上下文可以基于环境噪声水平。环境噪声上下文可以包括通过信噪比测量的环境噪声量。环境噪声上下文也可以基于环境噪声内容的类型。例如,上下文可以是包括音乐、电影或电视的环境噪声。环境噪声环境可能包括多个说话者在背景中谈话。可以训练不同的子模块来处理不同的环境噪声上下文。
[0153] 上下文可以基于iCluster。为了计算iCluster:首先,计算用于每个话语的iVector和用于iVector提取的加载矩阵。接下来,针对iVectors进行K-均值聚类,并且从而获取每个iCluster的质心。通过自适应来估计特定于iCluster的子模块,并且获取特定于iCluster的子模块的清单。在解码期间,控制器可以使用加载矩阵来计算针对测试话语的iVector,并且然后基于ivector与不同的iCluster的质心之间的距离来分配语音iCluster。一旦标识出适当的iCluster子模块,特定于iCluster的子模块就可以被包括在模块化模型中用于解码。备选地,客户端和iCluster的关联可以离线获取,作为用于模块化的确定性信号。例如,一旦在给定上下文中计算出适合于说话者的iCluster,就可以基于上下文信号选择该iCluster。
[0154] 上下文可以基于sCluster。为了计算sCluster,控制器可以训练speakerID神经网络以进行说话者标识。可以提取最后的隐藏层瓶颈特征作为帧级向量空间表示。瓶颈特征是从多层感知器生成的,其中内层中的一个内层具有相对于其他层的大小的较小数目的隐藏单元。该小层在网络中产生收缩,这个收缩迫使与分类相关的信息成为低维表示。
[0155] 控制器可以经由对帧级表示求平均来计算话语级向量表示。然后,控制器可以对话语级向量表示进行K均值聚类,并且因此获取每个sCluster的质心。在测试中,首先通过将输入特征向前传递到speakerID神经网络来获取帧级瓶颈特征,并且通过对帧级特征求平均来计算话语级瓶颈特征,然后根据话语级speakerID神经网络瓶颈特征与不同的sCluster的质心之间的距离来分配sCluster。备选地,客户端和sCluster的关联可以离线获取作为用于模块化的确定性信号。
[0156] 子模块可以通过以下方式来训练:保持模块节点的基线版本恒定,并且然后使用特定于上下文的输入数据来重新训练特定于上下文的模块。因此,作为初始训练步骤,可以通过汇集来自所有上下文的数据来训练基线模块化深度学习声学模型。一旦经过训练,各层中的节点可以与以下变量相关联,这些变量用于处理非训练数据,以分配给定声学帧应当被标记为声学单元的概率。通过这个步骤生成的模型可以称为默认模型。默认模型将包括在每个上下文中处理数据的通用层。当与模块化层相关联的上下文没有被确定时,模块化层中的节点可以变成要使用的默认子模块。
[0157] 一旦训练了默认模型,就可以使用默认子模块作为起始点来训练特定于上下文的子模块。例如,可以通过以下来训练诸如针对具有南方口音的英语的特定于口音的模块:通过使用针对具有南方口音的英语的特定于口音的数据、经由模型适配来重新估计默认的特定于口音的模块。这可以通过在通用层和其他模块化层的默认子模块中保持值恒定来实现。仅调节特定于口音的模块中的节点值。一旦被调节,重新训练的子模块成为针对具有南方口音的英语的特定于口音的模块。可以重复这个过程以针对不同口音生成特定于口音的模块。
[0158] 用于构建特定于性别的子模块的过程是类似的。可以使用特定于性别的数据、经由模型适配来重新估计默认的特定于性别的子模块。特定于男性的模块可以用于构建特定于男性话音的子模块,并且女性话音数据可以用于构建特定于女性话音的子模块。
[0159] 可以使用特定于场景的数据、经由模型适配来重新估计默认的特定于场景的子模块,以构建特定于场景的子模块。
[0160] 可以使用特定于通道的数据、经由模型适配来重新估计默认的特定于通道的子模块,以构建特定于通道的子模块。
[0161] 可以使用不同环境噪声水平的语音、经由模型适配来重新估计默认的特定于噪声的子模块,以构建特定于噪声的子模块。
[0162] 可以使用属于不同iCluster的语音、经由应用于所选择的特定于iCluster的层的模型适配来重新估计默认的特定于iCluster的子模块,以构建特定于iCluster的子模块。
[0163] 可以使用属于不同sCluster的语音、经由应用于所选择的特定于sCluster的子模块的模型适配来重新估计默认的特定于sCluster的子模块,以构建特定于sCluster的子模块。
[0164] 在步骤1240,从与第一上下文类相关联的多个子模块中选择第一子模块。如上所述,类中的每个子模块都与一个上下文相关联。可以使用与用于标记每个子模块的相同模式来进行上下文确定。换言之,上下文确定可以被约束为与可用子模块相匹配的结果。
[0165] 在步骤1250,当模块化深度学习模型正在处理声学特征时,激活与第一上下文相关联的第一子模块以执行计算。当第一子模块被激活时,与第一上下文类相关联的、未被选择的子模块不在模块化深度学习模型内执行计算。换言之,如果上下文指示男性话音,则将激活男性话音子模块,并且不激活女性和默认子模块。
[0166] 可以通过打开门来激活第一子模块,该门允许从前一层输出的数据被输入到第一子模块中。可以关闭与同一上下文类中的其他子模块关联的门。上下文类是训练特征,诸如话音性别。在话音性别类中,可以存在用于男性话音、女性话音以及默认或未确定性别的子模块。
[0167] 在另一方面,当模型被实体化以处理音频特征时,通过将子模块包括在模块化模型中来激活子模块。在这个示例中,模块化模型仅包括共享模块、对于一个上下文类上下文信息不可用的默认模块、以及当上下文已知时的特定于上下文模块。门不被需要,因为每个上下文类的仅一个模块被包括在模型中。
[0168] 在步骤1260,将声学特征输入到模块化深度学习模型中。特征可以输入到输入层。输入层中的每个节点可以适于接收特定特征。
[0169] 在步骤1270,通过使用模块化深度学习模型处理声学特征来生成用于声学信息的标签数据。输入层将接收的输入传输到模块化深度学习模型的最低隐藏层。模块化深度学习模型的每个隐藏层根据与每个节点相关联的函数和训练期间设置的参数来执行计算。输出集形成标签数据,标签数据可以传递给语言模型。可以为每个声学单元分配与不同分类相关联的得分。换言之,可以为单个声学单元分配三种不同的可能分类,每种分类具有不同的置信度得分。然后,该输出可以被处理,以确定不同语言序列的概率。
[0170] 示例性操作环境
[0171] 总体上参考附图,并且首先特别地参考图10,用于实现本文中描述的技术的各方面的示例性操作环境被示出,并且总体上被指定为计算设备1000。计算设备1000仅是合适的计算环境的一个示例,并不旨在对本文中描述的技术的使用范围或功能提出任何限制。计算设备1000也不应当被解释为对所示组件中的任何一个或组合有任何依赖性或要求。
[0172] 本文中描述的技术可以在计算机代码或机器可用指令的一般上下文中描述,包括计算机可执行指令,诸如程序组件,可执行指令由计算机或其他机器执行,诸如个人数据助理或其他手持设备。通常,程序组件(包括例程、程序、对象、组件、数据结构等)是指执行特定任务或实现特定抽象数据类型的代码。本文中描述的技术的各方面可以以各种系统配置来实践,包括手持设备、消费电子产品、通用计算机、专业计算设备等。本文中描述的技术的各方面也可以在分布式计算环境中实践,其中任务由通过通信网络链接的远程处理设备执行。
[0173] 继续参考图10,计算设备1000包括直接或间接耦合以下设备的总线1010:存储器1012、一个或多个处理器1014、一个或多个呈现组件1016、输入/输出(I/O)端口1018、I/O组件1020和说明性电源1022。总线1010表示可以是一个或多个总线(例如,地址总线、数据总线或其组合)。为了清楚起见,尽管图10的各种框与线条一起示出,但是实际上,描绘各种组件并不是这样清楚的,并且打个比方,线条将更准确地是灰色和模糊的。例如,可以将诸如显示设备等呈现组件视为I/O组件。此外,处理器具有存储器。发明人在此认识到,这是本领域的性质,并且重申图10的图仅仅是可以结合本文中描述的技术的一个或多个方面来使用的示例性计算设备的说明。在诸如“工作站”、“服务器”、“膝上型计算机”、“手持设备”等类别之间没有进行区分,因为所有这些都在图10的范围内并且指代“计算机”或“计算设备”。
[0174] 计算设备1000通常包括多种计算机可读介质。计算机可读介质可以是任何可用介质,其可以由计算设备1000访问,并且包括易失性介质和非易失性介质、可移除介质和不可移除介质。通过示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序子模块或其他数据之类的信息的任何方法或技术实现的易失性介质和非易失性介质、可移除介质和不可移除介质。
[0175] 计算机存储介质包括:RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储器、磁带盒、磁带、磁盘存储装置或其他磁存储设备。计算机存储介质不包括传播的数据信号。
[0176] 通信介质通常以经调制的数据信号(诸如载波或其他传输机制)来实施计算机可读指令、数据结构、程序子模块或其他数据,并且包括任何信息传递介质。术语“经调制的数据信号”意指以下信号,该信号使得其特性中的一个或多个特性被设置或改变,从而将信息编码在信号中。作为示例而非限制,通信介质包括有线介质(诸如有线网络或直接有线连接)以及无线介质(诸如声学、RF、红外线和其他无线介质)。上述内容的任何组合也应当包括在计算机可读介质的范围内。
[0177] 存储器1012包括易失性和/或非易失性存储器形式的计算机存储介质。存储器1012可以是可移除的、不可移除的或其组合。示例性存储器包括固态存储器、硬盘驱动器、光盘驱动器等。计算设备1000包括从诸如总线1010、存储器1012或I/O组件1020等各种实体读取数据的一个或多个处理器1014。(多个)呈现组件1016向用户或其他设备呈现数据指示。示例性呈现组件1016包括:显示设备、扬声器、打印组件、振动组件等。I/O端口1018允许计算设备1000在逻辑上耦合到其他设备,包括I/O组件1020,其中一些可以内置在其中。
[0178] 说明性I/O组件包括:麦克风、操纵杆、游戏板、卫星天线、扫描仪、打印机、显示设备、无线设备、控制器(诸如手写笔、键盘和鼠标)、自然用户界面(NUI)等。在实施例中,提供笔式数字转换器(未示出)和伴随的输入仪器(也未示出但是仅作为示例可以包括笔或触笔),以便数字地捕获徒手用户输入。笔式数字转换器与处理器1014之间的连接可以是直接的或经由利用本领域已知的串行端口、并行端口和/或其他接口和/或系统总线的耦合。此外,数字转换器输入组件可以是与诸如显示设备等输出组件分离的组件,或者在一些实施例中,数字转换器的可用输入区域可以与显示设备的显示区域共存,与显示设备集成,或者可以作为覆盖或以其他方式附加到显示设备的单独设备存在。任何和所有这样的变型及其任何组合都被构想,以在本文中描述的技术的各实施例的范围内。
[0179] NUI处理由用户生成的空中手势、语音或其他生理输入。适当的NUI输入可以被解释为用于与计算设备1000相关联地呈现的墨水笔划。这些请求可以被传输到适当的网络元件用于进一步处理。NUI实现语音识别、触摸和触笔识别、面部识别、生物测定识别、屏幕上和邻近屏幕的手势识别、空中手势、头部和眼睛追踪、以及与计算设备1000上的显示相关联的触摸识别的任意组合。计算设备1000可以配备有深度相机,诸如立体相机系统、红外相机系统、RGB相机系统以及它们的组合,用于手势检测和识别。附加地,计算设备1000可以配备有使得能够检测运动的加速度计或陀螺仪。加速度计或陀螺仪的输出可以被提供给计算设备1000的显示器以再现沉浸式增强现实或虚拟现实。
[0180] 计算设备可以包括无线电1024。无线电1024发射和接收无线电通信。计算设备可以是适于通过各种无线网络接收通信和介质的无线终端。计算设备1000可以经由诸如码分多址(“CDMA”)、全球移动系统(“GSM”)或时分多址(“TDMA”)等之类的无线协议来通信,以与其他设备进行通信。无线电通信可以是短距离连接、远距离连接、或短距离无线电信连接和长距离无线电信连接的组合。当我们提到“短”和“长”类型的连接时,我们并不意指两个设备之间的空间关系。相反,我们通常将短距离和长距离称为不同类别或类型的连接(即,主要连接和次要连接)。短距离连接可以包括到提供对无线通信网络的访问的设备(例如,移动热点)的 连接,诸如使用802.11协议的WLAN连接。与另一计算设备的蓝牙连接是短距离连接的第二示例。长距离连接可以包括使用CDMA、GPRS、GSM、TDMA和802.16协议中的一个或多个的连接。
[0181] 实施例
[0182] 已经描述了本文中描述的技术的各方面以作为说明而不是限制。应当理解,某些特征和子组合是有用的,并且可以在不参考其他特征和子组合的情况下使用。这是权利要求所预期的,并且在权利要求的范围内。
高效检索全球专利

IPRDB是专利检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,专利查询、专利分析

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用