HI,欢迎来到起点商标网!
24小时服务QQ:2880605093

通过音素预测进行视觉语音识别的制作方法

2021-01-28 14:01:40|219|起点商标网
通过音素预测进行视觉语音识别的制作方法



背景技术:

本说明书涉及视觉语音识别。

视觉语音识别是指处理描绘人的嘴唇的视频帧的序列,以基于视频帧中嘴唇的运动来预测人说出的词的序列。

视觉语音识别可以通过机器学习模型,例如神经网络模型,来执行。



技术实现要素:

本说明书描述了一种系统,该系统被实现为一个或多个位置中的一个或多个计算机上执行视觉语音识别的计算机程序。

根据第一方面,提供了用于视觉语音识别的方法和对应的系统。该方法/系统包括接收包括多个视频帧的视频,其中每个视频帧描绘(特定人的)双唇。该方法/系统还包括根据视觉语音识别神经网络参数的当前值使用视觉语音识别神经网络来处理视频,以针对输出序列中的每个输出位置为可能标记(token)的词汇表中的每个标记生成相应的输出分数。视觉语音识别神经网络包括一个或多个体积卷积神经网络层和一个或多个时间-聚合神经网络层。可能标记的词汇表可以包括多个音素。该方法/系统还可以包括使用输出分数来确定由视频中描绘的特定人的双唇所表达的话语(音素);和/或使用输出分数来确定由视频中描绘的双唇所表达的词的序列。

在实施方式中,确定词的序列可以包括预测音素分布的序列(隐式地确定由双唇所表达的话语,即,音素),以及将音素分布的序列提供给解码器以产生词的序列。

该系统/方法的实施方式可以提供视觉语音识别的显著提高的准确性,并且易于适应不同的应用而无需重新训练。进一步的优点将在后面描述。该方法/系统的输出可以包括定义词的序列的数据,例如,文本数据,和/或词可以被例如使用文本转语音系统转换成可听语音以提供语音数据。

在一些实施方式中,体积卷积神经网络层包括多个三维(卷积)过滤器,即,具有在两个空间维度和时间维度上操作的内核的过滤器。这可以帮助捕获嘴唇形成音素时存在的时空关系。在一些实施方式中,视觉语音识别神经网络包括至少五个体积卷积神经网络层。

在一些实施方式中,时间-聚合神经网络层包括一个或多个循环神经网络层,具体来说是一个或多个长短期记忆神经网络层,更具体来说是双向长短期记忆神经网络层。这些可以与3d卷积层一起工作以在更长时间段内进行聚合。

在一些实施方式中,视觉语音识别神经网络包括例如在体积卷积神经网络层和/或时间-聚合神经网络层之间的交错的一个或多个组标准化层(groupnormalizationlayer)。这样的组标准化层可以在一组(过滤器)通道上进行标准化(normalization)。与例如批次标准化相比,这可以通过减少单元之间的通信促进在多个处理单元上分布计算,并且还可以帮助在训练期间提供更稳定的学习。

如前面所描述的,在一些实施方式中,使用输出分数来确定由视频中描绘的双唇所表达的话语或词的序列包括使用解码器处理输出分数以生成词的序列。解码器可以包括所谓的有限状态转换器(finitestatetransducer,fst)。在实施方式中,解码器可以执行包括移除重复音素和空格和/或将音素映射到词的操作,特别是使用例如具有退避(诸如katz退避)的n元语言模型。

在另一方面,提供了一种训练如上所述的视觉语音识别神经网络,即包括一个或多个体积卷积神经网络层和一个或多个时间-聚合神经网络层,的方法。该方法可以包括生成包括多个训练示例(trainingexample)的训练数据,每个训练示例包括:(i)包括多个训练视频帧的训练视频;以及(ii)来自可能音素的词汇表的音素的序列。生成可以包括,对于每个训练视频:获得包括多个原始视频帧和对应的音频数据的原始视频,使用音频数据从可能音素的词汇表中确定音素的序列,以及基于(即,使其表示)在相应原始视频帧中描绘的面部来确定每个训练视频帧。因此,该方法可以包括通过从视觉语音识别神经网络参数的初始值确定视觉语音识别神经网络参数的经训练的值来在生成的训练数据上训练视觉语音识别神经网络。

