用于多声道语音识别的自适应音频增强的制作方法

文档序号:20571353发布日期:2020-04-29 00:49阅读:178来源:国知局
用于多声道语音识别的自适应音频增强的制作方法

本申请是下列申请的分案申请:申请号为201680079040.7,申请日为2016年12月28日,发明名称为“用于多声道语音识别的自适应音频增强”。

本申请涉及处理多声道音频波形。



背景技术:

可以使用各种技术来识别语音。一些技术使用接收从音频数据导出的声学特征的声学模型。



技术实现要素:

在一些实施方式中,语音识别系统可以执行自适应音频增强技术以例如通过改善其鲁棒性和/或精度来改进多声道语音识别。例如,自适应波束成形可以使用神经网络来执行。可以将多个声道的音频(例如来自不同麦克风的音频信息)提供给神经网络模块,所述神经网络模块自适应地改变用于执行音频增强(例如,空间滤波或波束成形)的滤波器。在一些实施方式中,系统可以使用神经网络为每个输入帧动态地估计一组滤波器。例如,原始波形多声道信号可以传递到滤波器预测(fp)长短期记忆(lstm)模块,以便为每个声道生成时域滤波器。然后将这些滤波器与各个声道的音频数据进行卷积并相加在一起形成单声道增强语音,所述单声道增强语音被提供给用于执行语音识别的声学模型。

尽管在某些情况下(例如,当用户靠近麦克风时)某些自动语音识别(asr)系统可能合理执行,但此类asr系统的性能可能会在用户与麦克风之间距离较远的远场条件下(例如,当说话者向电视机或恒温器提供命令时)降级。在这类条件下,语音信号由于混响和附加噪声而受到降级。这些系统通常使用多个麦克风来提高识别精度、增强语音信号、并降低混响和噪音造成的影响。

一些多声道asr系统利用两个单独的模块来执行识别。首先,通常通过波束成形来应用麦克风阵列语音增强。增强的信号然后传递到声学模型。技术通常包括延迟求和波束成形,其涉及从不同麦克风接收信号以调整从目标说话者到每个麦克风的延迟。然后对时间对准的信号求和以增强来自目标方向的信号并减弱来自其他方向的噪声。其他形式的信号增强包括最小方差无失真响应(mvdr)和多声道维纳滤波(mwf)。

将增强视为与声学建模不相交的方法可能不会导致提高asr性能的最佳解决方案。另外,许多增强技术涉及需要针对声学模型和/或音频增强模型的迭代参数优化的基于模型的方法。例如,这些方法通常首先估计波束成形参数,并且然后估计声学模型参数。这些迭代方法不容易与不使用迭代训练的其他类型的模型相结合。例如,基于神经网络的声学模型通常使用梯度学习算法进行优化,而不是与高斯混合模型(gmm)和其他模型一起使用的迭代训练技术。

通过共同学习空间滤波器和声学模型参数可以增强语音识别系统。一种用于执行音频增强的技术使用多声道“时间卷积”滤波器,这些滤波器中的每一个独立地对输入的每个声道进行滤波,并且然后在类似于滤波求和波束成形的过程中对输出进行求和。其他技术可以学习多个空间滤波器以适应到达不同空间方向的目标信号,但计算复杂度大幅增大。尽管这两种方法都比传统的延迟求和和滤波求和技术有所改进,但是一个缺点是在训练期间确定的所估计空间滤波器和频谱滤波器被固定用于解码。也就是说,在用于语音识别时,滤波器不会改变或适应。因此,对于固定滤波器的方法,固定滤波器可能不适用于用户相对于麦克风的实际位置。

因此,本申请中描述的主题的创新方面涉及一种自动语音识别系统,所述自动语音识别系统可以在接收到语音数据时调整用于音频增强的滤波器。例如,当检测到语音时,语音识别系统可以动态地改变用于执行空间滤波的滤波器的参数。在一些实施方式中,滤波器被适配用于每个输入语音帧。而且,可以使用关于多个音频声道的信息来确定每个滤波器。而不是基于单个音频声道独立地确定被确定的每个滤波器,可以使用来自所有音频声道的输入来确定每个音频声道的滤波器。

语音识别系统可以使用一个或多个神经网络来执行自适应音频增强。例如,语音识别系统可以包括两个神经网络,一个自适应地生成空间滤波器,另一个用作声学模型。第一神经网络基于与话语相对应的多个音频数据声道来生成滤波器参数。滤波器参数指定多个滤波器的特性,例如,每个音频数据声道对应一个滤波器。每个声道的滤波器参数都提供给不同的滤波器。然后,将每个滤波器应用于其相应的音频数据声道,并将每个声道的结果相加在一起。将求和的滤波器输出提供给先前已经训练以识别话语的声学音素的第二神经网络。系统然后可以使用经识别的音素来生成话语的竞争转录(transcription)。

根据本申请中描述的主题的创新方面,一种用于多声道语音识别的自适应音频增强的方法包括以下动作:接收与话语相对应的音频数据的第一声道以及与所述话语相对应的音频数据的第二声道;使用经训练循环(recurrent)神经网络,(i)基于所述音频数据的第一声道和所述音频数据的第二声道而生成第一滤波器的第一组滤波器参数,并且(ii)基于所述音频数据的第一声道和所述音频数据的第二声道而生成第二滤波器的第二组滤波器参数;通过组合(i)已经使用所述第一滤波器滤波的所述第一声道的音频数据和(ii)已经使用所述第二滤波器滤波的所述第二声道的音频数据来生成单个组合音频数据声道;将所述单个组合声道的所述音频数据输入到被训练为声学模型的神经网络;以及为所述话语提供至少基于所述神经网络响应于接收到组合卷积输出而提供的输出而确定的转录。

这种实施方式和其他实施方式可以包括以下可选特征中的一个或多个。所述循环神经网络包括一个或多个长短期记忆层。所述循环神经网络包括:第一长短期记忆层,接收第一音频声道和第二音频声道两者;以及与所述第一声道相对应的第二长短期记忆层和与所述第二声道相对应的第三长短期记忆层,所述第二长短期记忆层和所述第三长短期记忆层各自接收所述第一长短期记忆层的输出并且提供所述相应声道的一组滤波器参数。所述长短期记忆层具有在训练过程期间已经学习的参数,所述训练过程共同训练所述长短期记忆层和被训练为声学模型的神经网络。所述动作进一步包括:为音频数据的每个输入帧改变或生成新的滤波器参数。所述动作进一步包括:对于所述话语的音频帧序列中的每个音频帧,生成一组新的滤波器参数并将所述帧的音频数据与具有所述新的一组滤波器参数的滤波器进行卷积。所述第一滤波器和所述第二滤波器是有限脉冲响应滤波器。所述第一滤波器和所述第二滤波器具有不同的参数。

