使用视听数据进行说话分类

文档序号:538887 发布日期:2021-06-01 浏览:5次 >En<

阅读说明:本技术 使用视听数据进行说话分类 (Speech classification using audiovisual data ) 是由 S.乔杜里 O.克莱杰奇 J.E.罗思 于 2019-10-03 设计创作,主要内容包括:用于生成针对目标人物在视频的部分期间是否正在说话的预测的方法、系统和装置,包括编码在计算机存储介质上的计算机程序。在一个方面,一种方法包括:获得每个图像描绘在相应时间点给定人物的嘴部的一个或多个图像。使用图像嵌入神经网络处理图像,以生成图像的潜在表示。使用音频嵌入神经网络处理对应于图像的音频数据,以生成音频数据的潜在表示。使用循环神经网络处理图像的潜在表示和音频数据的潜在表示,以生成针对给定人物是否正在说话的预测。(Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for generating a prediction of whether a target person is speaking during a portion of a video. In one aspect, a method comprises: one or more images are obtained, each image depicting the mouth of a given person at a respective point in time. The image is processed using an image-embedding neural network to generate a potential representation of the image. Audio data corresponding to the image is processed using an audio embedded neural network to generate a potential representation of the audio data. The potential representation of the image and the potential representation of the audio data are processed using a recurrent neural network to generate a prediction of whether a given person is speaking.)

使用视听数据进行说话分类

背景技术

本说明书涉及使用机器学习模型处理数据。

机器学习模型接收输入,并根据接收到的输入生成输出,例如预测输出。一些机器学习模型是参数模型,其根据接收到的输入和模型参数的值生成输出。

一些机器学习模型是深度模型,其采用模型的多个层针对接收到的输入生成输出。例如,深度神经网络是一种深度机器学习模型,包括输出层和一个或多个隐藏层,每个隐藏层将非线性变换应用于接收到的输入以生成输出。

发明内容

本说明书描述了一种实现为在一个或多个位置的一个或多个计算机上的计算机程序的系统,该系统生成针对目标人物在视频的部分期间是否正在说话的预测。

根据第一方面,提供了一种方法,该方法包括:获得一个或多个图像,每个图像描绘相应时间点给定人物的嘴部,其中相应时间点中的每一个是不同的。使用图像嵌入神经网络处理所述一个或多个图像,以生成所述一个或多个图像的潜在表示(latentrepresentation)。获得对应于所述一个或多个图像的音频数据。使用音频嵌入神经网络处理所述音频数据的表示,以生成音频数据的潜在表示。使用循环神经网络处理所述一个或多个图像的潜在表示和所述音频数据的潜在表示,以生成一个输出,该输出定义了针对给定人物在相应时间点中的一个或多个处是否正在说话的预测。图像嵌入神经网络、音频嵌入神经网络和循环神经网络通过端到端优化过程进行训练。

在一些实施方式中,获得一个或多个图像,其中每个图像描绘相应时间点处给定人物的嘴部包括:从视频中获得一个或多个视频帧,其中视频帧中的每一个描绘该给定人物。确定所述一个或多个视频帧中的每一个中给定人物的相应位置。对于所述一个或多个视频帧中的每一个,基于给定人物在视频帧中的位置,裁剪描绘给定人物嘴部的视频帧的相应部分。

在一些实施方式中,音频数据对应于视频的一个或多个视频帧。

在一些实施方式中,所述一个或多个图像中的每一个除了描绘给定人物的嘴部之外,还描绘给定人物的面部或身体。

在一些实施方式中,音频数据的表示包括音频数据的梅尔频率倒谱系数(mel-frequency cepstral coefficients)。

在一些实施方式中,处理一个或多个图像的潜在表示和音频数据的潜在表示以更新循环神经网络的当前内部状态,从而生成循环神经网络的新内部状态。处理循环神经网络的新内部状态以生成输出,该输出定义了针对给定人物在各个时间点中的一个或多个处是否正在说话的预测。

在一些实施方式中,图像嵌入神经网络和音频嵌入神经网络各自包括一个或多个卷积神经网络层。

在一些实施方式中,循环神经网络包括多个门控循环单元(Gated RecurrentUnits,GRUs)。

根据第二方面,提供了一种系统,包括:(i)数据处理装置,以及(ii)存储器,其与该数据处理装置进行数据通信并存储使该数据处理装置执行如上所述方法的操作的指令。

根据第三方面,提供了一种或多种非暂时性计算机存储介质,其存储指令,该指令当由一个或多个计算机执行时,使该一个或多个计算机执行上述方法的操作。

可以实施本说明书中描述的主题的特定实施例,以实现以下优点中的一个或多个。