这种方法可以通过自动化的过程生成大量的训练数据,然后使用生成的训练数据来改善视觉语音识别神经网络的性能。例如,训练数据可以从诸如youtube视频之类的公共可获得的视频生成。

在实施方式中,使用音频数据从可能音素的词汇表确定音素的序列可以包括获得原始视频的转录,使用经训练的自动语音识别算法来确定转录与音频数据的对准,以及从对准的转录确定音素的序列。该方法还可以包括确定转录以特定的自然语言表达和/或确定原始视频的质量度量超过最小阈值。

训练方法可以采用如下所述的视频处理步骤;这些步骤中的一些或全部也可以应用于通过前述用于视觉语音识别的方法/系统接收的视频。

因此,在实施方式中,基于在相应原始视频帧中描绘的面部来确定训练视频帧可以包括:检测原始视频帧中的面部;确定面部上的多个界标(landmark);使用界标确定面部的规范(即,标准的(standardized))视图;并从面部的规范视图(canonicalview)裁剪出描绘双唇的区域。该方法还可以包括对面部上的多个界标的位置进行平滑,例如在时间和/或空间上进行过滤/求平均。这可以帮助实现良好的性能。

视频处理还可以包括:使用面部上的界标来确定面部的朝向在可能朝向的可接受范围内,和/或基于(即,取决于)例如原始视频帧之间嘴张开程度的度量的变化(variation)(即,离散性(dispersion))来确定嘴唇正在表达话语。

实施方式还可以包括例如通过使用音频数据嵌套神经网络处理音频数据来生成音频数据的嵌套,使用视频嵌套神经网络处理原始视频来生成原始视频的嵌套,并确定在音频数据的嵌套与原始视频的嵌套之间的相似度度量超过阈值,来确定原始视频与对应的音频数据是对准的。视频嵌套神经网络可以包括一个或多个体积卷积神经网络层。

在实施方式中,在生成的训练数据上训练视觉语音识别神经网络可以包括,对于多个训练示例中的每个训练示例:根据视觉语音识别神经网络参数的当前值,使用视觉语音识别神经网络来处理训练示例中包括的训练视频,以针对输出序列中的每个输出位置为可能音素的词汇表中的每个音素生成相应的输出分数;基于输出分数和训练示例中包括的来自可能音素的词汇表的音素的序列来确定连接主义时间分类(connectionisttemporalclassification,ctc)损失函数的梯度;并使用该梯度来调整视觉语音识别神经网络参数的当前值。ctc损失函数可以基于音素分布的序列来测量音素的序列的可能性(likelihood),而不要求音素的序列与音素分布的序列的对准。

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

与一些专业的唇读器和一些常规的系统相比,本说明书中描述的系统可以更准确地执行视觉语音识别(vsr)。例如,当在视频帧的集合上执行vsr时,本说明书中描述的系统可以实现40.9%的词错误率。相比之下,专业的唇读器在相同数据集上的词错误率可以达到92.9%,而一些常规vsr系统在相同的视频帧集合上的词错误率可以达到75%以上。

本说明书中描述的系统通过使用vsr神经网络来预测音素、然后使用词解码来预测与音素对应的词来解耦音素预测与词解码。相比之下,一些常规系统使用vsr神经网络直接预测字符或词(即,无需中间词解码步骤)。解耦音素预测与词解码使本说明书中描述的系统能够实现多个优点。

例如,解耦音素预测与词解码使得可以由系统预测的词的词汇表能够被任意扩展(即,缩放)或缩减,而无需重新训练vsr神经网络。这可以例如通过改变解码器使用的词汇表或语言模型来实现。