不同的麦克风输出与不同的滤波器进行卷积。所述音频数据的第一声道和所述音频数据的第二声道是所述话语的第一音频波形数据声道和第二音频波形数据声道。所述第一音频波形声道和所述第二音频波形声道是由彼此间隔开的不同麦克风对所述话语的记录。被训练为声学模型的所述神经网络包括卷积层、一个或多个长短期记忆层、以及多个隐藏层。被训练为声学模型的所述神经网络的所述卷积层被配置用于执行时域卷积。被训练为声学模型的所述神经网络被配置为使得所述卷积层的输出被池化以生成一组池化值。被训练为声学模型的所述神经网络被配置用于将所述池化值输入到被训练为声学模型的所述神经网络内的一个或多个长短期记忆层。所述第一滤波器和所述第二滤波器被配置用于执行空间滤波和频谱滤波两者。所述动作进一步包括:将所述第一声道的所述音频数据与具有所述第一组滤波器参数的第一滤波器进行卷积以生成第一卷积输出;将所述第二声道的所述音频数据与具有所述第二组滤波器参数的第二滤波器进行卷积以生成第二卷积输出;以及将所述第一卷积输出与所述第二卷积输出组合。

本方面的其他实施例包括相应的系统、设备、以及记录在计算机存储装置上的计算机程序,每个计算机程序被配置用于执行所述方法的操作。

在一些实施方式中,可以实施本文所描述的技术以实现以下优点中的一个或多个。例如,语音识别系统可以动态地改变用于音频增强的滤波器参数,这可以导致语音识别中更强的鲁棒性和精度。如本文所讨论的,改进的音频增强可以向声学模型提供更清晰的语音数据,从而允许改进的语音识别精度。语音识别系统可以生成与用户的实际位置相对应的、与固定的预定滤波器相比更精确地滤波器。另外,例如,当用户在说话时在房间周围走动时,滤波器的适配可以适应用户相对于麦克风的位置的变化。在一些实施方式中,当与试图适应从多个不同的预定空间方向到达的信号的模型相比时,使用下面的神经网络系统降低了音频增强的计算复杂度。通过下面讨论的其他技术也可以获得改进的语音识别精度,这些技术包括使用声学模型共同训练滤波器预测模型,使用来自声学模型的反馈来训练滤波器预测模型。在一些实施方式中,使用多任务学习策略来设置多个训练目标,诸如准确预测声学模型状态和干净的音频特征两者。使用多任务学习可以提高识别噪声音频的精度,并且还可以改进滤波器预测和正则化训练。

根据本发明的一个方面,提供一种计算机实现的方法,包括:接收与话语相对应的音频数据的第一声道和与该话语相对应的音频数据的第二声道;使用第一神经网络生成(i)用于第一滤波器的第一组滤波器参数和(ii)用于第二滤波器的第二组滤波器参数;通过组合(i)已经使用第一滤波器滤波的第一声道的音频数据和(ii)已经使用第二滤波器滤波的第二声道的音频数据来生成音频数据的单个组合声道;将单个组合声道的音频数据输入到作为语音识别模型训练的第二神经网络;和提供针对所述话语的转录,所述转录是至少基于第二神经网络响应于接收到单个组合声道的音频数据而提供的输出来确定的。

根据本发明的一个方面,提供一种系统,包括:一个或多个计算机和一个或多个存储指令的存储设备,当这些指令由所述一个或多个计算机执行时,这些指令可操作以使所述一个或多个计算机执行以下操作:接收与话语相对应的音频数据的第一声道和与所述话语相对应的音频数据的第二声道;使用第一神经网络生成(i)用于第一滤波器的第一组滤波器参数和(ii)用于第二滤波器的第二组滤波器参数;通过组合(i)已经使用第一滤波器滤波的第一声道的音频数据和(ii)已经使用第二滤波器滤波的第二声道的音频数据来生成音频数据的单个组合声道;将单个组合声道的音频数据输入到作为语音识别模型训练的第二神经网络;和提供对所述话语的转录,所述转录是至少基于第二神经网络响应于接收到单个组合声道的音频数据而提供的输出来确定的。

根据本发明的一个方面,提供一种非暂时性计算机可读介质,其存储软件,该软件包括可由一个或多个计算机执行的指令,该指令在执行时使所述一个或多个计算机执行以下操作:接收与话语相对应的音频数据的第一声道和与所述话语相对应的音频数据的第二声道;使用第一神经网络生成(i)用于第一滤波器的第一组滤波器参数和(ii)用于第二滤波器的第二组滤波器参数;通过组合(i)已经使用第一滤波器滤波的第一声道的音频数据和(ii)已经使用第二滤波器滤波的第二声道的音频数据来生成音频数据的单个组合声道;将单个组合声道的音频数据输入到作为语音识别模型训练的第二神经网络;和提供对所述话语的转录,所述转录是至少基于第二神经网络响应于接收到单个组合声道的音频数据而提供的输出来确定的。

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

附图说明

图1展示了用于自适应音频增强的示例架构。

图2展示了示例波束成形器响应。

图3展示了使用神经网络进行语音识别的系统的示例。

图4展示了用于多声道语音识别的自适应音频增强的示例过程。

图5展示了计算装置和移动计算装置的示例。

在附图中,相同的附图标记始终表示相应的部分。

具体实施方式

使用神经网络的联合多声道增强和声学建模可以被用来执行语音识别。在一些以前的方法中,在训练期间学习的滤波器被固定用于解码,这潜在地影响这些模型适应先前看不见或变化的条件的能力。本申请中描述的主题描述了用于解决这种问题的神经网络自适应波束成形(nab)技术。代替在训练阶段期间学习特定滤波器,可以训练神经网络模型以在语音识别期间接收到音频数据时动态地生成滤波器参数。这允许系统执行不限于预定数量的固定信号到达方向的更准确的波束成形。

在一些实施方式中,语音识别系统使用长短期记忆(longshort-termmemory,lstm)层来预测每个输入帧处的时域波束成形滤波器系数。滤波器与成帧的时域输入信号进行卷积并且跨声道来求和,实质上使用动态适应的滤波器来执行有限脉冲响应(fir)滤波与求和波束成形。波束成形器的输出被传递到与滤波器预测lstm层一起训练的卷积的长短期记忆深度神经网络(cldnn)声学模型。在一个示例中,具有所提出的nab模型的语音识别系统相对于单声道模型实现了12.7%的误字率(worderrorrate,wer)的相对改善,并且达到与利用若干固定空间滤波器的“因子化(factored)”模型架构类似的性能,并且计算成本降低17.9%。

尽管近年来自动语音识别(asr)的性能显著提高,特别是随着深度学习的出现,但在现实嘈杂场景和远场场景下的性能仍然远远落后于干净的语音条件。为了提高鲁棒性,麦克风阵列通常用于增强语音信号并消除不必要的噪声和混响。