本说明书中描述的说话分类(speaking classification)系统集成了音频和视觉数据,以确定目标人物在视频的部分期间是否正在说话。通过集成音频数据和视频数据两者,系统学会区分目标人物嘴部(以及,可选地,目标人物的整个面部或整个身体)的位置及活动与相应的音频数据之间的复杂相关性,从而准确地预测目标人物是否正在说话。与仅使用视觉数据执行说话分类的系统相比,本说明书中描述的系统可以实现说话分类准确率的提高。此外,与仅使用视觉数据的系统相比,通过集成音频和视觉数据,本说明书中描述的系统可以减少计算资源(例如,存储器和计算能力)消耗。在特定示例中,通过处理1个视频帧和恒定数量的音频数据,本说明书中描述的系统可以胜过处理3个视频帧(无音频数据)的系统。由于处理1个视频帧和恒定数量的音频数据比处理3个视频帧消耗更少的计算资源,因此在该示例中,本说明书中描述的系统通过处理音频数据和视觉数据两者,减少了计算资源消耗。

本说明书中描述的说话分类系统可以处理不止描绘目标人物的嘴部,而且潜在地描绘目标人物的整个面部甚至整个身体的图像。以这种方式,该系统可以学习区分目标人物的面部及身体的位置和活动与音频数据之间的相关性,以准确地预测目标人物是否正在说话。通过处理不止描绘目标人物嘴部的图像,本说明书中描述的系统能够学习识别来自目标人物面部或身体的信号,这些信号可用于生成说话分类预测,因此能够获得更高的预测准确率。来自目标人物面部或身体的示例信号包括表情、眼部活动、手臂手势等的变化。在目标人物的嘴部被遮挡时(例如,由于目标人物将目光从相机移开),来自目标人物面部或身体的识别信号可以特别地提高说话分类预测的准确率。此外,本说明书中描述的系统直接处理目标人物的图像而无需(例如在一些常规系统中)对其进行预处理,例如,以识别面部标志,因此减少了计算资源的消耗。这是视觉和音频处理领域的一项技术改进。

本说明书中描述的系统可以使用循环神经网络来生成针对目标人物在视频的各个部分期间是否正在说话的相应说话分类预测的序列。通过使用循环神经网络,系统可以使用其先前处理的视频部分的“记忆”,来为当前正在处理的视频部分生成更准确的说话分类预测。具体地,该系统可以避免生成“嘈杂”的说话分类预测,这种“嘈杂”的说话分类预测在针对目标人物“说话”和“不说话”的预测之间(例如,在0.1秒或更短的时间段内)快速转变。这是视觉和音频处理领域的又一项技术改进。

本说明书中描述的系统是通过端到端优化过程进行训练的。更具体地说,通过将损失函数的梯度通过融合神经网络反向传播到音频嵌入神经网络和图像嵌入神经网络中,从而联合训练系统包含的神经网络。与单独训练系统包含的神经网络相比,通过端到端优化过程联合训练系统包含的神经网络可使系统能够生成更准确的说话分类预测。特别地,联合训练能够使神经网络学习音频数据和图像数据之间的相关性,从而提高了系统的准确性;而通过单独地训练神经网络则无法学习二者之间的相关性。这是视觉和音频处理领域的又一项技术改进。

在附图和以下描述中阐述本说明书的主题的一个或多个实施例的细节。根据说明书、附图和权利要求书,本主题的其他特征、方面和优点将变得显而易见。

附图说明

图1示出了示例说话分类系统。

图2示出了示例数据流,其中,说话分类系统顺次处理来自视频各个部分的视频帧和音频数据。

图3是用于生成说话分类数据的示例过程的流程图。

图4是用于通过端到端优化过程联合训练音频嵌入神经网络、图像嵌入神经网络和融合神经网络的示例过程的流程图。

在各个附图中,相同的附图标记和名称指示相同的元件。

具体实施方式

本说明书描述了一种说话分类系统,该系统处理来自视频的一部分的一个或多个视频帧和音频数据片段,以生成针对目标人物(即,视频帧所描绘的人物)在视频的该部分期间是否正在说话的预测。该系统使用音频嵌入神经网络处理音频数据,以生成音频数据的潜在表示。可选地,该系统可以从视频帧中裁剪(至少)描绘目标人物嘴部的图像,并使用图像嵌入神经网络处理裁剪图像以生成裁剪图像的潜在表示。该系统使用融合神经网络处理音频数据的潜在表示和描绘目标人物嘴部的裁剪图像的潜在表示,以生成针对目标人物在视频的该部分期间是否正在说话的预测。下文将更为详细地描述这些特征及其他特征。

图1示出了示例说话分类系统100。该说话分类系统100是被实现为一个或多个位置中的一个或多个计算机上的计算机程序的系统的示例,为所述计算机中实现以下描述的系统、组件和技术。

