具体实施方式
图1示出一个可实现本发明的合适的计算系统环境100的实例。计算系统环境100只是合适的计算系统环境的一个实例,而非试图对本发明的使用或功能范围作出限制。计算系统环境100也不应解释为对示例操作环境100所示的任一组件或其组合具有依赖和要求。
本发明可运行于许多其它基于一般或特殊目的计算系统环境或配置。适合本发明使用的著名计算系统环境和/或配置的例子包括,而非限制,个人电脑、服务器、手持式或膝上型装置、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子元件、网络PC、微型计算机、大型主机电脑、电话系统和包括所有上述系统和装置的分布计算环境等等。
本发明在由计算机执行的诸如程序模块等计算机可执行指令的一般上下文环境中被描述。通常,程序模块包括运行特定任务或实现特定抽象数据类型的例行程序、程序、对象、组件、数据结构等。本发明设计运行在分布计算环境中,由通过通信网络连接的远程处理装置来执行任务。在分布计算环境中,程序模块位于本地和远程的计算机存储介质中,包括记忆存储装置。
参照图1,实现本发明的示例系统包括计算机110形式的通用型计算装置。计算机110的组件可包括,而不局限于,处理单元120、系统内存130以及耦合各种系统组件,包括系统内存到处理单元120的系统总线121。系统总线121可以是几种总线结构的任一一种,包括内存总线或内存控制器、外围总线或使用任一一种总线结构的局域总线。作为例子,而非限制,这样的结构包括工业标准结构(ISA)总线、微通道结构(MCA)总线、增强型ISA(EISA)总线、符合视频电子标准协会标准(VESA)的局域总线以及也称为夹层(Mezzanine)总线的外围组件互联(PCI)总线。
典型地,计算机110包括各种计算机可读介质。计算机可读介质可以是能被计算机110访问的任何可用介质,它包括易失和非易失的介质、可移动和不可移动的介质。作为例子,而非限制,计算机可读介质可包含计算机存储介质和通信介质。计算机存储介质包括由任何方法或技术实现的易失和非易失的、可移动和非移动的介质,用于存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息。计算机存储介质包括,而不局限于,RAM、ROM、EEPROM、闪存或其它存储技术、CD-ROM、数字多功能光盘(DVD)或其它光盘存储器、磁盒、磁带、磁盘存储器或其它磁存储装置、或其它任何能用来保存想要信息的并且能被计算机110访问的介质。典型地,通信介质含有计算机可读指令、数据结构、程序模块或在诸如载波或其它传递机制的调制数据信号中的其它数据,包括任何信息发布介质。术语“调制数据信号”指自身拥有一个或多个特征集或以信号中的编码信息方式改变的信号。作为例子,而非限制,通信介质包括诸如有线网络或直线连接等有线介质和诸如音频、射频(RF)、红外线和其它无线介质等无线介质。上述的任何组合也应包括在计算机可读介质的范围中。
系统内存130包括易失和/或非易失存储器形式的计算机存储介质,如只读存储器(ROM)131和随机访问存储器(RAM)132。典型地,基本输入输出系统133(BIOS)存储在ROM131中,它包含用于在计算机110的单元间传递信息的基本例行程序,如在启动过程中。典型地,RAM132包含处理单元120随即可访问的和/或正被操作的数据和/或程序模块。作为例子,而非限制,图1示出了操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机110也可包括其它可卸/非不可卸的易失/非易失的计算机存储介质。作为例子,而非限制,图1示出了读写非移动非易失磁介质的硬盘驱动器141、读写移动非易失磁盘152的磁盘驱动器151、读写诸如CD-ROM或其它光介质等移动非易失光盘156的光盘驱动器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)173,但也可包括其它网络。这种网络环境在办公室、企业范围的计算机网络、内联网和互联网中都很普遍。
在局域网的网络环境中使用时,计算机110通过网络接口或适配器170连接到局域网171。在广域网的网络环境中使用时,计算机110典型地包括调制解调器172或其它用于在诸如互联网的广域网173上建立通信的方法。内置或外置的调制解调器172可通过用户输入接口160或其它合适的机制连接到系统总线121。在网络环境中,描述的涉及计算机110或其中的部分的程序模块,可存储在远程存储装置中。作为例子,而非限制,图1示出远程应用程序185驻留在远程计算机180上。可以理解的是所示的网络连接是示例,也可使用其它的方法在计算机间建立通信连接。
图2是一节人类语音的频谱图。图2中,横轴200显示频率,纵轴202显示频率分量的振幅。图2的图显示人类语音包含谐振或共振峰,如第一共振峰204,第二共振峰206,第三共振峰208和第四共振峰210。每个共振峰以其中心频率F和带宽B来描述。
本发明提供方法用于确认语音信号中共振峰频率和带宽。图3提供这些方法的一般流程图。
在图3的步骤300,通过量化可能的共振峰频率和带宽形成一组量化的值,然后对量化值的不同组合形成条目,来构造共振峰码本。因此,形成的码本包含条目,它们是共振峰频率和带宽的向量。例如,如果码本包含三个共振峰的条目,码本中的第i个条目X[i]将是向量[F1i,B1i,F2i,B2i,F3i,B3i],其中F1i,F2i,F3i是第一、第二和第三个共振峰的频率,B1i,B2i,和B3i是第一、第二和第三个共振峰的带宽。
在一个实施例中,共振峰和带宽根据下面表1中的条目进行量化,其中Min(Hz)是以赫兹表示的共振峰或带宽的最小值,Max(Hz)是以赫兹表示的共振峰或带宽的最大值,“Num.Quant.”是量化状态的数目。在多数实施例中,该范围内的共振峰频率被映射到梅尔频率(Mel-frequency)域,然后一律被量化。对于带宽,最小最大间的域由量化状态数来分割,来提供每个量化状态间的间隔。例如,对于表1中的带宽B1,260Hz的范围被5个量化状态等分,因此每个状态与其它状态以65Hz的间隔分开(即,40,105,170,235,300)。
|
Min(Hz) |
Max(Hz) |
Num.Quant |
F1i |
200 |
900 |
20 |
F2i |
600 |
2800 |
20 |
F3i |
1400 |
3800 |
20 |
B1i |
40 |
300 |
5 |
B2i |
60 |
300 |
5 |
B3i |
60 |
500 |
5 |
表1
表1中的量化状态数能产生总计一百万不同的共振峰组。但是,因为F1<F2<F3的限制,在码本定义的共振峰查找空间中只有767,500组共振峰。
码本形成之后,在步骤302,码本中的每个条目X[i]被映射到的模拟特征向量F(X[i])上。图4显示在本发明的一个实施例中用作进行这一步的单元。
在图4的实施例中,先是通过创造一基于条目的z转换函数402来形成对于码本400中条目的模拟特征向量。该z转换函数表示只基于条目中共振峰的语音生产系统的全极点模型。具体地,z转换函数定义为:
方程1
其中,H(z)是转换函数,G是增加值,它在多数实施例中设为1,以及
z=ej2πf 方程2
方程3
其中,f是频率,Fs是用来采集输入信号的采样频率,Fk是条目中k个共振峰的第K个共振峰的频率,Bk是第K个共振峰的带宽。
然后,用转换函数H(z)产生表示语音信号的频率内容的且只由条目中共振峰组成的模拟频谱分布404。这通过对多个不同的频率f计算H(z)的值来完成。
然后,将频谱分布应用到滤波器组406,就如本领域所熟知的,滤波器组406强调频谱分布中的某些频带。然后,将过滤的分布应用到离散余弦变换函数408,由它产生条目的特征向量410。典型地,初始特征向量包括构成语音信号的d.c或0Hz元素。为提高系统的性能,在本发明的多数实施例中将该元素从特征向量中去除。
上述过程对码本中的每个条目重复,使得每个条目都有不同的模拟特征向量。
一旦形成模拟特征向量F(X[i])410,在步骤304,它们即被用于训练残差模型。残差模型是一组观测训练特征向量和模拟特征向量间差分的模型。依照方程:
rt=Ot-F(x) 方程4
其中,rt是残差,Ot是t时刻的观测训练特征向量,而F(x)是模拟特征向量。
在一个实施例中,rt建模成有均值μ和协方差∑的单高斯函数,其中,μ是对特征向量每个分量有不同均值的向量,∑是对特征向量的每个分量都有不同值对角斜方差矩阵。
为了产生用于训练残差模型的观测训练特征向量,说话人412产生能被麦克风416检测到的音频信号,麦克风同时也检测到的额外的噪音414。麦克风416将声音信号转换成模拟电信号提供给模拟数字(A/D)转换器418。A/D转换器418以采样频率Fs对模拟信号进行采样,采样结果转换成数值。在一个实施例中,A/D转换器418以16kHz的采样频率对模拟信号进行采样,每个采样为16位,因此每秒产生32KB的语音数据。数字采样提供给帧构造器420,它将这些采样组合成帧。在一个实施例中,帧构造器420每10微秒产生新的一帧,包括25微秒(产生新的一帧)了为收集数据也是值得的。
数据帧提供给特征抽取器422,在一个实施例中它由快速傅里叶转换(FFT)424、滤波器组426和离散余弦变换428组成。FFT424将时域数值转换成表示该帧频谱内容的一组频域数值。然后,频谱内容经过滤波器组426和离散余弦变换428,以类似于滤波器组406和离散余弦变换408为共振峰码本中的条目过滤和转换频谱分布的方式来过滤转该换频谱内容。离散余弦变换428的输出是一组表示训练语音信号的训练特征向量430。要注意的是如果模拟特征向量中去掉了元素,也就要去掉训练向量的d.c或0Hz分量。
滤波器组406和426、离散余弦变换408和428可由其它的元素替换,只要对该帧训练语音的共振峰码本条目的频谱分布和频谱内容进行同样的处理。因此,本发明不限于任一特定类型的特征向量。
残差模型训练者432使用模拟特征向量410和训练特征向量430形成残差模型434。在一个实施例中,残差模型训练者432使用期望最大化(EM)算法来训练残差模型的均值μ和协方差矩阵∑。使用标准的EM计算并且假定隐藏共振峰值均匀地分布,得到均值和协方差的更新方程为:
方程5
方程6
其中,
是更新的均值,
更新的协方差值,N((o
t-F(x[ii]));μ′,∑′)是含有在以前训练迭代过程中确定的均值μ及协方差矩阵∑的高斯残差模型,i是码本中条目的数量,T是说话训练中的帧数。要注意的是方程5和6应用于均值向量的每个分量和协方差矩阵的每个单元。因此,在方程5和6中,
和(o
t-F(x[i]))的差分是基于分量对分量来计算的。
残差模型训练者432多次更新均值和协方差,每次使用先前迭代得到的的均值和协方差来定义方程5和6中使用的模型。在均值和协方差到达稳定的值后,它们作为残差模型434加以存储。
一旦残差模型434构建起来,在图3的步骤306就可用它来确认输入语音信号中的共振峰。确认共振峰的系统方块图如图5所示。
在图5中,语音信号由扬声器512产生。语音信号和额外的噪声514通过麦克风516、A/D转换器518、帧构造器520和由FFT524、滤波组526和离散余弦变换528组成的特征抽取器522转换成特征向量流530。要注意是麦克风516、A/D转换器518、帧构造器520和特征抽取器522以类似于图4中麦克风416、A/D转换器418、帧构造器420和特征抽取器422的方式进行工作。注意如果已经从模拟特征向量中去掉该特征向量的d.c分量,那么也要将它从特征抽取器522产生的输入特征向量中去除。
特征向量流530连同残差模型434和模拟特征向量410提供给共振峰追踪器532。共振峰追踪器532使用本发明中几种技术中的一种来为语音信号的每一帧确定一组共振峰。
在本发明的一组技术中,共振峰追踪器532独立地为每帧确定共振峰,使得当前帧的共振峰不依赖于其它帧的共振峰。在这样一种技术下,作出最大可能性的决定,选择残差模型中概率最大的码本中的共振峰条目X[i]作为该帧的共振峰组。依照方程:
方程7
方程7的实例限于查找码本量化条目中的共振峰。为避免这一限制,本发明的第二实施例使用最小均方差(MMSE)估计来确定每帧的共振峰,最小均值平方差估计给出如下:
方程8
其中,方程8评估X[i]向量的每个分量。因此,最后确认的向量
中的每个共振峰频率和带宽是码本中条目中共振峰频率和带宽的加权和,其中权值是使用码本条目时由残差模型产生的概率。使用方程8,共振峰频率和带宽的连续值是可能的。
在本发明的其它实施例中,共振峰追踪器532在确认共振峰时使用连续性制约。在一个这样的实施例中,当前帧中的共振峰值依赖于前一帧的共振峰值,如:
Xt=Xt-1+Wt 方程9
其中,Xt是第t帧的共振峰频率组和带宽,Xt-1是之前第t-1帧的共振峰频率组和带宽,Wt是设有0平均数和对角协方差∑w的高斯函数,使得对角阵的每个值与和码本向量中具体的分量相关的量化误差成比例。量化误差等于共振峰向量元素可能的值域除以该元素的量化状态数。例如,与共振峰频率F1相关的方差正比于共振峰频率F1可能的值域(700Hz)与用作量化共振峰频率F1的量化状态数(20)的比率。因此,共振峰频率F1的方差将与35成比例。
使用该模型,通过将当前帧的共振峰组应用到平均数等于前一帧共振峰组以及协方差矩阵等于∑w的高斯分布,得出从前一帧的共振峰组到当前帧的共振峰组的转换的概率p(x[it]x[it-1])。
然后,使用MAP估计确定连续特征向量中共振峰的顺序,MAP估计如下:
其中,在右手侧的第一个乘积是残差模型预测的连续共振峰组的概率,剩下的乘积是共振峰组间转换的转换概率。因此,方程10提供对连续语音信号帧的连续共振峰组的总概率。
可用标准的Viterbi查找来估计方程10,Viterbi查找中对每帧中码本的每个条目都有单独的节点。然后,查找过程经由这些帧向前,使用方程10延长路径到每个新帧中的节点。在每一帧中,裁剪掉低概率的路径,从而减少所考虑的活动路径的数量。当到达最后一帧时,已产生前面“n”条路径的格子路线。然后,选择最有可能的路径,确认与该路径上节点相关的共振峰组作为该语音信号的共振峰序列。
在本发明的进一步实施例中,扩展上述的Viterbi查找形成共振峰的最小均方误差(MMSE)估计。不选择最后一帧最有可能的路径,代之以用“n”条最佳路径的每一个来形成每帧共振峰的MMSE估计。对于任何给定的帧,MMSE估计等于该帧中有路径经过的共振峰节点的加权和。用于节点的权值等于到达该节点的最有可能路径的概率乘以离开该节点最有可能路径的概率。依照方程:
其中,
V定义为由Viterbi编码确定的路径中帧的节点集。
虽然上面描述了4种使用残差模型以及映射共振峰空间到特征向量空间来追踪共振峰的技术,但是本发明不限于这些共振峰追踪技术。其它使用残差模型和/或映射共振峰空间到特征向量空间的技术包含在本发明范畴之内。
虽然已参照具体的实施例对本发明进行了描述,但本领域内的熟练人员知道可在形态和细节上作该变,而不脱离本发明的精神实质和范畴。