语音识别系统可以使用多声道信号处理技术,其是延迟求和(delay-and-sum,ds)波束成形,其中来自不同麦克风的信号在时间上被对齐以调整从目标说话者到每个麦克风的传播延迟,并且然后被混合到单声道。这具有增强来自目标方向的信号并衰减来自其他方向的噪声的效果。然而,准确估计混响环境中到达的时间延迟可能是困难的,并且ds波束成形不考虑空间相关噪声的影响。有可能使用更一般的滤波与求和(filter-and-sum,fs)技术来提高性能,其中,在求和之前将线性滤波器应用于每个声道。这种滤波器通常被选择用于优化与声学模型(am)的训练目标不同的信号电平目标,比如snr。

增强阶段和am阶段的联合训练提高了高斯混合模型和神经网络声学模型两者的性能。例如,在一些实施方式中,语音识别系统可以使用单层多声道“时间卷积”fir滤波器来训练神经网络以直接对多声道波形进行操作,所述滤波器中的每一个独立地对输入的每个声道进行滤波,并且然后在类似于fs波束成形的过程中对输出进行求和。在训练之后,这个多声道滤波器组中的滤波器进行学习以共同执行空间滤波和频谱滤波,其中,典型的滤波器具有频率带通响应,但被操控以增强或减弱从不同方向到达的信号。在一些实施方式中,语音识别系统可以使用因子化的多声道波形模型,所述因子化的多声道波形模型将空间和频谱滤波行为分离成单独的层,并且提高性能,但是可能增加计算复杂度。尽管这两种架构都比传统的ds和fs信号处理技术有所改进,但一个缺点是所估计的空间和频谱滤波器在解码期间是固定的。

为了解决上述模型的有限适应性和降低计算复杂度,本申请中描述的主题包括神经网络自适应波束成形(nab)模型,所述nab模型使用神经网络在每个输入帧处重新估计一组空间滤波器系数。具体而言,原始多声道波形信号被传递到滤波器预测(fp)lstm,所述滤波器预测lstm的输出被用作空间滤波器系数。然后将用于每个声道的这些空间滤波器与相应的波形输入进行卷积,并将输出相加在一起以形成包含增强语音信号的单声道输出波形。所产生的单声道信号被传递到与fplstm层一起训练的原始波形声学模型。在一些实施方式中,与处理时域信号相反,可以在频域中执行滤波。本公开展示了在时域中执行nab需要估计更少的滤波器系数,并且与频域滤波器预测相比产生更好的wer。

另外,本申请中描述的主题包括对nab模型的其他改进。首先,本公开明确地描述了从先前的时间步长提供声学模型的上层激活(其捕获关于声学状态的高级信息)作为fp层的附加输入。进一步采用门控机制来减弱这些预测中的潜在错误。所述门控机制分析预测以及输入和模型状态,以输出在必要时缩小反馈向量的置信度分数。其次,本公开描述了结合多任务学习(mtl)策略来正则化训练并辅助滤波器预测。这通过训练nab模型来共同预测声学模型状态和干净特征来工作,这可以改善在噪声数据上训练的声学模型。

图1中描绘了神经网络自适应波束成形(nab)模型的示例,其包括滤波器预测(fp)块、滤波求和(fs)波束成形块、声学建模(am)块和多任务学习(mtl)块。示出了两个声道,但是可以使用更多数量的声道。在每个时间帧k处,系统从c声道输入中为每个声道c取m个波形样本的小窗口,表示为x1(k)[t],x2(k)[t],……,xc(k)[t],其中,t∈{1,……,m}。

自适应空间滤波可以如下执行。有限脉冲响应(fir)滤波求和波束成形器可以写为:

其中,hc[n]为与麦克风c相关联的滤波器的第n个抽头,xc[t]是在时刻t由麦克风c接收到的信号,τc是在由麦克风接收到的信号中为了所述信号与其他阵列声道对齐而引入的控制延迟(steeringdelay),并且y[t]是输出信号。n是滤波器的长度。

对方程1进行优化的增强算法可能需要对控制延迟τc的估计,所述估计可以从一个单独的位置模型获得。滤波器系数可以通过优化信号电平目标来获得。在nab模型中,系统通过直接最小化交叉熵或序列损失函数来联合am参数估计滤波器系数。而不是显式地估计每个麦克风的控制延迟,τc可以被隐式地吸收到所估计的滤波器系数中。在每个时间帧k处产生的自适应滤波由方程2给出,其中hc(k)[t]是时间帧k处的声道c的所估计滤波器。

为了估计hc(k)[t],系统训练fplstm以预测每个声道的n个滤波器系数。fp模块的输入是来自所有声道的原始输入样本xc(k)[t]的帧的串联,并且还可以包括用于定位的特征,比如互相关特征。

以下公开内容更详细地描述了fp模块架构。在方程2之后,对于每个声道,将所估计的滤波器系数hc(k)[t]与输入样本xc(k)[t]进行卷积。卷积的输出例如在fs块中跨声道进行求和以产生单声道信号y(k)[t]。

然后使用am块来执行声学建模。单声道增强信号y(k)[t]被传递给图1中所示的am模块。单声道波形被传递到“时间卷积”层,表示为tconv,所述时间卷积层充当包含多个滤波器的时域滤波器组。例如,可以使用128个滤波器。在输入帧的长度上通过最大池化(max-pooling)而对tconv输出在时间上抽取十分之一。在一些实施方式中,在时间上对频谱输出进行最大池化有助于丢弃短时间信息。最后,将修正器非线性度和稳定对数压缩应用于每个滤波器输出,以在帧k处产生帧级特征向量。

在一些实施方式中,所述系统不包括频率卷积层。由时间卷积层生成的特征向量直接传递给具有832个单元(cell)的三个lstm层和一个512维投影层,然后是完全连接的具有1024个隐藏单元的dnn层。在softmax层之前使用512维线性输出低等级投影层,以减少对所使用的13,522个依赖于上下文的状态输出目标进行分类所需的参数数量。处理完帧k之后,系统将整个输入信号的窗口移动10ms的跳并且重复此过程。

am模块和fp模块可以共同训练。在一些实施方式中,fs块没有可训练参数。所述模型被展开20个时间步长,以便使用截断的反向传播通过时间进行训练。输出状态标签被延迟5帧,因为使用关于未来帧的信息通常会改善当前帧的预测。

可以使用门控反馈来增强训练过程。来自声学模型的识别信息反映了语音的内容,并且被认为可以帮助早期的网络层。利用前一帧的预测来增强每帧的网络输入可以提高性能。为了研究nab模型中反馈的益处,帧k-1处的am预测可以在时间帧k(图1中最右边的竖直线)处传回fp模型。由于softmax预测的维数很高,因此系统会将softmax之前的低等级激活反馈给fp模块以限制模型参数的增加。