说话分类系统100被配置为处理来自视频106的一个或多个视频帧102和相应的音频数据104。通常,视频帧102和相应的音频数据104仅代表视频106的一小部分。例如,视频106可以包括数千个具有相应音频数据的视频帧,而系统100可以配置为一次仅处理3个视频帧102以及与这3个视频帧相对应的音频数据104。音频数据104可以同视频帧102对应于视频中完全相同的部分,但是在某些情况下,也可以相较于视频帧102对应于视频106中更大或更小的部分。来自视频106的音频数据104可以是在捕获视频帧102的相同时间和地点处的记录(例如,由麦克风捕获)。特别地,音频数据104可以是当捕获视频帧102时,由在视频帧102中描绘的一个或多个人物所说单词的记录。

系统100处理输入音频数据104、视频帧102和指定视频帧102中所描绘人物(这里称为“目标人物”)的人物识别数据108,以生成说话分类数据110。该说话分类数据110定义针对目标人物在由视频帧102和相应的音频数据104表征的视频106的部分期间是否正在说话的预测(例如,概率)。

如参考图2所示,该系统100可以用于顺次处理表征视频106(可能重叠)部分的音频数据104和视频帧102,以生成说话分类数据110输出的序列。该说话分类数据110输出的序列可以定义针对目标人物在视频106的多个相应部分期间是否正在说话的预测。

系统100包括音频嵌入神经网络116、图像嵌入神经网络124和融合神经网络114。如本领域技术人员所知,嵌入神经网络是一种类型的人工神经网络,其被配置为将离散输入(例如,特征向量)映射到连续值输出(例如,向量或矩阵)。与其他类型的具有“一个热点”输出的神经网络相反,嵌入神经网络的连续值输出具有以下特性:即,相似输入被映射到多维空间中彼此接近的输出。嵌入神经网络的输出因此可以描述为输入到嵌入神经网络的数据的潜在表示。音频嵌入神经网络116和图像嵌入神经网络124是被配置为分别处理音频输入和图像输入的嵌入神经网络,下文将对此进行更为详细地描述。

融合神经网络114被配置为组合音频嵌入神经网络116的输出和图像嵌入神经网络124的输出。融合神经网络114的输入是音频嵌入神经网络116的输出和图像嵌入神经网络124的输出。融合神经网络114的输出定义了针对目标人物在视频106的部分期间是否正在说话的预测。术语“预测”是指由融合神经网络114做出的针对目标人物在视频106的部分期间是否正在说话的判断。预测可以表示为目标人物是否正在说话的概率,其可以采取介于0.0到1.0之间的浮点值的形式。替代地或附加地,可以将预测表示为二进制值(即,“真”或“假”),该二进制值指示是否已确定目标人物正在说话。

该融合神经网络114可以使用循环神经网络来实现,对此下文将进行更为详细地描述。如本领域技术人员所知的,循环神经网络是一种类型的具有内部状态(或记忆)的人工神经网络,使得循环神经网络的输出是其输入及其内部状态的函数。循环神经网络的内部状态被迭代更新,以生成作为当前内部状态和当前输入的函数的新内部状态。而循环神经网络的当前内部状态又是先前输入和先前内部状态的函数。循环神经网络允许准确预测目标人物在视频106的特定帧中是否正在说话。这是因为目标人物在任何给定帧中是否正在说话的概率受该人物在前一个或多个帧中是否正在说话的影响。因此,在确定当前帧的预测时,循环神经网络的内部状态允许考虑到针对先前帧的预测,从而提高了预测的整体准确率。

可以由任何适当的数字格式来表示由说话分类系统100处理的音频数据104和视频帧102。例如,音频数据104可以被表示为音频波形,其体现为数字幅度值的矢量。作为另一示例,视频帧102中的每一个可以被表示为数字值的多维矩阵。在特定示例中,视频帧中的每一个可以被表示为相应红绿蓝(RGB)图像,其分别由相应的数字值的三维(3D)矩阵来体现。

为了生成说话分类数据110,系统100生成音频数据104的潜在表示和目标人物图像112的潜在表示,该目标人物图像112是从视频帧102裁剪并描绘目标人物嘴部的图像。随后,系统100将音频数据104和目标人物图像112的相应潜在表示提供给融合神经网络114。融合神经网络114被配置为处理音频数据104和目标人物图像112的相应潜在表示,以生成说话分类数据110,对此下文将进行更为详细地描述。

在本说明书中,一组数据(例如,音频数据104或目标人物图像112)的潜在表示是指数据(例如,作为矢量或矩阵)的数字表示,其由系统100内部生成。例如,系统100可以通过使用神经网络处理数据并将神经网络的输出确定为数据的潜在表示,来生成一组数据的潜在表示。

为了生成音频数据104的潜在表示,系统100根据音频嵌入神经网络参数的当前值,使用音频嵌入神经网络116处理音频数据104。系统100将音频嵌入神经网络116的最终层的输出确定为音频数据104的潜在表示。可选地,在将音频数据104提供给音频嵌入神经网络116之前,系统100可以使用音频处理引擎118处理音频数据104,以生成音频数据的替代表示120。例如,音频处理引擎118可以处理作为音频波形的音频数据104的一维表示,以生成作为梅尔频率倒谱系数(Mel-Frequency Cepstral Coefficients,MFCC)的二维阵列、或作为梅尔频谱图的音频数据的替代表示120。在生成音频数据104的替代表示120之后,系统100可以使用音频嵌入神经网络116处理音频数据104的替代表示120,由此生成音频数据104的潜在表示。