作为另一个示例,解耦音素预测与词解码可以减小vsr神经网络必须建模的不确定性,从而使得能够更有效地训练vsr神经网络,例如,以较少的训练迭代来实现更高的预测准确性。更具体而言,vsr中的不确定性可以源自两个主要来源:与嘴唇运动对应的声音中的不确定性(例如,由于与不同声音对应的相似嘴唇运动),以及与这些声音对应的词中的不确定性(例如,由于与不同词对应的相同声音)。与声音对应的词中的不确定性可以用词“fair”和“fare”来说明:这两个是以相同方式发音的不同的词。通过解耦音素预测与词解码,vsr神经网络仅需对与嘴唇运动对应的声音中的不确定性进行建模,而与声音对应的词中的不确定性则由分离的词解码过程进行建模。

本说明书中描述的系统可以被用于辅助例如在外科手术或受伤之后能够移动嘴唇但是难以清晰地对词发音的人。在一个示例中,该系统可以被用于处理描绘具有言语障碍的人的嘴唇的视频帧,以生成与该人的嘴唇运动对应的词的序列。此后,可以通过另一个自动化系统对词的序列进行言语表达。以这种方式,本说明书中描述的系统可以被用于使具有言语障碍的人能够进行交流或者更加清晰地进行交流。该系统也可以被瘫痪但仍然能够移动嘴唇的人使用以使他们能够说话。

本说明书中描述的系统还可以由用户设备(例如,移动电话、计算机或数字助理)使用,以使用户能够通过不出声地说出指定要由该用户设备执行的操作的命令来与该设备交互。如果用户处于安静环境(例如,图书馆)中,那么用户可能希望通过不出声地说出命令来与设备进行交互。

将认识到的是,还有许多其它应用,例如,适用于失聪者和嘈杂的环境。

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

附图说明

图1示出了示例视觉语音识别系统。

图2是视觉语音识别神经网络和解码引擎的示例体系架构的图示。

图3示出了视觉语音识别神经网络的示例体系架构中神经网络层的过滤器尺寸、步幅以及输入和输出维数的示例。

图4示出了用于训练视觉语音识别神经网络的数据流的示例。

图5示出了使用具有示例体系架构的视觉语音识别神经网络处理唇帧的一些示例序列的结果。

图6是用于执行视觉语音识别的示例过程的流程图。

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

具体实施方式

图1示出了示例视觉语音识别系统100。视觉语音识别系统100是被实现为在一个或多个位置的一个或多个计算机上的计算机程序的系统的示例,在其中实现以下描述的系统、组件和技术。

视觉语音识别系统100被配置为处理描绘人的嘴唇的多个“原始”(raw)视频帧102的序列,以生成定义该人正在说出的词的序列104的数据。系统100可以被理解为通过基于原始视频帧102中人的嘴唇的运动来识别人正在说出的词来执行唇读。

除了描绘人的嘴唇之外,每个原始视频帧102可以附加地描绘场景中的其它内容,例如,人的整个面部、人的身体的一些或全部,人所在的环境(例如,房间)以及一个或多个其他人。

原始视频帧102可以以任何适当的格式表示。例如,每个原始视频帧102可以由一个或多个“通道”的相应集合表示,其中每个通道由数值(例如,浮点值)的二维阵列表示。在一个示例中,原始视频帧102可以是黑白视频帧,并且每个原始视频帧102可以由相应的灰度强度通道表示。在另一个示例中,原始视频帧102可以是彩色视频帧,并且每个原始视频帧102可以由红色、绿色和蓝色(即,rgb)颜色通道的相应集合表示。

系统100可以包括:(i)视频处理引擎106,(ii)视觉语音识别神经网络108(在本说明书中被称为“vsr网络”),以及(iii)解码引擎110。

视频处理引擎106可以被配置为处理原始视频帧102,以生成从规范(即,标准)的视角描绘人的嘴唇的“嘴唇”视频帧112的对应序列。