此反馈连接为fp模块提供关于信号的音素内容的高级信息,以辅助估计波束成形滤波器系数。例如,所述连接可以在信号中提供可能的依赖于上下文的状态信息,以在生成波束成形滤波器时使用。然而,这种反馈包括可能包含错误的模型预测(尤其是在训练初期),并且因此可能导致较差的模型训练。因此将门控机制引入所述连接以调节反馈的程度。与独立控制每个维度的传统lstm门不同,我们使用全局标量门(globalscalargate)来缓和反馈。时间帧k处的门gfb(k)是根据输入波形样本x(k)、第一fplstm层s(k-1)的状态、以及反馈向量v(k-1)来计算的,如下:

其中wx、ws和wv是相应的权重向量,σ是元素非线性度。所述系统使用输出范围[0,1]中的值的关于σ的逻辑函数,其中,0切断反馈连接,1直接穿过反馈。因此,有效的fp输入是[hx(k),gfb(k)v(k-1)]。

多任务学习可能会提高鲁棒性。所述系统在训练期间通过配置网络以具有两个输出而包括mtl模块,预测cd状态的一个识别输出和重建从底层干净信号导出的128个对数梅尔特征的第二个去噪输出。去噪输出仅用于训练以正则化模型参数;相关联的层在推断期间被丢弃。在nab模型中,mtl模块从am模块的第一lstm层中分支出来,如图1所示。mtl模块由两个完全连接的dnn层组成,然后是预测干净特征的线性输出层。在训练期间,从这两个输出反向传播的梯度分别通过用于识别和去噪输出的α和1-α来加权。

本公开描述了对包括300万英语话语的约2000小时的嘈杂训练数据进行的实验。这个数据集是通过使用房间模拟器人为地破坏干净的话语、增加了不同程度的噪音和混响而创建的。干净的话语是匿名且手工抄写的话音搜索查询,并且是互联网话音搜索业务的代表。包括从视频共享网站采样的音乐和环境噪声以及“日常生活”环境的录音的噪声信号,以范围从0db到20db(平均为约12db)的snr被添加到干净话语。使用具有从100个可能的房间配置中随机采样的房间尺寸和麦克风阵列位置的图像模型,以范围从400ms到900ms(平均为约600ms)的t60s来模拟混响。使用具有14cm的麦克风间距的8声道线性麦克风阵列的第一个声道和最后一个声道。噪音位置和目标说话者的位置两者因话语而异;声源与麦克风阵列之间的距离在1米至4米之间选择。对于每个噪声话语,语音方位角和噪声方位角分别从±45度和±90度的范围均匀采样。噪音位置和说话者位置的变化有助于提高系统的鲁棒性。

评估集合包括约30,000个话语(超过200小时)的单独集合。所述评估集合的创建与类似snr和混响设置下的训练集合类似。在一些实施方式中,评估集合中的房间配置、snr值、t60时间以及目标说话者位置和噪声位置与训练集合中的不同,但训练集合与测试集合之间的麦克风阵列的几何结构有时是相同的。

原始波形模型的输入特征使用35ms的输入窗口大小来计算,其中,帧之间的跳为10ms。除非另有说明,否则所有网络均使用异步随机梯度下降(asgd),利用128个tconv滤波器并利用交叉熵准则来进行训练。序列训练实验还可以使用分布式asgd,所述分布式asgd在[29]中有更详细的概述。所有网络都有13,522个cd输出目标。cnn层和dnn层的权重使用glorot-bengio策略进行初始化,而所有lstm参数被统一初始化以位于-0.02至0.02之间。我们使用指数衰减的学习速率,其从4e-3开始并且在150亿帧上具有0.1的衰减率。

在一个示例中,基线nab模型包括原始波形cldnnam和fp模块,而没有mtl和反馈。fp模块具有两个512单元的lstm层和一个线性输出层,以便每个输入声道生成5ms的滤波器系数(例如,16khz采样率下的81个抽头)。这给出了22.2%的误字率(wer),而单声道原始波形cldnn为23.5%。以下部分描述了使用此基线的变体来找到改进的fp设置的实验。

fp模块可以使用几种不同的架构(例如,图1)。每个fp模块具有第一个s“共享的”512单元lstm层,然后是p“分离的”声道相关的256单元lstm层的分离堆栈,以鼓励针对每个声道学习独立的滤波器预测模型。然后添加声道相关的线性输出层以生成滤波器系数。因此,基线具有s=2和p=0。

使用一个共享的lstm层和一个声道相关的lstm层可以获得改进的性能。在一些实施方式中,不管配置如何,进一步增加lstm层的总数可能不会提高性能。

互相关特征可以用于定位,并且可以用于预测频域波束成形滤波器。因此,这些互相关特征可以提供给fp块。为了比较,将从具有10ms移位的100ms帧中提取的未加权互相关特征作为输入传递至fp模块的双声道nab模型也被训练。在相同的基线结构(s=2,p=0)下,此模型的wer为22.3%,这与使用波形样本作为输入获得的22.2%类似。以互相关特征的形式提供更加明确的定位信息并不能提供帮助,这表明fp模块能够直接从波形样本中学习良好的空间滤波器。

相距14cm的两个麦克风之间的最大延迟可以小于0.5ms,这表明不小于0.5ms的滤波器应当足以使这两个声道对齐。本部分描述了利用基线fp模块(s=2和p=0)来改变预测滤波器的长度。使用1.5ms滤波器可以获得改进的性能。也可以看出,使滤波器尺寸太大会影响性能。

nab模型可以使用多任务学习以通过以下操作来提高鲁棒性:训练网络的一部分以重建128维干净对数梅尔特征作为cd状态预测的主要任务的次要目标。内插权重α=0.9用于平衡这两个目标。使用mtl,基线nab(s=2,p=0和5.0ms滤波器)将wer从22.2%降低至21.2%。为了进一步提高性能,添加了门控反馈连接,所述门控反馈连接导致另一个0.2%的绝对减少,以产生21.0%的最终wer。

具有改进配置的最终nab模型具有:a)s=1和p=1的fp结构;b)原始波形输入;c)输出滤波器大小为1.5毫秒;d)α=0.9的mtl目标插值权重;e)门控反馈连接。代替针对频谱滤波层(图1中的tconv)使用128个滤波器,所述系统使用了256个滤波器,因为它已经显示出进一步的改进。在最终配置下,nab模型实现了20.5%的wer,相比没有这些修改的22.2%的原始nab模型,具有7.7%的相对改善。其中,mtl和门控反馈一起给出最多的错误减少。图2展示了所预测的波束成形滤波器在目标语音方向和干扰噪声方向上的频率响应。换言之,图2展示了对于嘈杂(第一)语音频谱和干净(第二)语音频谱,在目标语音方向(第三)和干扰噪声方向(第四)上,所预测的波束成形器响应在不同频率(y轴)跨时间(x轴)的视觉展现。

在图2的示例中话语的snr是12db。在目标语音方向上的响应具有与在噪声方向上的响应相比更多的语音相关的变化。这可能指示所预测的滤波器正在处理语音信号。此外,在高语音能量区域的响应通常低于其他区域,这表明所预测的滤波器的自动增益控制效果。