通常,音频嵌入神经网络116可以用任何适当的神经网络架构来实现。例如,如果音频嵌入神经网络116被配置为直接处理作为一维音频波形的音频数据104的表示,则音频嵌入神经网络的架构可以包括一个或多个一维卷积层。一维卷积层是指由一维卷积滤波器定义的卷积层。作为另一示例,如果音频嵌入神经网络116被配置为处理作为梅尔频率倒谱系数的二维阵列的音频数据104的表示,则音频嵌入神经网络116的架构可以包括一个或多个二维卷积层。二维卷积层是指由二维卷积滤波器定义的卷积层。在一些情况下,音频嵌入神经网络116的最终层是全连接层,并且系统100可以将音频数据104的潜在表示确定为由该全连接层输出的一维矢量。

系统100使用裁剪引擎122处理视频帧102中的每一个及人物识别数据108,由此生成目标人物图像112。裁剪引擎122被配置为确定每个视频帧102中由人物识别数据108识别的目标人物的位置(即,定位),并裁剪每个视频帧102中描述目标人物嘴部的部分,以生成相应目标人物图像112。在某些情况下,裁剪引擎122被配置为裁剪每个视频帧102的部分,所述部分描绘的不止是目标人物的嘴部。例如,裁剪引擎122可以被配置为裁剪每个视频帧102的部分,所述部分描绘了目标人物的面部的包括嘴部的区域、目标人物的整个面部、甚至是目标人物的整个身体。

可以用任何适当的格式来表示识别目标人物的人物识别数据108。例如,人物识别数据108可以是使用面部嵌入神经网络(例如,FaceNet神经网络)生成的目标人物面部的潜在表示。作为另一示例,人物识别数据108可以是(例如,通过先前视频帧中环绕在目标人物面部的边界框)指示目标人物面部在先前视频帧中的位置的数据。在该示例中,为了确定目标人物在视频帧102中的位置,裁剪引擎122可以使用人脸检测神经网络来检测视频帧102中每个人脸(例如,由边界框表示)的位置。随后,裁剪引擎122可以将目标人物在视频帧102中的位置确定为与先前视频帧中目标人物面部的已知位置(例如,通过边界框重叠测量的)“最接近”的检测所得面部。参照图3描述了裁剪引擎122使用人物识别数据108确定目标人物在每个视频帧102中的位置的示例过程。

系统100可以根据图像嵌入神经网络参数的当前值,通过串接(concatenating)目标人物图像112并使用图像嵌入神经网络124对其进行处理,来生成目标人物图像112的潜在表示。系统可以将图像嵌入神经网络124的最终层输出确定为目标人物图像112的潜在表示。

通常,可以用任何适当的神经网络架构来实现图像嵌入神经网络124。例如,图像嵌入神经网络的架构可以包括一个或多个二维或三维卷积层(即,由二维或三维卷积滤波器定义的卷积层)。在一些情况下,图像嵌入神经网络124的最终层是全连接层,并且系统100可以将目标人物图像112的潜在表示确定为由该全连接层输出的一维矢量。

系统100将音频数据104的潜在表示与目标人物图像112的潜在表示进行串接,并将串接的潜在表示提供给融合神经网络114。融合神经网络114根据融合神经网络参数的当前值处理各个潜在表示,以生成相应的说话分类数据110。说话分类数据110定义了针对目标人物在由视频帧102和相应的音频数据104表征的视频的持续期间内是否正在说话的预测(例如,介于0到1之间的数字概率值)。直观地,可以将融合神经网络114理解为学会了区分目标人物嘴部不同位置及活动与相应音频数据104中的变化之间的复杂相关性。当目标人物图像112描绘的不止是目标人物的嘴部(例如,其描绘面部或整个身体)时,融合神经网络114可以进一步学习区分涉及目标人物面部和身体的位置及活动的复杂相关性。

通常,融合神经网络114可以用任何适当的神经网络架构来实现。例如,融合神经网络114可以包括一个或多个卷积神经网络层,一个或多个全连接神经网络层,或两者都包括。

在一些实施方式中,融合神经网络114被实现为循环神经网络。例如,融合神经网络114可以被实现为门控循环单元(GRU)或多个GRU的堆栈。在这些实施方式中,融合神经网络114维护内部状态,该内部状态可以被理解为总结了已经由系统100处理过的来自视频106先前部分的音频数据和目标人物图像。融合神经网络114使用其维护的内部状态,针对系统当前正在处理的音频数据104和目标人物图像112生成说话分类数据110。因此,当融合神经网络114被实现为循环神经网络时,融合神经网络114可以使用来自视频106先前处理部分的视频帧和音频数据的“记忆”,以生成更准确的说话分类数据110。以这种方式,融合神经网络114可以生成说话分类数据110的输出的序列,这些输出定义了视频106的连续(即,不间断的)持续期间,在所述期间内目标人物被预测为“正在说话”或“未说话”。