为了从原始视频帧102生成嘴唇视频帧112,视频处理引擎106确定人的面部在原始视频帧102中的位置。例如,视频处理引擎106可以通过使用面部检测神经网络处理原始视频帧102以生成定义包围原始视频帧102中的人的面部的界定框的数据来确定面部的位置。

在确定面部在原始视频帧102中的位置之后,视频处理引擎106确定面部界标在面部上的位置。面部界标可以包括例如以下中的一个或多个,例如,眼睛和嘴中的每一个的最左点和最右点、眼睛和嘴中的每一个的最上点和最底点、以及鼻尖。视频处理引擎106可以例如通过使用界标检测模型(例如,神经网络)处理原始视频帧102中的描绘面部的部分来确定面部界标的位置,以生成定义面部界标的位置的数据。

可选地,视频处理引擎106可以例如使用时间高斯核(temporalgaussiankernel),基于其它原始视频帧中的对应面部界标的位置,来平滑每个原始视频帧中的面部界标的位置。

在确定面部界标的位置之后,视频处理引擎106可以确定“对准”变换的参数值,该“对准”变换在应用于原始视频帧时使得原始视频帧中的面部被从规范视角描绘。更具体而言,视频处理引擎106可以确定对准变换,当该对准变换被应用于原始视频帧时,该对准变换将原始视频帧中的面部界标的位置与参考面部界标位置的集合近似(或精确地)对准。对准变换可以是例如仿射变换或弹性变换。视频处理引擎106可以使用任何适当的优化过程,例如梯度下降优化过程,来确定对准变换的参数值。

视频处理引擎106可以通过将对准变换应用于原始视频帧、然后裁剪至少描绘人的嘴唇的原始视频帧的部分来生成与原始视频帧102对应的嘴唇视频帧112。视频处理引擎106可以例如基于与嘴唇对应的面部界标的位置来识别人的嘴唇在原始视频帧中的位置。除了描绘人的嘴唇之外,嘴唇视频帧112还可以描绘例如人的面部的嘴唇周围的部分或人的整个面部。

vsr网络108被配置为处理嘴唇视频帧112的序列以生成“音素分布”的序列114。音素分布的序列114包括与每个嘴唇视频帧112对应的相应音素分布。每个音素分布为可能音素的词汇表中的每个音素定义相应的分数。例如,每个音素分布可以包括与可能音素的词汇表中的每个音素对应的相应分数。

由与嘴唇视频帧112对应的音素分布定义的给定音素的分数表征嘴唇视频帧112捕获发出给定音素的人的可能性。例如,该分数可以是概率值(即,介于0和1之间的数值),该概率值定义嘴唇视频帧112捕获发出给定音素的人的概率。

可能音素的词汇表包括预定数量(例如,40)的可能音素。可能音素可以包括与沉默(例如,在语音停顿中)对应的“空白”符号。

参考图2和图3更详细地描述vsr网络108的示例体系架构。

解码引擎110被配置为处理音素分布的序列114,以生成定义与嘴唇视频帧112中描绘的嘴唇的运动对应的词的序列104的数据。解码引擎110可以使用多种解码技术中的任何一种来从音素分布的序列114生成词的序列104。参考图2更详细地描述示例解码引擎110。

图2是vsr网络和解码引擎(例如,参考图1描述的vsr网络108和解码引擎110)的示例体系架构的图示200。

图2所示的vsr网络具有用于从嘴唇视频帧112提取时空特征的三维(3d)卷积模块202和用于随时间聚合时空特征以生成音素分布的序列114的时间模块(temporalmodule)204。时空特征是指整合来自嘴唇视频帧内的“空间信息”和来自跨嘴唇视频帧的“时间”信息的特征。

3d卷积模块202具有五个体积卷积神经网络层(“时空卷积层”)的序列,每个体积卷积神经网络层生成相应的时空特征。体积卷积层是指具有三维(3d)卷积过滤器的卷积层。3d卷积过滤器使体积卷积神经网络层的神经元具有在嘴唇视频帧内和嘴唇视频帧之间两者延伸的感受野。因此,3d卷积过滤器使体积卷积神经网络层能够生成时空特征,这些时空特征既可以表征视频帧内的嘴唇形状,又可以表征视频帧之间的嘴唇运动。体积卷积神经网络层的感受野可以比音素的典型持续时间长,例如大约是其两倍。