由于自适应波束成形有时在频域中执行,因此可以考虑在时域和频域两者中使用nab模型。在频域nab设置中,存在为这两个声道预测复数fft(cfft)滤波器的lstm。给定257点的fft输入,这相当于为2个声道的实部和虚部预测4×257个频点。在针对每个声道预测复数滤波器之后,利用每个声道的输入的fft完成逐元素乘积,等同于在时域中方程2的卷积。其输出被赋予频域中的单声道cldnn,所述单声道cldnn既利用复数线性投影(clp)进行频谱分解,又进行声学建模。虽然使用cfft特征大大降低了计算复杂度,但在一些实施方式中,性能可能比原始波形模型更差。这可能是因为cfft需要预测更高维的滤波器。

nab模型的性能还可以与非因子化和因子化的原始波形模型相当,这些模型已被证明可以为单声道模型和其他信号处理技术(如ds和fs)提供优越的性能。与非因子化模型相比,如以上所讨论的,预测每个时间帧的滤波器以处理数据中的不同空间方向可以提高性能。虽然分解的模型可以通过枚举空间滤波层中的许多观察方向来潜在地处理不同的方向,但自适应模型可以以较少的计算复杂度实现类似的性能。

如上所述,用于多声道波形信号的nab架构可以与am训练联合实施自适应滤波与求和波束成形。与先前的系统不同,波束成形滤波器适配当前的输入信号,并且还通过门控反馈连接而考虑到am的先前预测。为了改进模型的推广,可以采用mtl来正则化所述训练。实验结果示出,结合显式fs结构是有益的,并且所提出的nab具有与因子化模型类似的性能,但具有较低的计算成本。

回到附图,图1展示了用于神经网络自适应波束成形(nab)的示例系统100。简而言之,并且如以下更详细描述的,系统100接收可以从不同的麦克风接收的多个声道的音频数据103和106。系统100通滤波波器预测级109、滤波与求和级112、声学模型级115、以及多任务学习级118来处理音频数据103和106,以识别音频数据103和106的音素。

在滤波器预测级109期间,系统100接收多个声道的音频数据103和106。尽管系统100示出了接收两个音频数据声道,但是系统100可以接收将与音频数据103和106类似地方式分别处理的附加音频声道。滤波器预测级109包括生成滤波与求和级112的滤波器参数的两个lstm层。第一lstm层121跨这两个声道的音频数据103和106共享。第一lstm层121用于波束成形并且受益于来自这两个声道的音频数据103和106的数据。来自一个声道的数据影响另一个声道的波束成形。具有lstm层124和127的第二lstm层是声道相关的。lstm层124和127生成调整后续滤波器的维度的参数。

在滤波与求和级112期间,系统100使用两个滤波器130和133,并且然后在加法器136中对来自这两个滤波器的输出进行求和。滤波器130从lstm层124接收音频数据103和滤波器参数。滤波器参数被应用于然后与音频数据103进行卷积的滤波器。类似地,滤波器133从lstm层127接收音频数据106和滤波器参数。滤波器参数被应用于然后与音频数据106进行卷积的滤波器。在一些实施方式中,滤波器130和133是有限脉冲响应滤波器。在一些实施方式中,滤波器130和133的长度是固定的,并且可以彼此相同或不同。在一些实施方式中,滤波器130和133的系数基于从lstm层130和133接收的参数。来自这两个滤波器130和133的输出在加法器136中相加在一起。加法器输出139被提供给声学模型层115。

在声学模型级115期间,系统100使用时间卷积层142、后处理层145、多个lstm层148、151和154、以及深度神经网络157。时间卷积层142接收加法器输出139,并通过去除高频来清洁并进一步滤波信号。在一些实施方式中,系统100仅执行时间卷积并且不执行频率卷积。时间卷积层142可以包括具有多个特征图的一个卷积层。例如,时间卷积层142可以包括256个特征图。与时间卷积层142相关联的池化策略可以包括非重叠的最大池化并且例如池化大小为3。

时间卷积层142的输出被提供给后处理器145。在一些实施方式中,后处理器145在输出信号的整个长度上对时间卷积层142的输出信号进行最大池化。后处理器145然后应用经修正的非线性度,随后是稳定的对数表达式以产生帧级特征向量。在修正期间,后处理器145用零值替代负值并保留正值。在一些实施方式中,后处理器145降低特征向量的维度。降低维度降低了对附加的后续lstm层的需求。

后处理器145的输出被传递到lstm层148、151和154,它们适于关于时间对信号进行建模。在一些实施方式中,可以使用三个lstm层来对信号进行建模。在一些实施方式中,每个lstm层可以包括832个单元和512个单元投影层以降低维度。在一些实施方式中,可以替代地使用多于三个的包括更少单元的lstm层。lstm层148、151和154的输出被提供给一个或多个深度神经网络(dnn)层157。

dnn157的输出160表示声学模型的输出。所述输出可以表示各种声学模型状态中的每一个的概率分数,例如音素或音素的隐马尔可夫模型(hmm)状态。当经训练的系统用于执行语音识别时,输出160指示哪些音素是最可能的,并且此信息用于转录与音频数据103和106相对应的话语。例如,可以将此信息提供给语言模型或其他模型以确定与可能的音素最佳对应的单词和短语。

包括在一个或多个dnn层157中的层可以是完全连接的,并且在一些实施方式中可以各自具有1024个隐藏单元。系统100的其他层可以与声学模型139一起训练。

在训练期间,可以将声学模型139展开20个时间步长,以便使用截断的反向传播通过时间(bptt)进行训练。在一些实施方式中,输出状态标签可以延迟一个或多个帧,因为关于未来帧的信息可以增强与当前帧相关联的预测精度。在训练期间,输出目标可以被设置为输出160并且用于反向传播。

系统100包括门控反馈机制163。通常,门控反馈仅在训练期间使用。门控反馈163将输出目标的高级语言信息提供给滤波器预测级109。利用所述语言信息,滤波器预测层109可以基于先前的音素来调整后续的滤波器参数。在一些实施方式中,门控反馈信号包括置信度值。如果置信度值未满足阈值,则门控反馈163不会影响后续的滤波器参数。如果置信度值满足阈值,则门控反馈163确实会影响后续的滤波器参数。例如,如果阈值是0.5,则在置信度值为一的情况下,滤波器预测级109将使用输出目标160来调整滤波器参数。如果置信度值为零,则滤波器预测级109将不使用输出目标160来调整滤波器参数。

所述系统包括多任务学习层118。多任务学习层118包括dnn层166和169。dnn层169输出干净特征172,所述干净特征是经去噪的输出并且在训练阶段期间由系统100用来生成干净的对数梅尔特征。如图1中所示,多任务学习层118从第一lstm层148接收数据。为了使多任务学习层118处理所接收的数据,来自第一lstm层148的数据包括低水平的噪声。