相反,如果融合神经网络114未被实现为循环神经网络,并且独立地处理来自视频各部分的音频数据104和视频帧102,那么由系统100生成的说话分类数据110的输出序列可能是嘈杂的。即,由系统100生成的说话分类数据110的输出序列可能会预测在针对目标人物“正在说话”和“未说话”的预测之间的极快速的(例如,在0.1秒或更短的时间段内)转变。这些快速转变的预测是不真实的,并且可能会降低使用该系统100输出的说话分类数据110的下游系统的性能。

系统100包括训练引擎126,该训练引擎126被配置为通过端到端优化过程联合训练系统100包含的神经网络(即,音频嵌入神经网络116、图像嵌入神经网络124和融合神经网络114)。即,通过将损失函数的梯度通过融合神经网络114反向传播到音频嵌入神经网络116和图像嵌入神经网络124中,来联合训练系统100包含的神经网络。通过利用端到端优化过程来联合训练系统100包含的神经网络,训练引擎126可以确定训练的神经网络参数值,所述参数值使系统100生成比单独训练神经网络时更准确的说话分类数据110。

训练引擎126基于一组训练数据128来训练系统100包含的神经网络。该训练数据128包括多个训练样例130,其中每个训练样例包括:(i)训练音频数据和训练目标人物图像,(ii)指示用于训练音频数据和训练目标人物图像的目标说话分类数据的标签。训练引擎126迭代地更新系统100包含的神经网络的参数值,以使这些神经网络通过处理训练音频数据和训练说话者图像生成与训练样例包含的标签匹配的说话分类数据110。参照图4描述了用于训练系统100包含的神经网络的示例过程。

图2示出了示例性数据流,其中,说话分类系统100顺次处理来自视频106各个部分的视频帧和音频数据,以生成说话分类数据202的输出的对应序列。说话分类数据202的输出序列定义了针对由人物识别数据204指定的目标人物在视频106的各部分期间是否正在说话的相应预测。

在图2所示的示例中,系统100处理:(i)视频帧206-A和206-B,(ii)与视频帧206-A和206-B对应的音频数据208-A和208-B,以及(iii)人物识别数据204,以生成说话分类数据210的输出。说话分类数据210定义“是”预测,即,人物识别数据204指定的目标人物在由视频帧206-A和206-B以及对应的音频数据208-A和208-B表征的视频106的部分期间正在说话的预测。类似地,系统处理:(i)视频帧206-C和206-D,(ii)音频数据208-C和208-D,以及(iii)人物识别数据204,以生成说话分类数据212。说话分类数据212定义“是”预测。系统还处理:(i)视频帧206-E和206-F,(ii)音频数据208-E和208-F,以及(iii)人物识别数据204,以生成说话分类数据214。说话分类数据214定义“否”预测,即,人物识别数据204指定的目标人物在由视频帧206-E和206-F以及对应的音频数据208-E和208-F表征的视频106的部分期间未说话的预测。

为了清楚起见,图2所示的示例描绘了系统100为了生成说话分类数据202的输出序列而处理的视频帧和相应的音频数据为不相交的(disjoint)。例如,系统100为了生成说话分类数据210而处理的视频帧206-A和206-B以及音频数据208-A和208-B与系统100为了生成说话分类数据212而处理的视频帧206-C和206-D以及音频数据208-C和208-D不重叠。通常,系统100处理的视频帧以及相应的音频数据可以表征视频106的重叠部分。

以下的几个示例说明了不同的视频处理系统可以如何使用说话分类系统100生成的说话分类数据。这些示例意图是示例性的,不应被解释为限制说话分类系统100生成的说话分类数据的可能应用。

在一个示例中,可以将说话分类系统100生成的说话分类数据提供给视频会议系统216。在该示例中,在多人参与视频会议的会议室中可以由视频会议系统216的摄像机和麦克风生成视频。该视频可由说话分类系统100实时处理以生成实时说话分类数据输出。即,视频会议系统216生成的视频帧和音频数据可以在生成时被实时地提供给说话分类系统100。说话分类系统100可以处理所提供的视频,以生成定义针对视频中描绘的每个人当前是否正在说话的预测的相应说话分类输出。说话分类数据随后可以由视频会议系统216处理,以生成处理后的视频218,发送给视频会议中的其他参与者。在特定示例中,视频会议系统216可以用环绕当前说话者面部的边界框对视频进行注释,以生成处理后的视频218。在另一个特定示例中,视频会议系统216可以放大视频中当前说话者的面部,由此生成处理后的视频218。

