具体实施方式
图1示出了适合在其中实现本发明的计算系统环境100的一个示例。计算系统环境100仅为合适的计算环境的一个示例,并非建议对本发明的使用或功能的范围的局限。也不应将计算环境100解释为对示例性操作环境100中示出的任一组件或其组合具有依赖或需求。
本发明可以使用众多其它通用或专用计算系统环境或配置来操作。适合使用本发明的众所周知的计算系统、环境和/或配置包括但不限于:个人计算机、服务器计算机、手持式或膝上设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子设备、网络PC、小型机、大型机、包括任一上述系统或设备的分布式计算环境等等。
本发明可在计算机可执行指令的一般上下文环境中描述,计算机可执行指令如程序模块,由计算机执行。一般而言,程序模块包括例程、程序、对象、组件、数据结构等等,执行特定的任务或实现特定的抽象数据类型。设计本发明在分布式计算环境中实践,其中,任务由通过通信网络连接远程处理设备来执行。在分布式计算环境中,程序模块可以位于本地和远程计算机存储媒质中,包括存储器存储设备。
参考图1,用于实现本发明的示例性系统包括以计算机110形式的通用计算装置。计算机110的组件可包括但不限于,处理单元120、系统存储器130以及将各类系统组件包括系统存储器耦合至处理单元120的系统总线121。系统总线121可以是若干种总线结构类型的任一种,包括存储器总线或存储器控制器、外围总线以及使用各类总线结构的本地总线。作为示例而非局限,这类结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强ISA(EISA)总线、视频电子标准协会(VESA)本地总线以及外围部件互连(PCI)总线,也称为Mezzanine总线。
计算机110通常包括各种计算机可读媒质。计算机可读媒质可以是可由计算机110访问的任一可用媒质,包括易失和非易失媒质、可移动和不可移动媒质。作为示例而非局限,计算机可读媒质包括计算机存储媒质和通信媒质。计算机存储媒质包括以用于储存信息的任一方法或技术实现的易失和非易失,可移动和不可移动媒质,信息如计算机可读指令、数据结构、程序模块或其它数据。计算机存储媒质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息并可由计算机110访问的任一其它媒质。通信媒质通常在诸如载波或其它传输机制的已调制数据信号中包含计算机可读指令、数据结构、程序模块或其它数据,并包括任一信息传送媒质。术语“已调制数据信号”指以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非局限,通信媒质包括有线媒质,如有线网络或直接连线连接,以及无线媒质,如声学、RF、红外和其它无线媒质。上述任一的组合也应当包括在计算机可读媒质的范围之内。
系统存储器130包括以易失和/或非易失存储器形式的计算机存储媒质,如只读存储器(ROM)131和随机存取存储器(RAM)132。基本输入/输出系统133(BIOS)包括如在启动时帮助在计算机110内的元件之间传输信息的基本例程,通常储存在ROM 131中。RAM 132通常包含处理单元120立即可访问或者当前正在操作的数据和/或程序模块。作为示例而非局限,图1示出了操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机110也可包括其它可移动/不可移动、易失/非易失计算机存储媒质。仅作示例,图1示出了对不可移动、非易失磁媒质进行读写的硬盘驱动器141、对可移动、非易失磁盘152进行读写的磁盘驱动器151以及对可移动、非易失光盘156,如CD ROM或其它光媒质进行读写的光盘驱动器155。可以在示例性操作环境中使用的其它可移动/不可移动、易失/非易失计算机存储媒质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字视频带、固态RAM、固态ROM等等。硬盘驱动器141通常通过不可移动存储器接口,如接口140连接到系统总线121,磁盘驱动器151和光盘驱动器155通常通过可移动存储器接口,如接口150连接到系统总线121。
图1讨论并示出的驱动器及其关联的计算机存储媒质为计算机110提供了计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图1中,示出硬盘驱动器141储存操作系统144、应用程序145、其它程序模块146和程序数据147。注意,这些组件可以与操作系统134、应用程序135、其它程序模块136和程序数据137相同,也可以与它们不同。这里对操作系统144、应用程序145、其它程序模块146和程序数据147给予不同的标号来说明至少它们是不同的副本。
用户可以通过输入设备,如键盘162、麦克风163和指向设备161,如鼠标、轨迹球或触摸板向计算机110输入命令和信息。其它输入设备(未示出)可包括操纵杆、游戏垫、圆盘式卫星天线、扫描仪等等。这些和其它输入设备通常通过耦合至系统总线的用户输入接口160连接至处理单元120,但是也可以通过其它接口和总线结构连接,如并行端口、游戏端口或通用串行总线(USB)。监视器191或其它类型的显示设备也通过接口,如视频接口190连接至系统总线121。除监视器之外,计算机也包括其它外围输出设备,如扬声器197和打印机196,通过输出外围接口195连接。
计算机110可以在使用到一个或多个远程计算机,如远程计算机180的逻辑连接的网络化环境中操作。远程计算机180可以是个人计算机、手持式设备、服务器、路由器、网络PC、对等设备或其它公用网络节点,并通常包括许多或所有上述与计算机110相关的元件,图1描述的逻辑连接包括局域网(LAN)171和广域网(WAN)172,但也可包括其它网络。这类网络环境常见于办公室、企业范围计算机网络、内联网以及因特网。
当在LAN网络环境中使用时,计算机110通过网络接口或适配器170连接至LAN 171。当在WAN网络环境中使用时,计算机110通常包括调制解调器172或其它装置,用于通过WAN 173,如因特网建立通信。调制解调器172可以是内置或外置的,通过用户输入接口160或其它合适的机制连接至系统总线121。在网络化环境中,描述的与计算机110相关的程序模块或其部分可储存在远程存储器存储设备中。作为示例而非局限,图1示出了远程应用程序185驻留在远程计算机180上。可以理解,示出的网络连接是示例性的,也可以使用在计算机之间建立通信的其它装置。
图2是移动装置200的框图,它是一个示例性计算环境。移动装置200包括微处理器202、存储器204、输入/输出(I/O)组件206和用于与远程计算机或其它移动装置通信的通信接口208。在一个实施例中,上述组件被耦合在一起用于通过合适的总线210彼此进行通信。
存储器204被实现为非易失电存储器,如具有电池后备模块(未示出)的随机存取存储器(RAM),使当移动装置200的总电源被切断时信息仍储存在存储器204中。存储器204的一部分被较佳地分配为用于程序执行的可寻址存储器,而存储器204的另一部分被较佳地用于存储,如模拟盘驱动器上的存储。
存储器204包括操作系统212、应用程序214以及对象存储216。在操作过程中,操作系统212较佳地由处理器202从存储器204中执行。在一个较佳实施例中,操作系统212是WINDOWSCE商标操作系统,可从微软公司购买。操作系统212较佳地被设计成用于移动装置,并实现可由应用214通过一组开放的应用编程接口和方法使用的数据库特征。对象存储216中的对象至少部分地响应于对开放的应用编程接口和方法的调用,由应用214和操作系统212维护。
通信接口208表示允许移动装置200发送和接收信息的众多装置和技术。仅举几个例子,该装置包括有线和无线调制解调器、卫星接收器和广播调谐器。移动装置200也可以直接连接到计算机来与其交换数据。在这一情况下,通信接口208可以是红外收发器或串行或并行通信连接,所有这些都能够发送流信息。
输入/输出组件206包括各种输入设备,如触敏屏幕、按钮、滚轮和麦克风,以及各种输出设备,包括音频发生器、振动装置和显示屏。以上列出的设备作为示例,不需要都在移动装置200上存在。另外,在本发明的范围内,其它输入/输出设备可以附加到移动装置200或在其上找到。
在本发明的一个方面,提供了减少模式识别信号中的噪声的系统和方法,通过假定含噪声的语音与干净和噪声的总和之差的误差项中的零变量来实现。过去未完成这一技术,因为人们认为它无法较好地将实际行为模型化,且当噪声远大于干净语音时,变量的零值令干净语音的计算变得不稳定。可以从以下公式中看到:
x=ln(ey-en) 公式2其中,x是干净语音特征矢量,y是含噪声的语音特征矢量,n是噪声特征矢量。当n远大于x时,n和y几乎相等。当出现这一情况时,x变得对n中的变化敏感。另外,必须在n上加以约束来防止对数中的项变负。
为克服这些问题,本发明使用信噪比r,在特征矢量的对数域中被表示为:
r=x-n 公式3
注意,公式3提供了映射随机变量r的一种定义。形成映射随机变量的不同定义的对x和n之间的关系的修改在本发明的范围之内。
使用这一定义,可以重写上文的公式2来按照特征向量提供x和n的定义为:
x=y-ln(er+1)+r 公式4
n=y-ln(er+1) 公式5
注意,在公式4和5中,x和n都是随机变量,并且不固定。由此,本发明对余量假定零值,而不对噪声n或干净语音x的可能值加以限制。
使用x和n的这些定义,可以将联合概率分布函数定义为:
p(y,r,x,n,s)=p(y|x,n)p(r|x,n)p(x,s)p(n) 公式6
其中,s是语音状态,如音素;给定干净语音特征矢量x和噪声特征矢量n,p(y|x,n)是描述含噪声的语音的特征矢量y的概率的观测概率;给定干净语音特征矢量和噪声特征矢量,p(r|x,n)是描述信噪比特征矢量r的信噪概率;p(x,s)是干净语音特征矢量和语音状态的联合概率;p(n)是噪声特征矢量的先验概率。
观测概率和信噪比概率都是x和n的确定性函数。结果,条件概率可以由迪拉克增量函数表示:
p(y|x,n)=δ(ln(ex+en)-y) 公式7
p(r|x,n)=δ(x-n-r) 公式8
其中
对所有ε>0 公式9
δ(x)=0,对所有x≠0 公式10这允许通过x和n将联合概率密度函数边缘化来如下生成联合概率p(y,r,s):
p(y,r,s)=∫dx∫dnp(y,r,x,n,s) 公式11
p(y,r,s)=∫dx∫dnδ(ln(ex+en)-y)δ(x-n-r)p(x,s)p(n) 公式12
公式13
公式14
其中,p(x,s)被分离成表示为高斯型的具有平均值μs x的概率p(x|s)以及语音状态的方差σs x和先验概率p(s),并且概率p(n)被表示为具有平均值μn和方差σn的高斯型。
为简化应用到高斯分布的非线性函数,本发明的一个实施例对非线性函数的一部分使用一阶泰勒级数近似,使得:
公式15
其中
公式16
公式17
其中,rs 0是泰勒级数展开的展开点,f(rs 0)是使对信噪比展开点矢量rs 0中的每一元素执行该函数的矢量函数,F(rs 0)是在对信噪比展开点矢量的每一矢量元素的括号内执行该函数并将这些值沿矩阵的对角线放置的矩阵函数。为下文的简化性,f(rs 0)被表示为fs 0,F(rs 0)被表示为Fs 0。
然后可以用公式15的泰勒级数近似代入公式14中的ln(er+1),生成:
公式18
使用标准高斯操作公式,可以以因式分解的形式替换公式18:
p(y,r,s)=p(r|y,s)p(y|s)p(s) 公式19
其中
公式20
公式21
公式22
并且
p(y|s)=N(as;bs,Cs) 公式23
公式24
公式25
公式26
在本发明的一个方面,使用公式20-26来对干净语音和/或信噪比确定估计值。在图3的流程图中示出了作出这些确定的步骤,以下参考图4的框图来描述。
在图3的步骤300,从干净训练语音和训练文本中训练干净语音模型的平均值μs x和方差σs x以及每一语音状态s的先验概率p(s)。注意,对每一语音状态s训练不同的平均值和方差。在训练之后,在降噪参数存储单元416中储存干净语音模型参数。
在步骤302,从输入话语提取特征。为完成这一过程,图4的麦克风将来自说话者400和一个或多个附加噪声源402的音频波转化成电信号。然后由模-数转化器406对该电信号进行采样,来生成一列数字值,由帧构造器408将其分组成值的帧。在一个实施例中,A-D转化器406以16KHz和每样值16比特对模拟信号进行采样,由此创建每秒32千字节的语音数据,帧构造器408每10毫秒创建一个包括25毫秒数据的新帧。
帧构造器408提供的每一帧数据由特征提取器410转化成特征矢量。标识这类特征矢量的方法在本领域中是众所周知的,并包括39维梅尔频率倒谱系数(MFCC)提取。在一个具体实施例中,使用c0替换大多数MFCC提取系统中使用的对数能量特征,并使用功率谱密度来替代谱幅度。
在步骤304,图3的方法使用噪声估计单元412对输入信号的每一帧估计噪声。在本发明中可以使用任一已知的噪声估计技术。例如,可以使用“Proc.ASRU2001”,意大利,2001年12月中T.Kristjansson等人的“一般化EM框架中信号和信道失真的联合估计(Joint estimation of noise and channel distortion in ageneralized EM framework)”中描述的技术。
跨越整个话语或话语的基本部分的噪声的估计由噪声模型训练器414使用,它构造包括估计噪声的平均值μn和方差σn的噪声模型。该噪声模型储存在降噪参数存储416中。
在步骤306,降噪单元418使用干净语音模型的平均值和噪声模型的平均值来确定公式21和22的泰勒级数展开的初始展开点rs 0。具体而言,设置每一语音单元的初始展开点等于语音单元的干净语音平均值和噪声平均值之差。
一旦初始化了泰勒级数展开点,在步骤308,降噪单元418使用公式21和22中的泰勒级数展开来对每一语音单元计算信噪比的平均值
在步骤310,将信噪比平均值与该平均值的前一值(如果有的话)比较来确定平均值是否收敛到稳定值。如果它们未收敛(或这是第一次迭代),过程在步骤312继续,将泰勒级数展开点设为信噪比的各自的平均值。过程然后返回到步骤308来使用公式21和22重新确定信噪比的平均值。重复步骤308、310和312直到信噪比的平均值收敛。
一旦信噪比平均值稳定,过程继续到步骤314,使用泰勒级数展开来确定干净语音的估计和/或信噪比的估计。干净语音的估计如下计算:
公式27
其中
公式28
公式29
并且其中,使用上述公式23-26来计算p(y|s),并从干净语音模型中获取p(s)。
信噪比的估计值如下计算:
公式30
由此,图3的过程能够对输入信号的每一帧生成信噪比的估计值420和/或干净语音特征矢量的估计值422。
信噪比和干净语音特征矢量的估计值可以用于任何期望的目的。在一个实施例中,直接在图5所示的语音识别系统中使用干净语音特征矢量的估计值。
如果输入信号是训练信号,则向训练器500提供干净语音特征矢量的估计值422,训练器500使用干净语音特征矢量的估计值和训练文本502来训练声学模型504。训练这类模型的技术在本领域中是众所周知的,不需要描述它们来理解本发明。
如果输入信号是测试信号,则向解码器506提供干净语音特征矢量的估计值,解码器506基于特征矢量流、词典508、语言模型510和声学模型504来标识最可能的单词序列。用于解码的具体方法对本发明不重要,可以使用若干种已知的用于解码的方法。
向可信度测量模块512提供最可能的假设单词序列。可信度测量模块512部分地基于第二声学模型(未示出)标识哪些单词最可能被语音识别器不正确地标识。可信度测量模块512然后向输出模块514提供假设单词序列和指示哪些单词被不正确地标识的标识符。本领域的技术人员可以认识到,可信度测量模块512对实践本发明而言不是必需的。
尽管图4和5描述了语音系统,本发明可以在任一模式识别系统中使用,不限于语音。
尽管参考具体的实施例描述了本发明,本领域的技术人员将认识到,在不脱离本发明的精神和范围的情况下可以在形式和细节上作出变化。