图3是展示了用于使用神经网络进行语音识别的示例系统300的框图。系统300包括客户端装置310、计算系统320和网络330。在示例中,计算系统320向神经网络323提供关于话语的信息和附加信息。计算系统320使用来自神经网络327的输出来识别话语的转录。

在系统300中,客户端装置310可以是例如台式计算机、膝上型计算机、平板计算机、可穿戴计算机、蜂窝电话、智能电话、音乐播放器、电子书阅读器、导航系统或任何其他适当的计算装置。由计算系统320执行的功能可以由单独的计算机系统执行或者可以跨多个计算机系统而分布。网络330可以是有线或无线的或这两者的组合,并且可以包括互联网。

在一些实施方式中,计算系统320接收一组音频波形样本321。这些样本321可以包括用于多个音频声道的样本,例如,来自在同一时间由不同麦克风检测到的音频的样本。计算系统320使用样本321来生成用于空间滤波的滤波器参数。然后将空间滤波的输出提供给声学模型,例如,神经网络327。计算系统320可以基于神经网络327的至少一个输出来确定话语的候选转录。

在所示示例中,客户端装置310的用户302说话,并且客户端装置310记录包括语音的音频。客户端装置310在检测到语音时记录多个声道的音频。客户端装置310通过网络330将多个声道的所记录的音频数据312发送到计算系统320。

计算系统320接收音频数据312并获得音频波形样本321。例如,计算系统320可以识别表示在特定时间段期间(例如,在音频信号312的25ms时段期间)的音频的一组音频波形样本321。这些音频波形样本可以类似于以上已经参照图1描述的那些样本。

计算系统320可以将音频波形样本321提供给用作滤波器预测模型的神经网络323。如结合图1所描述的,神经网络323可以对应于滤波器预测级109。如此,神经网络323可以是已经被训练以基于音频波形样本321生成滤波器参数的循环神经网络。

计算系统320可以将神经网络323的输出提供给滤波与求和模块325。如结合图1所描述的,滤波与求和模块325可以对应于滤波与求和级112。如此,滤波与求和模块325可以将具有从神经网络323接收的滤波器参数的滤波器应用于音频波形样本321并对输出进行求和。

在所示示例中,计算系统320将滤波与求和模块325的输出提供给神经网络327。神经网络327已经被训练以用作声学模型。例如,神经网络327指示当时频特征表示由滤波器模块325输出并且基于音频波形样本321时,时频特征表示与不同语音单元相对应的似然性。如结合图1所描述的,例如,神经网络327可以对应于滤波器预测级115。在一些实施方式中,神经网络327还可以包括最初处理来自滤波器模块325的输出的初始时间卷积层和后处理层。

神经网络327产生神经网络输出329,计算系统320使用所述神经网络输出329来识别音频信号312的转录330。神经网络输出329指示特定窗口中的语音与特定语音单元相对应的似然性。在一些实施方式中,所使用的语音单位(phoneticunit)是音子(phone)或音子的分量,也被称为音素(phoneme)。在本示例中,潜在的音子被称为s0…sm。这些音子可以是语音中的各种音子中的任何一种,诸如“ah”音子、“ae”音子、“zh”音子等。音子s0…sm可以包括可能在音频波形样本321中出现的所有可能的音子,或者少于可能出现的所有音子。每个音子可以分为三种声学状态。

给定包括在音频波形样本322中的数据,神经网络输出327可以提供声学状态的预测或概率。神经网络输出329可以为每个音子的每个状态提供一个值,所述值指示声学特征向量v1表示该特定音子的特定状态的概率。例如,给定在音频波形样本321处提供的一组输入x,对于第一个音子s0,神经网络输出329可以提供指示概率p(s0_1|x)的第一值,其表明窗口w1包括音子s0的第一声学状态的概率。给定在音频波形样本321处提供的一组输入x,对于第一个音子s1,神经网络输出329可以提供指示概率p(s0_2|x)的第二值,其表明窗口w1包括音子s0的第二声学状态的概率。可以为所有音子s0…sm的所有状态提供类似的输出。

计算系统320向神经网络327提供不同样本集321以接收不同窗口中的声学状态的预测或概率。计算系统320可以提供表示话语的不同时间窗口的一个接一个地输入序列。通过顺序地将每个音频数据帧输入到系统中,计算系统320获得对在话语期间可能已经出现的音素的估计。

计算系统320可以将神经网络输出329提供给例如近似隐马尔可夫模型(hmm)的加权有限状态变换器,所述加权有限状态变换器可以包括关于词典的信息,所述信息指示单词的语音单位、语法、以及指示可能的单词序列的语言模型。hmm的输出可以是可以从其导出转录330的词网格(wordlattice)。计算系统320然后通过网络330将转录330提供给客户端装置310。

可以如以上所讨论的来执行对神经网络323、327的训练。通过神经网络327的前向传播在神经网络的输出层产生输出。所述输出可以与指示正确或期望的输出的数据进行比较,所述正确或期望的输出指示接收到的时频特征表示与已知声学状态相对应。确定神经网络的实际输出与正确或期望的输出之间的误差度量。所述误差然后通过神经网络被反向传播以更新神经网络327内的权重。滤波器预测神经网络323可以与神经网络327一起训练。

对于针对一组训练数据中的多个不同话语的音频波形样本生成的时频特征表示数据,可以重复此训练过程。在训练期间,被选择用于训练的帧可以从大集合中随机选择,以使得来自相同话语的帧不被连续处理。

在一些实施方式中,可以在最初检测到或记录语音的装置上执行语音识别系统的处理。例如,在一些实施方式中,被描述为由计算装置320执行的处理可以在用户装置310上执行,而不通过网络发送音频数据。

图4展示了用于多声道语音识别的神经网络自适应波束成形的示例过程400。一般而言,过程400接收话语并使用神经网络识别与话语的单词相对应的可能音素。过程400将被描述为由包括一个或多个计算机的计算机系统来执行,例如,图1中所示的系统100或如图3中所示的系统300。

所述系统接收与话语相对应的音频数据的第一声道以及与所述话语相对应的音频数据的第二声道(410)。在一些实施方式中,所述系统通过不同的麦克风接收第一声道和第二声道。例如,所述系统可以具有在系统右侧的一个麦克风以及在系统右侧与第一个麦克风相距约五厘米的第二个麦克风。当用户说话时,这两个麦克风收到的用户语音的音频略有不同。在一些实施方式中,所述系统可以具有多于两个的麦克风,每个麦克风都在用户讲话时接收音频数据。