在另一个示例中,可以将说话分类系统100生成的说话分类数据提供给自动翻译系统220。自动翻译系统220可以被配置为处理视频以生成翻译后的视频222。在翻译后的视频222中,视频中描绘的每个说话者以自然语言(例如英语)说出的语音被以不同自然语言(例如法语)说出对说话者话语的翻译的对应语音替代。说话分类系统100通过处理视频生成的说话分类数据可以定义视频中所描绘的每个人物正在说话的视频部分。与视频的这些部分对应的音频可以(例如,通过语音识别系统)进行转录,(例如,通过机器翻译系统)翻译成不同的语言,并且(例如,通过语言化系统)以不同语言进行语言表达。自动翻译系统220可以将视频的原始音频替换为以此方式生成的翻译音频,以生成翻译后的视频222。

图3是用于产生说话分类数据的示例过程300的流程图。为了方便起见,过程300将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当地编程的说话分类系统,例如,图1的说话分类系统100,可以执行过程300。

该系统从视频获得一个或多个视频帧(302)。通常,视频帧仅代表视频的一小部分。例如,视频可以包括数千个视频帧,而系统可以被配置为一次仅处理3个视频帧(以及与3个视频帧相对应的音频数据)。视频帧可以从数据存储(例如,逻辑数据存储区或物理数据存储设备)中存储的视频中获取,也可以从视频捕获设备(例如,数字摄像机)实时获取。

系统从视频帧生成目标人物图像(304)。为了从视频帧生成目标人物图像,系统接收指定视频帧中描绘的目标人物的人物识别数据。该系统确定目标人物在视频帧中的位置,并裁剪视频帧中的每一个中描绘目标人物嘴部的部分以生成目标人物图像。在某些情况下,系统裁剪每个视频帧中不止描绘目标人物嘴部的部分。例如,系统可以裁剪每个视频帧中描绘目标人物面部的包括嘴部的区域、目标人物的整个面部、甚至目标人物的整个身体的部。

指定目标人物的人物识别数据可以用任何适当的格式表示。例如,人物识别数据可以是使用面部嵌入神经网络(例如,FaceNet神经网络)生成的目标人物面部的潜在表示。在该示例中,系统可以使用人脸检测神经网络来检测视频帧中每个人脸的位置,从而确定目标人物在视频帧中的位置。该系统随后可以使用面部嵌入神经网络来生成每个检测到的面部的相应潜在表示。系统可以确定检测到的面部,该检测到的面部具有与人物识别数据指定为目标人物的潜在表示最相似的潜在表示。可以根据任何适当的相似性度量(例如,欧几里得相似性度量或余弦相似性度量)来确定潜在表示之间的相似性。

系统生成目标人物图像的潜在表示(306)。为了生成目标人物图像的潜在表示,系统可以将目标人物图像进行串接,并根据图像嵌入神经网络参数的当前值、使用图像嵌入神经网络来处理串接的目标人物图像。可替代地,系统可以使用图像嵌入神经网络单独处理目标人物图像中的每一个,随后将目标人物图像的潜在表示确定为针对目标图像中的每一个的图像嵌入神经网络的相应输出的串接。该系统可以将图像嵌入神经网络最终层的输出确定为目标人物图像的潜在表示。

系统从视频获得与所获得视频帧相对应的音频数据(308)。音频数据可以与所获得视频帧对应于视频中完全相同的部分,但是在某些情况下,也可以相较于所获得视频帧对应于视频中更大或更小的部分。

系统生成所获得音频数据的潜在表示(310)。为了生成音频数据的潜在表示,系统根据音频嵌入神经网络参数的当前值,使用音频嵌入神经网络处理音频数据。系统将音频嵌入神经网络最终层的输出确定为音频数据的潜在表示。可选地,在将音频数据提供给音频嵌入神经网络之前,系统可以处理音频数据以生成音频数据的替代表示。例如,系统可以处理作为音频波形的音频数据的一维表示,以生成作为梅尔频率倒谱系数(MFCCs)的二维阵列的音频数据的替代表示。在生成音频数据的替代表示之后,系统可以使用音频嵌入神经网络处理音频数据的替代表示,由此生成音频数据的潜在表示。

应当理解的是,图3并不意味着必须以任何特定顺序执行操作306和310。即,生成图像的潜在表示(306)可以在生成音频数据的潜在表示(310)之前,之后,或与之基本同时进行。

该系统使用融合神经网络处理目标人物图像的潜在表示和音频数据的潜在表示,以生成说话分类数据(312)。说话分类数据定义了针对目标人物在由所获得视频帧和相应音频数据表征的视频部分期间是否正在说话的预测(例如,介于0和1之间的数字概率值)。如果融合神经网络是循环神经网络(例如,GRU),则系统可以处理目标人物图像的潜在表示和音频数据的潜在表示,以更新循环神经网络的当前内部状态。系统随后处理循环神经网络的新内部状态,以生成说话分类数据。