除了体积卷积神经网络层之外,3d卷积模块202在每个体积卷积层之后还包括相应的池化层和组标准化层(groupnormalizationlayer)。组标准化层将其输入划分为通道的组,并计算这些组内的标准化统计信息(即,不是像批次标准化中那样沿着批次维度)。标准化统计信息可以包括均值μ和/或标准偏差σ或方差σ2;标准化可以包括计算

vsr网络向时间模块204提供3d卷积模块202的输出,该输出包括与每个嘴唇视频帧112对应的相应的时空特征向量。时间模块204具有三个双向长短期记忆(lstm)神经网络层的序列和多层感知器(mlp)。

第一双向lstm层处理由3d卷积模块202输出的时空特征向量的序列,以生成与每个视频帧112对应的相应的聚合特征向量。第二和第三双向lstm层分别处理由第一和第二双向lstm层生成的聚合特征向量的序列。

mlp包括两个全连接层和一个soft-max层,该soft-max层被配置为处理由第三双向lstm层生成的聚合特征向量,以生成定义音素分布的序列114的输出。音素分布的序列包括与每个嘴唇视频帧112对应的相应音素分布。

除了双向lstm层和mlp之外,时间模块204还在双向lstm层和mlp中的每一个之后包括相应的组标准化层。

解码引擎110处理音素分布的序列114以生成与嘴唇视频帧112中的嘴唇的运动对应的词的序列104。在图2所示的示例中,解码引擎110包括折叠引擎(collapseengine)206(有时被称为折叠有限状态转换器)、词典引擎208(有时被称为词典有限状态转换器)和语言模型引擎210(有时被称为语言模型有限状态转换器)。

折叠引擎206被配置为处理音素的序列以移除重复的音素和空白符号。

词典引擎208被配置为将由折叠引擎206生成的经处理的音素的序列映射到对应的词的序列(例如,使用从音素到词的预定映射)。

语言模型引擎210被配置为处理由词典引擎208生成的词的序列,以确定词的序列表示给定自然语言(例如,英语)的有效短语的可能性。在一个示例中,语言模型引擎210可以用卡茨退避(katzbackoff)来实现n元语言模型。

解码引擎110使用折叠引擎206、词典引擎208和语言模型引擎210来对与嘴唇视频帧112中嘴唇的运动对应的可能的词的序列执行搜索(例如,束搜索(beamsearch))。解码引擎110可以通过针对多个可能的词的序列中的每一个确定词的序列与视频帧112中嘴唇的运动对应的可能性来执行搜索。每个词的序列的可能性可以基于以下(例如,其乘积)来确定:(i)根据音素分布的序列114,音素的序列与词的序列对应的可能性,以及(ii)根据语言模型引擎210,词的序列的可能性。

可以由解码引擎110执行的操作的示例参考例如m.mohri、f.pereira和m.riley:“weightedfinite-statetransducersinspeechrecognition”,computerspeech&language,16(1),第69-88页(2002)或y.miao、m.gowayyed和f.metze:“eesen:end-to-endspeechrecognitionusingdeeprnnmodelsandwfst-baseddecoding”,workshoponautomaticspeechrecognitionandunderstanding,第167-174页,ieee,2015更详细地描述。

作为通过使用所描述的系统执行视觉语音识别可以实现的性能增益的示例之一,参考图2描述的vsr网络和解码引擎对于视频帧的特定测试集可以实现33.6±0.6的音素错误率、28.3±0.9的字符错误率和40.9±1.2的词错误率。相比之下,专业的读唇器对于相同的视频帧集合达到92.9±0.9的词错误率。