使用经训练的循环神经网络,所述系统(i)基于所述音频数据的多个声道而生成第一组滤波器参数,并且(ii)基于所述音频数据的多个声道而生成第二组滤波器参数(420)。在一些实施方式中,经训练的循环神经网络包括一个或多个lstm层。在一些实施方式中,一个lstm层从这些声道的每一个中接收音频数据。例如,第一lstm层从第一声道和第二声道接收数据。在一些实施方式中,声道特定的lstm层接收从每个声道接收数据的lstm层的输出。在这种情况下,第一个lstm分析来自这两个声道的数据以便进行波束成形。在一些实施方式中,声道特定的lstm层的输出是用于对应的音频声道的滤波器参数。在一些实施方式中,每个声道特定的lstm层生成不同的滤波器参数。在一些实施方式中,系统将音频数据分割成多个帧并且为每个帧生成新的且有时不同的滤波器参数。

所述系统将所述第一声道的所述音频数据与具有所述第一组滤波器参数的第一滤波器进行卷积以生成第一卷积输出(430)。所述系统将所述第二声道的所述音频数据与具有所述第二组滤波器参数的第二滤波器进行卷积以生成第二卷积输出(440)。在所述系统将音频数据分割成不同帧的一些实施方式中,系统将音频数据的每一帧与对应的参数进行卷积。在一些实施方式中,第一滤波器和第二滤波器是有限脉冲响应滤波器。在所述系统接收到多个音频声道的一些实施方式中,所述系统根据其各自的滤波器参数来对每个音频声道进行滤波。在一些实施方式中,第一滤波器和第二滤波器执行空间滤波和频谱滤波两者。

所述系统将所述第一卷积输出与所述第二卷积输出组合(450)。在一些实施方式中,所述系统添加第一卷积输出和第二卷积输出。在所述系统接收多个音频声道的一些实施方式中,所述系统添加来自多个滤波器的多个卷积输出。

所述系统将经组合的卷积输出输入到被训练为声学模型的神经网络(460)。在一些实施方式中,声学模型识别与话语相对应的音素。在一些实施方式中,被训练为声学模型的神经网络包括多个lstm层,例如,三个lstm层。在一些实施方式中,被训练为声学模型的神经网络包括卷积层和多个隐藏层。在一些实施方式中,卷积层执行时间卷积。在一些实施方式中,所述系统不执行频率卷积。在一些实施方式中,系统对卷积层的输出进行池化以生成一组池化值。在一些实施方式中,所述系统将所述一组池化值提供给被训练为声学模型的神经网络的lstm层。所述系统为所述话语提供转录,所述转录是至少基于所述神经网络响应于接收到组合的卷积输出而提供的输出来确定的(470)。

在一些实施方式中,所述系统将反馈机制从被训练为声学模型的神经网络的输出提供到循环神经网络。所述反馈机制允许所述系统使用先前音素的信息来影响滤波器参数。在一些实施方式中,在只有音素的置信度值满足阈值时反馈才被传递到循环神经网络的意义上,反馈被门控。

在一些实施方式中,所述系统包括所述系统在训练阶段使用的多任务学习级。多任务学习级接收来自被训练为声学模型的神经网络的lstm层(例如,第一lstm层)的数据。在一些实施方式中,多任务学习级包括多个深度神经网络层(例如,两个深度神经网络层),并且可以包括多个隐藏层。多任务学习级生成干净的特征以供在作为声学模型和循环神经网络训练的神经网络的训练阶段使用。

图5示出了可以用于实施这里描述的技术的计算装置500和移动计算装置550的示例。计算装置500旨在表示各种形式的数字计算机,诸如膝上计算机、台式计算机、工作站、个人数字助理、服务器、刀片式服务器、大型机、以及其他合适的计算机。移动计算装置550旨在表示各种形式的移动装置,诸如个人数字助理、蜂窝电话、智能电话以及其他类似的计算装置。这里所示的部件、它们的连接和关系以及它们的功能仅意在作为示例,并不意味着限制。

计算装置500包括处理器502、存储器504、存储装置506、连接到存储器504和多个高速扩展端口510的高速接口508、以及连接到低速扩展端口514和存储装置506的低速接口512。处理器502、存储器504、存储装置506、高速接口508、高速扩展端口510、以及低速接口512中的每一个使用各种总线互连,并且可以安装在共同的母板上或视情况而定以其他方式安装。处理器502可以处理用于在计算装置500内执行的指令,所述指令包括存储在存储器504中或存储装置506上以在外部输入/输出装置(比如耦合到高速接口508的显示器516)上显示gui的图形信息的指令。在其他实施方式中,可以适当地使用多个处理器和/或多个总线以及多个存储器和多种类型的存储器。而且,可以连接多个计算装置,其中,每个装置提供必要操作的一部分(例如,作为服务器组、一组刀片服务器或多处理器系统)。

存储器504在计算装置500内存储信息。在一些实施方式中,存储器504是一个或多个易失性存储器单元。在一些实施方式中,存储器504是一个或多个非易失性存储器单元。存储器504还可以是另一种形式的计算机可读介质,比如磁盘或光盘。

存储装置506能够为计算装置500提供大容量存储。在一些实施方式中,存储装置506可以是或包含计算机可读介质,诸如软盘装置、硬盘装置、光盘装置或磁带装置、闪存或其他类似的固态存储器装置、或者包括存储区域网络或其他配置中的装置的装置阵列。指令可以存储在信息载体中。这些指令在由一个或多个处理装置(例如,处理器502)运行时执行一种或多种方法,诸如上述那些方法。指令还可以由诸如计算机或机器可读介质(例如,存储器504、存储装置506或处理器502上的存储器)等一个或多个存储装置来存储。

高速接口508管理计算装置500的带宽密集型操作,而低速接口512管理较低带宽密集型操作。这种功能分配只是一个示例。在一些实施方式中,高速接口508耦合到存储器504、显示器516(例如,通过图形处理器或加速器)、并且耦合到可以接受各种扩展卡的高速扩展端口510。在本实施方式中,低速接口512耦合到存储装置506和低速扩展端口514。可以包括各种通信端口(例如,usb、蓝牙、以太网、无线以太网)的低速扩展端口514可以例如通过网络适配器耦合到一个或多个输入/输出装置,诸如键盘、定点装置、扫描仪、或诸如交换机或路由器之类的网络装置。

如图所示,计算装置500可以以多种不同的形式来实施。例如,所述计算设备可以被实施为标准服务器520,或者在一组这样的服务器中被多次实施。另外,所述计算设备可以在诸如膝上型计算机522等个人计算机中实施。所述计算设备还可以被实施为机架式服务器系统524的一部分。可替代地,来自计算装置500的部件可以与移动装置(比如移动计算装置550)中的其他部件组合。这些装置中的每一个可以包含计算装置500和移动计算装置550中的一个或多个,并且整个系统可以由彼此通信的多个计算装置组成。

除其他部件之外,移动计算装置550包括处理器552、存储器564、诸如显示器554等输入/输出装置、通信接口566、以及收发器568。移动计算装置550还可以设置有诸如微型驱动器或其他装置等存储装置以便提供附加存储。处理器552、存储器564、显示器554、通信接口566和收发器568中的每一个使用各种总线互连,并且这些部件中的几个可以安装在共同的母板上或视情况而定以其他方式安装。