在针对所获得视频帧和音频数据表征的视频部分生成说话分类数据之后,系统可以返回步骤302,并对视频的后续部分重复先前的步骤。或者,如果所获得视频帧和音频数据表征的视频部分是视频的最后部分,那么系统可以提供针对视频的不同部分生成的说话分类数据输出,以供另一个系统使用。例如,如参考图2所描述的,系统可以提供所生成的说话分类数据,以供视频会议系统或自动翻译系统使用。

图4是用于通过端到端优化过程联合训练音频嵌入神经网络、图像嵌入神经网络和融合神经网络的示例过程400的流程图。为了方便起见,过程400将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当地编程的说话分类系统,例如,图1的说话分类系统100,可以执行过程400。

该系统从包括多个训练样例的一组训练数据中获得一个或多个训练样例(402)。每个训练样例包括:(i)训练音频数据和训练目标人物图像,以及(ii)指示用于训练音频数据和训练目标人物图像的目标说话分类数据的标签。标签可已经由人工评估者手动确定。系统可以从该组训练数据中随机采样以获得训练样例。

对于每个训练样例,系统处理训练样例包含的训练音频数据和训练目标人物图像,以生成针对训练样例的相应说话分类数据(404)。为了生成针对训练样例的说话分类数据,系统根据音频嵌入神经网络参数的当前值,使用音频嵌入神经网络处理来自训练样例的训练音频数据,以生成训练音频数据的潜在表示。该系统根据图像嵌入神经网络参数的当前值,使用图像嵌入神经网络处理来自训练样例的训练目标人物图像,以生成训练目标人物图像的潜在表示。随后,系统根据融合神经网络参数的当前值,使用融合神经网络处理来自训练样例的训练音频数据和训练目标人物图像的各个潜在表示,以生成针对训练样例的说话分类数据。

系统确定针对音频嵌入神经网络、图像嵌入神经网络和融合神经网络当前参数值的损失函数的梯度(406)。通常,损失函数将针对每个训练样例生成的说话分类数据与指示目标说话分类数据的标签进行比较。例如,损失函数可以是二进制交叉熵损失函数。可选地,损失函数可以包括正则项(例如,对神经网络权重的L2惩罚)。系统可以使用反向传播过程来确定梯度。

在某些情况下,系统处理训练样例以生成辅助说话分类数据输出,该输出仅基于训练目标人物图像(即,不依赖于训练音频数据)生成。在这些情况下,损失函数可以包括附加项,附加项将仅基于训练目标人物图像针对每个训练样例生成的说话分类数据与目标说话分类数据进行比较。

该系统使用所确定的梯度来调整音频嵌入神经网络、图像嵌入神经网络和融合神经网络的当前参数值(408)。通常,系统可以基于任何适当的梯度下降优化算法(例如,Adam、RMSprop、Adagrad、Adadelta和AdaMax等)的更新规则,使用损失函数的梯度来调整神经网络的当前参数值。

本说明书结合系统和计算机程序组件使用术语“配置为”。对于要被配置为执行特定操作或动作的一个或多个计算机的系统,意味着该系统已在其上安装了软件、固件、硬件或它们的组合,这些软件、固件、硬件或它们的组合在操作中使系统执行所述操作或动作。对于要被配置为执行特定操作或动作的一个或多个计算机程序,意味着该一个或多个程序包括指令,该指令在由数据处理装置执行时使该装置执行所述操作或动作。

本说明书中描述的主题和功能操作的实施例可以在数字电子电路中、在有形体现的计算机软件或固件中、在计算机硬件(包括本说明书中公开的结构及其结构等同物)中或在它们中的一个或多个的组合中实现。本说明书中描述的主题的实施例可以被实现为一个或多个计算机程序,即编码在有形非暂时性存储介质上的计算机程序指令的一个或多个模块,以用于由数据处理装置执行或控制数据处理装置的操作。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行访问存储器设备或它们中的一个或多个的组合。可替换地或附加地,程序指令可以被编码在人工生成的传播信号上,例如,机器生成的电信号、光信号或电磁信号,其被生成以对信息进行编码以用于传输给合适的接收器装置以供数据处理装置执行。

术语“数据处理装置”是指数据处理硬件,并且包括用于处理数据的所有种类的装置、设备和机器,包括例如可编程处理器、计算机或多个处理器或计算机。该装置还可以是或进一步包括专用逻辑电路,例如,现场可编程门阵列(Field Programmable Gate Array,FPGA)或专用集成电路(Application-Specific Integrated Circuit,ASIC)。除了硬件之外,装置还可以可选地包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。

计算机程序(其也可以被称为或被描述为程序、软件、软件应用、app、模块、软件模块、脚本或代码)可以以任何形式的编程语言编写,该任何形式的编程语言包括编译或解释语言或者声明性或过程性语言;并且该计算机程序可以以任何形式部署,包括作为独立程序或作为适于在计算环境中使用的模块、组件、子例程或其他单元。程序可以但不必对应于文件系统中的文件。程序可以存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中、存储在专用于所讨论的程序的单个文件中或者在多个协调文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。计算机程序可以被部署为在一个计算机上或在位于一个站点处或跨多个站点分布并且通过数据通信网络互连的多个计算机上执行。