图3示出了以下的示例:(i)与图2所示的示例vsr网络的体积卷积层(“conv1”至“conv5”)和池化层(“pool1”至“pool5”)对应的过滤器尺寸和步幅,以及(ii)图2所示的示例vsr网络的体积卷积层、池化层、双向lstm层(“bilstm6”至“bilstm8”)和全连接层(“fc9”至“fc10”)的输出通道和输入的维度。

图4示出了用于训练参考图1描述的vsr网络108的数据流400的示例。在由多个训练示例(trainingexample)402组成的训练数据集上训练vsr网络108。每个训练示例402包括:(i)描绘人的嘴唇的嘴唇视频帧404的序列(即,包括多个训练帧的训练视频),以及(ii)来自可能音素的词汇表的音素406的序列,其与嘴唇视频帧404中描绘的嘴唇的运动对应。一些或全部相同的视频处理步骤可以被用于预处理原始视频,以供与经训练的模型一起使用(省略虚线组件,其主要用途是产生配对的训练数据)。

为了生成训练示例402,获得原始视频408和对应的语音片段410(音频数据)的集合,例如,从视频共享网站上可用的视频中提取。

片段长度过滤器412识别并移除持续时间在预定范围(例如,1秒-12秒)之外的视频。

英语语言过滤器414识别并移除未用英语表达语音的视频。为了识别视频中表达的语音的语言,过滤器414可以使用语言分类器来处理语音的转录(例如,使用自动语音识别技术生成的语音的转录)。为了训练vsr网络108以在除英语以外的给定语言中执行视觉语音识别,过滤器414可以识别并移除具有未以该给定语言表达的语音的视频。

镜头边界检测过滤器416例如使用阈值颜色直方图分类器来识别并移除包括镜头过渡的视频。视频中的镜头过渡是指视频的视角突然改变的帧(例如,当视频从描绘一个人的面部跳到描绘另一个人的面部时)。

面部检测器/跟踪器418检测并跟踪在未被片段长度过滤器412、英语语言过滤器414或镜头边界检测过滤器416(例如,使用facenet神经网络)过滤掉的每个剩余视频中描绘的面部。

剪辑质量过滤器420识别并移除不满足一个或多个质量标准的视频(即,原始视频的质量度量低于最小阈值的视频)。例如,剪辑质量过滤器420可以识别并移除模糊或晃动的视频、其中所描绘的面部的眼睛到眼睛宽度小于预定像素数量的视频(即,面部太小的视频),或帧速率小于预定最小帧速率的视频。

面部界标平滑引擎422处理每个视频以识别在视频的每个视频帧中描绘的面部中的多个面部界标,并使用时间高斯核(例如,如参考图1所描述的)来平滑所得的面部界标位置。

可以根据面部界标来确定每个视频中的面部朝向(例如,偏航和俯仰)的变化,并且可以识别并移除其中面部朝向的变化超过可接受范围(例如,±30°)的视频。

视图规范化引擎424处理每个视频的每个视频帧,以使用面部界标确定视频帧中描绘的面部的规范(即,标准)视图。例如,视图规范化引擎424可以向每个视频帧应用相应的仿射变换,该仿射变换将视频帧中的面部界标的位置与参考面部界标位置的集合大致(或精确地)对准(例如,如参考图1所描述的)。在确定每个视频帧中所描绘的面部的规范视图之后(例如,通过将仿射变换应用于视频帧),视图规范化引擎424从视频帧中裁剪出描绘嘴唇的区域(即,生成嘴唇视频帧)。

讲话过滤器426识别并移除视频中所描绘的面部没有讲话的视频。为了识别视频中描绘的面部是否在讲话,讲话过滤器426计算视频的每个视频帧中的嘴张开程度的度量,并且通过面部周围的界定框的尺寸来标准化嘴张开程度的度量。然后,讲话过滤器确定嘴张开程度度量的离散性的度量(例如,标准偏差),并且仅当离散性的度量满足预定阈值时才将面部识别为正在讲话。讲话过滤器426可以将视频帧中嘴张开程度的度量确定为将指示嘴的最高点和最低点的面部界标分开的像素数量。