处理器552可以执行移动计算装置550内的指令,包括存储在存储器564中的指令。处理器552可以被实施为包括分离的和多个模拟处理器和数字处理器的芯片的芯片组。处理器552可以例如提供移动计算装置550的其他部件的协调,诸如用户界面的控制、由移动计算装置550运行的应用、以及移动计算装置550进行的无线通信。

处理器552可以通过耦合到显示器554的控制接口558和显示器接口556与用户通信。显示器554可以是例如tft(薄膜晶体管液晶显示器)显示器或oled(有机发光二极管)显示器或其他适当的显示技术。显示器接口556可以包括用于驱动显示器554以向用户呈现图形和其他信息的适当电路系统。控制界面558可以接收来自用户的命令并对其进行转换以提交给出理器552。另外,外部接口562可以提供与处理器552的通信,以便实现移动计算装置550与其他装置的近区域通信。外部接口562可以例如在一些实施方式中提供有线通信,或者在其他实施方式中提供无线通信,并且还可以使用多个接口。

存储器564在移动计算装置550内存储信息。存储器564可以被实施为一个或多个计算机可读介质、一个或多个易失性存储器单元、或一个或多个非易失性存储器单元中的一者或多者。扩展存储器574还可以被提供并且通过扩展接口572连接到移动计算装置550,所述扩展接口可以包括例如simm(单列直插式存储器模块)卡接口。扩展存储器574可以为移动计算装置550提供额外的存储空间,或者还可以为移动计算装置550存储应用或其他信息。具体而言,扩展存储器574可以包括用于执行或补充上述过程的指令,并且还可以包括安全信息。因此,例如,扩展存储器574可以作为用于移动计算装置550的安全模块来提供,并且可以用允许安全使用移动计算装置550的指令来编程。另外,可以经由simm卡提供安全应用以及附加信息,比如以不可破解的方式在simm卡上放置识别信息。

如以下所讨论的,存储器可以包括例如闪存和/或nvram存储器(非易失性随机存取存储器)。在一些实施方式中,指令被存储在信息载体中。这些指令在由一个或多个处理装置(例如,处理器552)执行时执行一种或多种方法,诸如上述那些方法。指令还可以由诸如一个或多个计算机或机器可读介质(例如,存储器564、扩展存储器574或处理器552上的存储器)等一个或多个存储装置来存储。在一些实施方式中,可以例如通过收发器568或外部接口562在所传播的信号中接收指令。

移动计算装置550可以通过通信接口566进行无线通信,所述通信接口在必要时可以包括数字信号处理电路系统。通信接口566可以在各种模式或协议下提供通信,诸如gsm话音呼叫(全球移动通信系统)、sms(短消息服务)、ems(增强型消息服务)、或mms消息(多媒体消息服务)、cdma(码分多址)、tdma(时分多址)、pdc(个人数字蜂窝)、wcdma(宽带码分多址)、cdma2000或gprs(通用分组无线业务)等。这种通信可以例如通过使用射频的收发器568而发生。另外,短距离通信可以比如使用蓝牙、wi-fi或其他此类收发器而发生。另外,gps(全球定位系统)接收器模块570可以向移动计算装置550提供附加的导航相关和位置相关的无线数据,所述无线数据可以由在移动计算装置550上运行的应用在适当时使用。

移动计算装置550还可以使用音频编解码器560可听地通信,所述音频编解码器可以从用户接收口头信息并将其转换为可用的数字信息。同样地,音频编解码器560可以比如通过(例如在移动计算装置550的手持装置中的)扬声器为用户生成可听声音。这种声音可以包括来自语音电话呼叫的声音,可以包括所记录的声音(例如,话音消息、音乐文件等),并且还可以包括由在移动计算装置550上操作的应用生成的声音。

如图所示,移动计算装置550可以以多种不同的形式来实施。例如,所述移动计算设备可以被实现为蜂窝电话580。所述移动计算装置还可以被实施为智能电话582、个人数字助理或其他类似移动装置的一部分。

可以在数字电子电路系统、集成电路系统、专门设计的asic(专用集成电路)、计算机硬件、固件、软件和/或其组合中实现这里描述的系统和技术的各种实施方式。这些不同的实施方式可以包括在可编程系统上可执行和/或可翻译的一个或多个计算机程序中的实施方式,所述可编程系统包括至少一个可编程处理器,所述至少一个可编程处理器可以是专用或通用目的、被耦合用于从存储系统、至少一个输入装置和至少一个输出装置接收数据和指令并且向其传输数据和指令。

这些计算机程序(也被称为程序、软件、软件应用、或代码)包括用于可编程处理器的机器指令,并且可以通过高级程序语言和/或面对对象的编程语言和/或通过汇编/机器语言来实施。如在本文中所使用的,术语机器可读介质和计算机可读介质指的是用于将机器指令和/或数据提供给可编程处理器(包括将机器指令接收作为机器可读信号的机器可读介质)的任何计算机程序产品、设备和/或装置,例如,磁盘、光盘、存储器、可编程逻辑装置(pld)。术语机器可读信号指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。

为了提供与用户的交互,在此所描述的系统和技术可以在具有用于向用户显示信息的显示器装置(例如,crt(阴极射线管)或lcd(液晶显示器)监视器)以及通过其用户可以向计算机提供输入的键盘和定点装置(例如,鼠标或轨迹球)的计算机上实施。还可以使用其他种类的装置来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈(例如,视觉反馈、听觉反馈或触觉反馈);并且可以以任何形式(包括声音、语音或触觉输入)接收来自用户的输入。

在此所描述的系统和技术可以在计算系统中实施,所述计算系统包括后端部件(例如,作为数据服务器)或包括中间件部件(例如,应用服务器)、或包括前端部件(例如,具有图形用户接口或web浏览器的客户端计算机,用户可以通过其与在此所描述的系统和技术的实施方式交互)、或这种后端部件、中间部件、或前端部件的任何组合。系统的部件可以通过数字数据通信(例如,通信网络)的任何形式或介质来进行互连。通信网络的示例包括局域网(lan)、广域网(wan)和互联网。

计算系统可以包括客户端和服务器。客户端和服务器通常远离彼此并且通常通过通信网络交互。客户端与服务器的关系借助于在各自的计算机上运行并且彼此具有客户端-服务器关系的计算机程序产生。

尽管以上已经详细描述了一些实施方式,但其他的修改是可能的。例如,尽管客户端应用被描述为访问(多个)代理,但是在其他实现中,(多个)代理可以被由一个或多个处理器实施的其他应用(比如在一个或多个服务器上执行的应用)使用。此外,在附图中描绘的逻辑流程不需要所示出的特定顺序或相继顺序来实现所希望的结果。另外,可以从所描述的流程提供其他动作或者可以消除动作,并且可以将其他部件添加到所描述的系统或从所描述的系统移除。因此,其他实施方式在以下权利要求书的范围内。

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