在本说明书中,术语“引擎”广泛地用于指代被编程以执行一个或多个特定功能的基于软件的系统、子系统或过程。通常,引擎将被实现为安装在一个或多个位置中的一个或多个计算机上的一个或多个软件模块或组件。在某些情况下,一台或多台计算机将专用于特定引擎;在其他情况下,可以在同一台计算机或多台计算机上安装并运行多个引擎。

本说明书中描述的过程和逻辑流程可以由一个或多个可编程计算机执行,该一个或多个可编程计算机执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路(例如,FPGA或ASIC)或由专用逻辑电路和一个或多个编程的计算机的组合来执行。

适合于执行计算机程序的计算机可以基于通用和专用微处理器或两者以及任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的必要元件是用于执行或运行指令的中央处理单元和用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如,磁盘、磁光盘或光盘,或者计算机还可操作地耦合到该一个或多个大容量存储设备以从其接收数据或向其传送数据或两者。然而,计算机不需要具有这样的设备。此外,计算机可以嵌入在另一设备中,该另一个设备例如是移动电话、个人数字助理(Personal DigitalAssistant,PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GlobalPositioning System,GPS)接收器或便携式存储设备,例如,通用串行总线(UniversalSerial Bus,USB)闪存驱动器,这里仅举了几个例子。

适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储设备,例如包括:半导体存储设备,例如,EPROM、EEPROM和闪存设备;磁盘,例如,内部硬盘或可移动盘;磁光盘;以及CD-ROM和DVD-ROM盘。

为了提供与用户的交互,本说明书中描述的主题的实施例可以实现在计算机上,该计算机具有:用于向用户显示信息的显示设备(例如,阴极射线管(Cathode Ray Tube,CRT)或液晶显示器(Liquid Crystal Display,LCD)监视器);以及用户可以通过其向计算机提供输入的键盘和例如鼠标或轨迹球的指示设备。其他种类的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,该任何形式包括声音、语音或触觉输入。另外,计算机可以通过下述方式与用户交互:向用户使用的设备发送文档和从用户使用的设备接收文档;例如,通过响应于从用户的设备上的web浏览器接收到的请求将网页发送到该web浏览器。而且,计算机可以通过将文本消息或其他形式的消息发送到个人设备(例如,运行消息传送应用的智能手机),并作为回应从用户接收响应消息来与用户交互。

用于实现机器学习模型的数据处理装置还可以包括例如专用硬件加速器单元,该专用硬件加速器单元用于处理机器学习训练或生产的公共的和计算密集的部分,即推断、工作负载。

可以使用机器学习框架(例如,TensorFlow框架、Microsoft Cognitive Toolkit(微软认知工具包)框架、Apache Singa框架或Apache MXNet框架)来实现和部署机器学习模型。

本说明书中描述的主题的实施例可以实现在计算系统中,该计算系统包括诸如作为数据服务器的后端组件,或者包括例如应用服务器的中间件组件,或者包括例如具有图形用户界面、Web浏览器或app的客户端计算机的前端组件,或者包括一个或多个这样的后端、中间件或前端组件的任何组合,其中,用户可以通过所述图形用户界面、Web浏览器或app与本说明书中描述的主题的实现方式进行交互。系统的组件可以通过任何形式或介质的数字数据通信——例如,通信网络——互连。通信网络的示例包括局域网(Local AreaNetwork,LAN)和广域网(Wide Area Network,WAN),例如,因特网。

计算系统可包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系借助于在相应计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。在一些实施例中,服务器将数据(例如,HTML页面)发送到用户设备,例如,用于向与作为客户端的设备交互的用户显示数据和从用户接收用户输入的目的。可以在服务器处从设备接收在用户设备处生成的数据,例如,用户交互的结果。

虽然本说明书包含许多具体的实现方式细节,但是这些不应被解释为对任何发明的范围或可以要求保护的范围的限制,而是作为特定于特定发明的特定实施例的特征的描述。本说明书中在单独实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施例中实现。此外,尽管特征可以在上面被描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下可以从组合中切除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变型。

类似地,虽然在附图中描绘了操作并且以特定顺序在权利要求中叙述了操作,但是这不应该被理解为要求以所示的特定顺序或按顺序执行这些操作,或者执行所有示出的操作,以实现期望的结果。在某些情况下,多任务处理和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中都需要这种分离,并且应当理解的是,所描述的程序组件和系统通常可以集成在单个软件产品中或打包成多个软件产品。

已经描述了主题的特定实施例。其他实施例在所附权利要求的范围内。例如,在权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。作为一个示例,附图中描绘的过程不一定需要所示的特定顺序或依次的顺序来实现期望的结果。在某些情况下,多任务处理和并行处理可能是有利的。

20页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:使用子带降噪技术降噪的系统和方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!