讲话分类器引擎428识别并移除语音片段410未与视频帧对准(即,同步)的视频。为了识别语音片段与视频帧未对准的视频,讲话分类器引擎428可以生成视频帧的嵌套和对应语音片段的嵌套。讲话分类器引擎428可以通过使用视频嵌套神经网络(例如,可以包括一个或多个体积卷积层)处理视频帧来生成视频帧的嵌套。讲话分类器引擎428可以通过使用音频嵌套神经网络处理语音片段的对数梅尔声谱图表示来生成语音片段的嵌套。在生成视频嵌套和音频嵌套之后,仅当相应嵌套之间的相似性(similarity)度量满足预定阈值时,讲话分类器引擎428才可以将视频帧识别为与语音片段对准。相似性度量可以是例如欧几里得相似性度量或余弦相似性度量。

当且仅当视频与语音片段同步时,才可以联合训练由讲话分类器引擎428使用的视频嵌套神经网络和音频嵌套神经网络以生成视频与语音片段的相似(即,根据相似性度量)嵌套。

视频或音频片段的“嵌套”(embedding)是指表示视频或音频片段的数值(numericalvalue)的有序集合(例如,数值的向量或矩阵)。

可以以多种方式中的任何一种来确定与嘴唇帧404的序列对应的音素406的序列。在一个示例中,自动语音识别处理可以被用于确定与嘴唇帧404对应的语音片段410的近似转录。由自动语音识别过程生成的近似转录可以被用于将(例如,由人生成的)语音片段的实际转录与视频和对应语音片段(音频数据)对准。此后,可以将实际转录映射到音素406的序列(例如,根据从词到音素的预定映射),该因素406的序列具有与实际转录相同的与视频的对准。

训练引擎430可以使用训练示例402来训练vsr网络108,即,从vsr网络108的模型参数432的初始值确定vsr网络108的模型参数432的经训练的值。

训练引擎430通过多次训练迭代来训练vsr网络108。在每次训练迭代,训练引擎430对多个训练示例的当前“批次”(即,集合)进行采样。

对于当前批次中的每个训练示例,训练引擎430使用vsr网络108来处理包括在训练示例中的嘴唇帧的序列,以生成对应的音素分布的序列。训练引擎430然后确定目标函数436的梯度434,并且使用梯度434来调整模型参数432的当前值。目标函数436取决于:(i)由vsr网络108针对训练示例中的嘴唇帧的序列生成的音素分布的序列,以及(ii)训练示例中包括的音素的序列。

训练引擎430可以使用例如反向传播技术来确定目标函数436的梯度。训练引擎430可以使用各种梯度下降优化过程(例如,rmsprop或adam优化过程)中的任何一种的更新规则来使用梯度434更新模型参数432的当前值。

目标函数436可以是例如连接主义时间分类(ctc)目标函数(例如,graves等人的“connectionisttemporalclassification:labellingunsegmentedsequencedatawithrecurrentneuralnetworks”,icml2006:369376)。ctc目标函数根据由vsr网络108针对训练示例生成的音素分布的序列来测量训练示例中包括的音素序列的可能性,而不需要音素的序列与音素分布的序列的对准。

目标函数436还可以是例如神经转换器损失目标函数(例如,如a.graves:“sequencetransductionwithrecurrentneuralnetworks”,arxiv:1211.3711v1(2012)的第2.5节中所描述的)。

训练引擎430可以继续训练vsr网络108,直到满足训练终止标准为止,例如,直到已经执行了预定数量的训练迭代,或者直到vsr网络108的准确性达到预定阈值。

图5图示了使用具有参考图2描述的体系架构的vsr网络处理嘴唇帧的示例序列500的结果。502图示了嘴唇帧500被显著图(saliencymap)覆盖,其中,具有较浅颜色的像素被确定为,与具有不那么浅的颜色的像素相比,对于由vsr网络生成的预测来说更加重要。对于每个嘴唇帧,“top-1”504、“top-2”506和“top-3”508指示按照与嘴唇帧对应的音素分布与最高分数相关联的三个音素,而“熵”510指示与嘴唇帧对应的音素分布的熵(其中,熵的量值由对应条的长度图示)。

图6是用于执行视觉语音识别的示例过程600的流程图。为了方便起见,将过程600描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当编程的视觉语音识别系统(例如,图1的视觉语音识别系统100)可以执行过程600。

该系统接收具有多个视频帧的视频,其中每个视频帧描绘人的双唇(602)。系统可以通过对视频帧应用对准变换来处理每个视频帧,该对准变换使视频帧中的嘴唇和面部被从规范(即,标准)视角进行描绘,然后从视频帧裁剪围绕嘴唇的区域。

该系统使用vsr网络处理视频,以针对输出序列中的每个输出位置为可能标记的词汇表中的每个标记生成相应的输出分数(604)。输出序列中的每个位置与相应的视频帧对应。在输出位置处的可能标记的词汇表中的每个标记的输出分数可以被称为“标记分布”。标记可以是例如音素(如前所述)、字符、词片(wordpiece)或全词。在输出序列中的给定输出位置处的给定标记的分数表征与给定输出位置对应的视频帧捕获发出给定标记的人的可能性。vsr网络包括一个或多个体积卷积神经网络层(即,各自具有3d卷积过滤器的层)和一个或多个“时间-聚合”神经网络层(例如,循环层)。在一些实施方式中,vsr网络包括至少五个体积卷积层。

该系统使用由vsr网络生成的分数(即,标记分布)来确定由视频中描绘的双唇说出的词的序列(606)。例如,系统可以使用解码器(例如,参考图2描述的解码引擎)来处理由vsr网络生成的标记分布。

实现如本文所述的系统的设备,例如移动电话,可以要求在使用之前进行生物特征认证以解锁设备。在一些实施方式中,例如,当vsr网络在服务器上运行时,系统可以对接收到的视频应用基于面部的认证,以进行进一步的访问控制。

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

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

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

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

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

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

适于执行计算机程序的计算机可以基于通用或专用微处理器或两者,或者任何其它种类的中央处理单元。一般而言,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行或运行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可以由专用逻辑电路补充或结合在其中。一般而言,计算机还将包括一个或多个用于存储数据的大容量存储设备(例如,磁盘、磁光盘或光盘),或者被可操作地耦合到一个或多个大容量存储设备以从其接收数据或向其传送数据或两者兼有。但是,计算机不需要具有这样的设备。而且,计算机可以嵌入到另一个设备中,例如,移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏机、全球定位系统(gps)接收器或便携式存储设备(例如通用串行总线(usb)闪存驱动器),仅举几个示例。

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

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

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

可以使用机器学习框架(例如,tensorflow框架、微软认知工具包(microsoftcognitivetoolkit)框架、apachesinga框架或apachemxnet框架)来实现和部署机器学习模型。

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

计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系是通过在各自的计算机上运行并且彼此之间具有客户端-服务器关系的计算机程序产生的。在一些实施例中,服务器例如向用户设备传输数据,例如,html页面,例如以用于向与充当客户端的设备交互的用户显示数据并从该用户接收用户输入。可以在服务器处从设备接收在用户设备处生成的数据,例如,用户交互的结果。

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

类似地,尽管操作以特定次序在附图中描绘并在权利要求中记载,但这不应当被理解为要求以所示的特定次序或以顺序的次序执行这些操作,或者要求执行所有所示的操作以获得期望的结果。在某些情况下,多任务处理和并行处理可能是有利的。而且,上述实施例中各种系统模块和组件的分离不应当被理解为在所有实施例中都要求这种分离,并且应当理解的是,所描述的程序组件和系统一般可以一起集成在单个软件产品中或者封装到多个软件产品中。

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

起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。

此文章来源于网络,如有侵权,请联系删除

tips