跟踪音调信号的方法

文档序号:2821464阅读:451来源:国知局
专利名称:跟踪音调信号的方法
技术领域
本发明涉及平滑音调信号的音调跟踪。
背景技术
音调检测器用于各种各样的应用中,这些应用包括例如语音压缩(编码)、像基于语音识别特征的语音重构那样的语音合成等。
在现有技术中已知各种各样的、有关音调检测器的技术,例如Y.Medan、E.Yair和D.Chazan发表的“语音信号的超分辨率音调确定”(Y.Medan,E.Yair,D.Chazan,Super Resolution Pitch Determination forSpeech Signals,IEEE ASSP vol 39pp 40-48,1991)。
在某些场合音调检测器往往找出音调的整数倍或整数分之一。导致这种结果的原因多数是由于音调的迅速变化或两种声音之间的变调,以及刺耳或嘶哑声的存在,所有这些都损坏声谱的规则结构。这种损坏的结果造成附加谱线,这些附加谱线常常处在半音调频率的倍数上,但也可以出现三分之一和四分之一频率。当这样的附加谱线被遗漏时,只能找到音调频率的倍数。当它们被不正确计数时,只能检测到音调频率的一小部分。
诸如语音压缩之类的、使用特定损坏音调信号的应用将表现出变差的性能。
因此,在技术上需要提供平滑检测音调信号中的损坏音调值的技术。
相关技术包括利用基于事件自适应高斯微分滤波器的健壮音调估计(Robust pitchestimation using an event based adaptive Gaussian derivative filter,Shah,A.;Ramachandran,R.P.;Lewis,M.A.,Circuits and Systems,2002.ISCAS 2002.IEEE International Symposium on,2002.Page(s)II-843-II-846 vol.2),这篇文献的目的在于找出杂乱语音中的音调。

发明内容
本发明提供了跟踪音调信号的方法,该方法包括(i)接收由一系列音调值组成的检测到的音调信号,和对于检测到的信号中的每个当前音调值,至少执行如下(ii)到(iv)(ii)从相邻音调值中构造相容音调值的至少一个子序列;(iii)计算所述至少一个子序列的重要度,并选择相容子序列当中重要度最高的一个子序列或一个集合;和(iv)如果当前音调值与重要度最高的所述子序列不相容,通过将它除以或乘以大于1的整数值来平滑它,以便使它与重要度最高的所述子序列相容。
本发明进一步提供了跟踪音调信号的方法,该方法包括(i)接收由一系列音调值组成的检测到的音调信号,并对于检测到的信号中的每个当前音调值以及它的任何整数倍和倒整数倍,至少执行如下(ii)到(iii),其中,所述整数<预定值(ii)从相邻音调值中构造相容音调值的至少一个子序列;如果检测到的音调值与所述子序列不相容,将它除以或乘以大于1的整数值,以便使它与所述子序列相容;和(iii)计算所述至少一个子序列的重要度,并选择重要度最高的子序列,从而使当前音调值变平滑。
并且,本发明提供了跟踪音调信号的系统,该系统包括接收由一系列音调值组成的检测到的音调信号的接收器,和对于检测到的信号中的每个当前音调值,由处理器至少执行如下(ii)到(iv)(ii)从相邻音调值中构造相容音调值的至少一个子序列;(iii)计算所述至少一个子序列的重要度,并选择相容子序列当中重要度最高的一个子序列或一个集合;和(iv)如果当前音调值与重要度最高的所述子序列不相容,通过将它除以或乘以大于1的整数值来平滑它,以便使它与重要度最高的所述子序列相容。
此外,本发明进一步提供了跟踪音调信号的系统,该系统包括接收由一系列音调值组成的检测到的音调信号的接收器,并对于检测到的信号中的每个当前音调值以及它的任何整数倍和倒整数倍,其中,所述整数<预定值,由处理器至少执行如下(ii)到(iii)(ii)从相邻音调值中构造相容音调值的至少一个子序列;如果检测到的音调值与所述子序列不相容,将它除以或乘以大于1的整数值,以便使它与所述子序列相容;和(iii)计算所述至少一个子序列的重要度,并选择重要度最高的子序列,从而使当前音调值变平滑。
本发明提供了包含执行跟踪音调信号步骤的计算机代码的计算机产品,该计算机产品包括接收由一系列音调值组成的检测到的音调信号的接收器,和对于检测到的信号中的每个当前音调值,至少执行如下(i)到(iii)(i)从相邻音调值中构造相容音调值的至少一个子序列;(ii)计算所述至少一个子序列的重要度,并选择相容子序列当中重要度最高的一个子序列或一个集合;和(iii)如果当前音调值与重要度最高的所述子序列不相容,通过将它除以或乘以大于1的整数值来平滑它,以便使它与重要度最高的所述子序列相容。
本发明进一步提供了包含执行跟踪音调信号步骤的计算机代码的计算机产品,该计算机产品包括(i)接收由一系列音调值组成的检测到的音调信号,并对于检测到的信号中的每个当前音调值以及它的任何整数倍和倒整数倍,至少执行如下(ii)到(iii),其中,所述整数<预定值(ii)从相邻音调值中构造相容音调值的至少一个子序列;如果检测到的音调值与所述子序列不相容,将它除以或乘以大于1的整数值,以便使它与所述子序列相容;和(iii)计算所述至少一个子序列的重要度,并选择重要度最高的子序列,从而使当前音调值变平滑。


为了理解本发明和了解它实际上是如何实现的,现在参照附图,只举非限制性例子来描述本发明的优选实施例,在附图中图1是示出按照本发明一个实施例应用音调平滑算法的系统的方块图;
图2例示了一系列帧的取样音调值的图形;图3例示了按照本发明一个实施例的音调跟踪的流程图;图4例示了按照本发明一个实施例、识别音调的子序列、一系列帧的取样音调值的图形;和图5例示了按照本发明另一个实施例的音调跟踪的流程图。
具体实施例方式
首先转到图1,图1示出了按照本发明一个实施例、应用音调跟踪的系统的概括性方块图。如图所示,原始语音信号通过输入装置(比方说,麦克风12)接收,被馈送到(在转换成数字信号之后)处理器(在用户PC 14和相关存储器16中),其中,为了检测音调(在图1中未明确示出),处理器运行(比方说,软件实现的)本身已知的适当工具。
除了音调信号之外,音调检测器可以生成帧能量,帧能量是计算音调的帧中信号强度的某种量度和音调质量的某种量度,音调质量是可以将信号描述成具有检测音调频率的周期信号的程度。然后,如此检测到的音调信号、可能还有能量和匹配度被馈送到平滑音调信号的音调跟踪模块(在图1中未明确示出),所有这些都将在下面得到更详细描述。在比方说语音压缩的情况下,接着将本身已知的编码算法(例如,谱编码)应用于语音信号,和通过比方说网络18远程传送编码信号。
当然,本发明不受图1的特定结构和/或实现和/或应用(语音编码)限制,因此,在需要的时候和在适当的时候,其它变种也是可应用的。举非限制性的例子来说,不仅可以在独立PC(个人计算机)环境下实现,而且可以在分布式环境下实现。
现在简要回顾一下音调信号的特性,这有助于理解按照本发明各种各样的实施例的音调跟踪的结构和操作。因此,假设声带产生频率随时间连续变化的激发,那么,相继正确(真)音调值的序列总是连续的,即,相继值在数值上相互接近。考虑通常包含正确和损坏音调值的检测到的音调信号。设p1和p2是两个音调值(例如,图2的音调信号20中的21和22)。如果p1(例如,21)是正确音调值,和p2是损坏音调值(例如,22),那么,后者是真音调(即,与损坏音调值22相对应的“平滑”音调值,例如,23)的m倍。正确的m可以从使序列{p1,p2/m}变得最平滑的条件中找到。尽管未必如此,但平滑度通常用两个音调之间的如下距离度量来量度D(p1,p2)=|(p1-p2)/(p1+p2)|这意味着,p2/m(代表平滑音调值,例如,23)尽可能地与p1接近,其接近度用上面的距离度量来量度。类似地,如果p2(即,损坏音调值)是真音调(即,与平滑音调值相对应)的整数(m)分之一,那么,在序列中可以使{p1,p2*m}尽可能平滑地求出m。在图2中未例示出p2(即,损坏音调值)是真音调的整数分之一的后一种情形。
基于本发明的音调跟踪算法的目的在于决定检测音调信号的那些值是真值和哪些值被损坏(即,它们是真[平滑]音调值的整数倍或整数分之一)。该算法进一步平滑损坏音调值,以便每当有可能时就获取平滑音调信号。
在所有实施例中,该算法动态地进行,并且,通常,在给定延迟之后完成。由于这个原因,在每个瞬间音调的值的倍数(或分数)的计算必须基于以前音调和至少Tfuture未来音调的值,其中,Tfuture是允许的延迟。因此,按照一个实施例,可以用公式将问题表示如下给定音调的Tpast过去值和Tfuture未来值,求出使当前值与音调的过去和未来值最相容的整数。注意,在所有实施例中都对过去和未来值加以考虑(引起延迟)。可以将延迟(Tfuture)设置成零,这实际上意味着只考虑过去值。
为了决定那些是正确值(即,真音调值),存在音调检测器比音调的倍数或分数更有可能找出正确值的基本假设。如果所有值都在彼此的某个小因子内,音调值的序列是自相容的。因此,相容序列中的两个相继真音调值p1,p2被定义成具有如下特性(下文称为因子特性)因子>p1/p2>1/因子。因子的值应该反映两个真音调值之间的最大允许变化。按一个实施例,对于大多数测试它被选为1.28。注意,它的范围通常在1.0到1.5之间。
按照一个实施例,根据某种算法在上面定义的意义上(即,符合因子特性地)将原始(即,检测到的)音调值的序列划分成相容音调值的子序列。根据上面音调检测器比音调的倍数或分数更有可能找出真音调的假设,在与每个音调点相对应的间隔中存在比不正确的那些音调值(倍数或整数分之一)更正确的音调值。该间隔包含d个未来点和相关过去点。由于这个原因,具有真音调值的子序列通常比其它子序列具有更大的重要度(比方说,更高的能量)。
因此,按照这个实施例,选择真音调值的准则是利用从最重要子序列中推出的真音调值,可以找出使当前音调值与子序列的真音调值最相容(最接近)的整数倍或分数倍。正如下面通过一个实施例更详细描述的那样,尝试将当前音调值“调整”成与允许时间间隔内的最重要自相容子序列组相容(通常遍及Tpast历史音调值和Tfuture未来音调值,其中,后者根据允许的延迟确定)。为了成为自相容的,所有子序列的端点必须相隔在一个因子内。重要度分数最高(例如,能量最高)的子序列组被用作当前音调将匹配的那一个。注意,子序列中的音调值构成一条路径(偶尔也称为轨迹)。众所周知,每个音调与一个能量相关联,因此,按一个实施例,通过将与每个音调值相对应的帧能量加在一起,计算出路径的能量,并且,选择能量最高的自相容子序列组。注意,术语能量在这里宽泛地用于表示那个帧的重要度的任何度量。能量极低的帧也许包含大量噪声,因此,在这些帧上计算的音调也许更有可能是错误的。但是,还应该注意到,这只对极低能量成立。由于这个原因,按一个实施例,帧的计算能量的某种低幂是比能量本身更好的重要度量度。
通过这个实施例,在选择了能量最大的子序列(或几个子序列)之后,将它(它们)用于根据过去音调值和根据未来音调值平滑当前音调值,或找出其值最接近的当前音调的整数倍或整数分之一以维持相容的子序列。
记住这一点,将注意力吸引到例示按照本发明一个实施例确定音调序列的流程图的图3,和例示按照本发明一个实施例、识别音调的子序列、一系列帧的音调值的图形的图4。
在图3的实施例中,这样计算相容音调子序列,使每一个都包括在彼此的一个因子内,即,因子>p1/p2>1/因子的一系列音调值。对于不是相继的,而是由一个时间单位隔开的音调p1和p2,存在指定为L因子的某个因子,L因子大于因子,以便L因子>p1/p2>sub-1/L因子。所有音调值都彼此相容的子序列是相容子序列。按照本发明的另一个实施例,相容子序列可能包括符合特定L因子特性的非相继音调。音调值的每个相容子序列含有与子序列中与寻找真音调的当前时刻最接近的时刻相对应的一个值(称为尾部音调值)。
该过程从原始音调值开始,它的输出是一组平滑音调值。任何时间点Tcur的平滑音调值依赖于在它之前的Tpast音调值和在它之后的Tfuture音调值。因此,参照图4,假设帧1到6中的所有音调值都以下面更详细描述的方式处理过。如图4所示,从如此处理过的音调值当中,通过音调跟踪算法发现1、2、5和6是真音调值(即,音调检测器检测到真值),因此,不需要平滑它们。相反,帧3和4中的值(分别是42和43)通过音调跟踪被分类成损坏的,通过将它们除以整数倍平滑成相应平滑值(42′和43′)。注意,直观地看,在每个音调值与它的相邻音调值“接近”和没有遇到突变(在真音调(44)和损坏音调(42)之间的变调中可以注意到这样的突变)的意义上平滑值(42′)和(43′)与它们的相邻值一起构成相容序列。
因此,在处理了前6个音调值之后,处理帧7(41)的当前音调值(Tcur),以便确定它是真的还是损坏的,在后一种情况下,平滑它。假设至多允许2个未来点,即,Tfuture=2(dealy=2)和6个过去点,即,Tpast=6。这意味着在Frame=1(45)到Frame=9(46)的间隔上搜索子序列。按这个例子,Tmax等于5,表示过去子序列的最远尾部音调值不应该在Frame=2之前。注意,选择本例的Tpast、Tfuture和Tmax只是为了例示的目的,决不是限制性的。
因此,在步骤31(图3)中,算法搜索相邻音调值p[j]的最长子序列的集合,以便(A)j属于[Tcurrent-Tpast,Tcurrent+Tfuture]和(B)对于每个子序列的所有音调值,因子>p[j+1]/p[j]>1/因子。
注意,搜索是对检测到的和非平滑的值进行的(即,考虑音调值42和43,而不是考虑42′和43′)。如图4所示,揭示出三个相容子序列,即,由音调值(50和51)组成的子序列(47)、由音调值(42和43)组成的子序列(48)和由音调值(45和44)组成的子序列(49)。注意,为了看得清楚,将子序列(47)-(49)下移了一点。
关注子序列(47),可以看出,50和51的音调值在一个因子值内(假设,例如,因子=1.28),帧4的音调值(43)不是47子序列中的成员,因此,容易看出,帧4的音调值(43)比帧5的音调值(50)大得多,无论如何,比值P(Frame=4)/P(Frame=5)都超过允许因子值。子序列48和49以相同的方式确定。注意,对于所有的子序列,时间点与当前时间点最接近的尾部音调值(即,对于子序列49,44;对于子序列48,43;和对于子序列47,51)都在当前时间点的Tmax(回忆一下,按本例是5)内。
注意,由于帧8和9的音调值(46和52)不遵从上面讨论的因子准则,所以没有揭示未来子序列,因此,它们不能位于同一子序列中。在有效子序列也包括一个成员的情况下,应该考虑另外两个子序列,第一个由帧8上的音调值(52)组成,而第二个由帧9上的音调值(46)组成。
在确定了子序列之后,选择重要度最高的那一个(图3中的步骤34)。注意,顺便提一下,下面将描述利用步骤(32和33)的改进实施例。
现在回到上面的例子,按一个实施例,通过确定每个子序列的累积能量值计算每个子序列的重要度,即,对于每个子序列,求和组成它的音调值的能量,得出每个子序列的能量分数。例如,在图4的例子中,假设子序列47具有最高分数,那么,使当前音调值与它匹配。为此,对当前音调(帧7)计算整数值(步骤35),以便使它与所选子序列(47)的尾部音调值(51)最接近。很显然,这导致相对于它相邻的音调值(52和51)遵从因子约束的平滑音调值(53)。注意,如果帧7的原始音调值是53(即,音调检测器检测到真音调值,而不是损坏音调值)直接测试揭示这个音调值遵从因子特性,因此,省略计算整数倍的步骤。
在已经完成对帧=7的计算之后,停下来的计算又继续关于下一音调值的(52或帧=7)计算,如此反复进行。
现在回到图3的步骤32和33,按改进的实施例,在“接近”子序列的情况下,按组收集它们,使当前音调值与该组的代表性子序列匹配。更具体地说,子序列按尾部音调值分类,并被划分成与它们的邻居相隔在一个因子内的元素的组(步骤(32))。每个组的能量通过求和构成该组的各自子序列的能量获得(步骤33),得出代表性子序列。选择总能量最大的尾部组。组代表性尾部音调值通过比方说该组中子序列的不同尾部音调值的平均尾部音调值计算(步骤34)。注意,求平均只是一个例子,诸如挑选与Tcur最接近的时间间隔相对应的音调值的其它不同形式也是可应用的。最后,将当前音调值乘以或除以一个整数,以便使它与计算的平均音调值最接近(步骤35)。例如,回到图4时,如果分类尾部音调值(步骤32),结果是子序列49的尾部音调值44、子序列47的尾部音调值51和(只由音调52组成的未来子序列的)尾部音调值52都非常接近,被分类成dame组。其它组由子序列48组成。
注意,附带提一下,对于未来子序列来说,“尾部”音调事实上就是“头部”音调,即,子序列中与当前音调值最接近的第一个值。为了方便起见,术语“尾部音调值”表示过去子序列的“尾部”音调值而未来子序列的“头部”音调值。
现在回到图4的例子,通过确定重要度(按这个实施例,是总能量),计算每个组的代表性子序列(步骤33)。自然,由三个子序列47、49和52组成的组获胜(因为三个子序列的累加能量大于其它组的子序列(48)的累加能量)。接着,比方说,通过对不同尾部音调值44、51和52求平均,得出平均尾部音调值来计算代表性尾部音调值(步骤34),并且,以如上所述的方式相对于代表性音调值进行当前音调值的平滑(如有必要的话)(步骤35)。
于是,正如上面说明的那样,提供了生成相容的音调的子序列,并从它们当中选择最重要的机制。重要度可以用例如能量和音调值质量度量或它们的组合来量度,其中音调值质量度量用来量度信号可以被描述成具有检测音调频率的周期信号的程度。在需要的时候和在适当的时候,除了上面因子之外或代替上面因子,可以使用其它有关重要度的因子。按一个实施例,如果一些音调值比其它音调值更不可能是正确的,则在重要度因子计算中考虑能量(或单独或与其它参数组合)。例如,能量非常低的帧有可能比能量高的帧更不相关。类似地,还应该对音调检测器发现音调模型是不适合那个帧谱的模型的帧打折扣。为此,除了能量之外,可以使用信号与具有指定音调的周期信号匹配的程度的度量。每帧通常产生其值在0和1之间的一个附加数,并且,对能量存在倍增效应。
按另一个实施例,相容序列由间隔中彼此相容的所有音调值组成,其中,通过乘以或除以某个整数因子归一化一些音调值。这个实施例将参照图4,以及图5加以描述。
因此,在步骤(61)中,选择当前音调的整数或倒整数倍。在图4的例子中,再次假设当前评估帧7的音调值(在已经处理了音调值1到6之后),然后,首先取出取样值41(即,整数值是1)。
接着(步骤62),从当前音调值(整数倍为1)开始找出子序列,和通过将整数分之一或整数倍应用于相邻音调值,将它归一化到子序列上,以便最终音调值在当前音调值的“因子”内。在图4的例子中,自然,相邻音调值51不在一个因子内(由于它相对于41表现出突变),因此,将一个整数倍比方说2应用于它,得出相对于当前音调值41在“因子”内的计算音调值55。将倍数因子(按本例,2)与如此计算的音调值55相关联。同样,在允许的[Tcurrent-Tpast,Tcurrent+Tfuture]间隔内使序列向前向后延伸,以便每个计算的音调值与它的邻居(计算的音调值)都相隔在一个因子内。在已经完成了子序列的计算之后,将它的重要度确定为例如与倍数因子为1相关联的音调值的个数(即,子序列中保持完好的和未经过归一化的音调值的个数)。在步骤63中,与到目前为止获得的最佳重要度作比较,如果从当前帧中得出更好的重要度,那么取代它。这样,到目前为止获得的最佳重要度的记录得到保持。
现在,重复步骤61到63,再次从帧7的音调值开始构造另一个子序列,但这次倒整数是2(可以回忆一下,在第一子序列中,帧7的音调值具有倍数因子1)。因此,当应用倒整数2(即,除以2)时,帧7的所得计算音调值是53(图4中)。现在,相邻音调值(帧6)应该落在与帧7的音调值相隔一个因子内,和容易看出,帧6的音调值(51)确实相隔在一个因子内,于是,它的相关倍数因子是1。同样,在[Tcurrent-Tpast,Tcurrent+Tfuture]间隔内使第二子序列向前向后延伸。以相同的方式,即,像相关倍数因子是1的音调成员的个数那样,计算第二子序列的重要度。
注意,与子序列不重叠(49、48和47)的前实施例不同,按照本实施例,子序列在所有子序列遍布在Tpast到Tfuture的范围内的意义上是重叠。
同样,对比方说倒倍数3(针对帧7的音调值)构造另一个子序列,然后,对倍数2构造另一个子序列而对倍数3构造另一个子序列,直到穷尽所有允许整数倍和倒倍数为止(步骤64的“是”)。注意,为每个子序列计算重要度和在每个步骤中保持重要度的当前优胜者。剩下要做的是识别“取胜”子序列(步骤65),即,重要度分数最高的那一个。按照它的相关倍数因子已经平滑了“取胜”子序列中的当前音调值(frame=7)。显然,如果“取胜”子序列中frame=7的当前音调值与倍数因子1相关联,那么,意味着音调检测器检测到真音调值,而不是损坏音调值。
现在,针对下一个音调值(frame=8)和后续音调值重复上面的过程。此外,关于这个实施例,可以应用各种各样的变型,例如,可以将重要度确定为能量重要度因子的加权值和音调重要度因子的质量。
注意,按另一个实施例,子序列也可以“漏掉”单个零音调点和在决定连续性的过程中允许较大的因子。例如,过去使用的常规因子是1.28,现在使用较大的因子,例如,1.4。使用后者是因为它更正确地代表最坏情况的两步跳段。1.28的两个相继跳段不可能属于一个合适音调。
注意,可以实现各种各样的变更和修改。例如,可以将上面第一实施例修改成包括如下额外步骤在音调轨迹的确包括大于因子的跳段的情况下,如果出现在间隔[Tcurrent-Tpast,Tcurrent+Tfuture]内的所有音调值的集合被分类和划分成子集,以便在每个子集内,相继点之间的距离不超过因子,但这些子集被大于因子的跳段隔开,那么,上面找到的每条音调轨迹必须位于一个子集内。和按定义,不能在任何其它子集中。由于这个原因,可以将附加步骤加入上面的算法中。这涉及到将音调值的分类集合划分成由大于因子的跳段隔开的子集。选择能量最大的子集。在如上所述的算法中考虑的唯一轨迹是具有所选子集中的值的那些。
还应该明白,基于本发明的系统可以是适当编程的计算机。同样,本发明设想用于执行本发明的方法的可被计算机读取的计算机程序。本发明还设想有形地体现用于执行本发明的方法的可被机器执行的指令程序的机器可读存储器。
权利要求
1.一种跟踪音调信号的方法,该方法包括(i)接收由一系列音调值组成的检测到的音调信号,和对于检测到的信号中的每个当前音调值,至少执行如下(ii)到(iv)(ii)从相邻音调值中构造相容音调值的至少一个子序列;(iii)计算所述至少一个子序列的重要度,并选择相容子序列当中重要度最高的一个子序列或一个集合;和(iv)如果当前音调值与重要度最高的所述子序列不相容,通过将它除以或乘以大于1的整数值来平滑它,以便使它与重要度最高的所述子序列相容。
2.根据权利要求1所述的方法,其中,所述(ii)包括来自所述子序列的至少一个子序列由落在[Tcurrent-Tpast,Tcurrent]的时间范围内的计算得出的音调值组成,其中,Tcurrent是与当前音调值对应的时刻,而Tpast是H个以前音调值;以及子序列中每两个相继音调值相隔一个因子,其中,1.5>因子>1,并且范围[Tcurrent-Tpast,Tcurrent]中的每个音调值属于一个子序列。
3.根据权利要求1所述的方法,其中,所述(ii)包括来自所述子序列的至少一个子序列由落在[Tcurrent,Tfuture+Tcurrent]的范围内的音调值组成,其中,Tcurrent是当前音调值,和Tfuture是D个未来音调值;以及子序列中每两个相继音调值相隔一个因子,其中,1.5>因子>1,并且范围[Tcurrent,Tfuture+Tcurrent]中的每个音调值属于一个子序列。
4.根据权利要求2所述的方法,其中,所述(ii)包括来自所述子序列的至少一个子序列由落在[Tcurrent,Tfuture+Tcurrent]的范围内的音调值组成,其中,Tcurrent是当前音调值,和Tfuture是D个未来音调值;以及子序列中每两个相继音调值相隔一个因子,其中,1.5>因子>1,并且范围[Tcurrent,Tfuture+Tcurrent]中的每个音调值属于一个子序列。
5.根据权利要求2所述的方法,其中,所述因子=1.28。
6.根据权利要求3所述的方法,其中,所述因子=1.28。
7.根据权利要求4所述的方法,其中,所述因子=1.28。
8.根据权利要求1所述的方法,其中,子序列中的每个音调值与能量值相关联,并且在(iii)中规定的所述重要度依赖于子序列的能量,后者是子序列的音调值的能量值的函数。
9.根据权利要求8所述的方法,其中,子序列的所述能量是子序列的音调值的能量值之和。
10.根据权利要求1所述的方法,其中,每个子序列含有尾部音调值,并且所述(iv)包括通过将当前音调值除以或乘以大于1的整数值来平滑它,以便使它与重要度最高的所述子序列的尾部音调值相容。
11.根据权利要求1所述的方法,其中,所述(iii)包括分类所述子序列的尾部音调值,并根据所述分类尾部音调值分组所述子序列,以便尾部音调值接近的子序列位于同一组中,并且重要度的所述计算包括计算每个组中所有子序列的重要度,并选择重要度最高的组;以及所述(iv)包括如果当前音调值与重要度最高的组中的所述子序列不相容,通过将当前音调值除以或乘以大于1的整数值来平滑它,以便使它与重要度最高的所述组相容。
12.根据权利要求11所述的方法,其中,对重要度最高的组中子序列的尾部音调值求平均,得出平均尾部音调值,并且所述(iv)包括如果当前音调值与所述平均尾部音调值不相容,通过将当前音调值除以或乘以大于1的整数值来平滑它,以便使它与所述平均尾部音调值相容。
13.根据权利要求11所述的方法,其中,子序列中的每个音调值与能量值相关联,并且在(iii)中规定的所述重要度依赖于子序列的能量,后者是子序列的音调值的能量值的函数。
14.根据权利要求13所述的方法,其中,子序列的所述能量是所述子序列的音调值的能量值之和。
15.一种跟踪音调信号的方法,该方法包括(i)接收由一系列音调值组成的检测到的音调信号,并对于检测到的信号中的每个当前音调值以及它的任何整数倍和倒整数倍,至少执行如下(ii)到(iii),其中,所述整数<预定值(ii)从相邻音调值中构造相容音调值的至少一个子序列;如果检测到的音调值与所述子序列不相容,将它除以或乘以大于1的整数值,以便使它与所述子序列相容;和(iii)计算所述至少一个子序列的重要度,并选择重要度最高的子序列,从而使当前音调值变平滑。
16.根据权利要求15所述的方法,其中,所述(ii)包括来自所述子序列的至少一个子序列由落在[Tcurrent-Tpast,Tcurrent]的时间范围内的计算得出的音调值组成,其中,Tcurrent是与当前音调值对应的时刻,而Tpast是H个以前音调值;以及子序列中每两个相继音调值相隔一个因子,其中,1.5>因子>1,并且范围[Tcurrent-Tpast,Tcurrent]中的每个音调值属于一个子序列。
17.根据权利要求15所述的方法,其中,所述(ii)包括来自所述子序列的至少一个子序列由落在[Tcurrent,Tfuture+Tcurrent]的范围内的音调值组成,其中,Tcurrent是当前音调值,和Tfuture是D个未来音调值;以及子序列中每两个相继音调值相隔一个因子,其中,1.5>因子>1,并且范围[Tcurrent,Tfuture+Tcurrent]中的每个音调值属于一个子序列。
18.根据权利要求16所述的方法,其中,所述(ii)包括来自所述子序列的至少一个子序列由落在[Tcurrent,Tfuture+Tcurrent]的范围内的音调值组成,其中,Tcurrent是当前音调值,和Tfuture是D个未来音调值;以及子序列中每两个相继音调值相隔一个因子,其中,1.5>因子>1,并且范围[Tcurrent,Tfuture+Tcurrent]中的每个音调值属于一个子序列。
19.根据权利要求16所述的方法,其中,所述因子=1.28。
20.根据权利要求17所述的方法,其中,所述因子=1.28。
21.根据权利要求18所述的方法,其中,所述因子=1.28。
22.根据权利要求15所述的方法,其中,所述重要度依赖于子序列中没有经过所述相除或相乘的音调值的个数。
23.一种跟踪音调信号的系统,该系统包括接收由一系列音调值组成的检测到的音调信号的接收器,和对于检测到的信号中的每个当前音调值,由处理器至少执行如下(ii)到(iv)(ii)从相邻音调值中构造相容音调值的至少一个子序列;(iii)计算所述至少一个子序列的重要度,并选择相容子序列当中重要度最高的一个子序列或一个集合;和(iv)如果当前音调值与重要度最高的所述子序列不相容,通过将它除以或乘以大于1的整数值来平滑它,以便使它与重要度最高的所述子序列相容。
24.一种跟踪音调信号的系统,该系统包括接收由一系列音调值组成的检测到的音调信号的接收器,并对于检测到的信号中的每个当前音调值以及它的任何整数倍和倒整数倍,其中,所述整数<预定值,由处理器至少执行如下(ii)到(iii)(ii)从相邻音调值中构造相容音调值的至少一个子序列;如果检测到的音调值与所述子序列不相容,将它除以或乘以大于1的整数值,以便使它与所述子序列相容;和(iii)计算所述至少一个子序列的重要度,并选择重要度最高的子序列,从而使当前音调值变平滑。
25.一种包含执行跟踪音调信号步骤的计算机代码的计算机产品,该计算机产品包括接收由一系列音调值组成的检测到的音调信号的接收器,和对于检测到的信号中的每个当前音调值,至少执行如下(i)到(iii)(i)从相邻音调值中构造相容音调值的至少一个子序列;(ii)计算所述至少一个子序列的重要度,并选择相容子序列当中重要度最高的一个子序列或一个集合;和(iii)如果当前音调值与重要度最高的所述子序列不相容,通过将它除以或乘以大于1的整数值来平滑它,以便使它与重要度最高的所述子序列相容。
26.一种包含执行跟踪音调信号步骤的计算机代码的计算机产品,该计算机产品包括(i)接收由一系列音调值组成的检测到的音调信号,并对于检测到的信号中的每个当前音调值以及它的任何整数倍和倒整数倍,至少执行如下(ii)到(iii),其中,所述整数<预定值(ii)从相邻音调值中构造相容音调值的至少一个子序列;如果检测到的音调值与所述子序列不相容,将它除以或乘以大于1的整数值,以便使它与所述子序列相容;和(iii)计算所述至少一个子序列的重要度,并选择重要度最高的子序列,从而使当前音调值变平滑。
全文摘要
一种跟踪音调信号的方法,包括接收由一系列音调值组成的检测音调信号,和对于检测到的信号中的每个当前音调值,执行如下步骤从相邻音调值中构造相容音调值的子序列。接着,计算子序列的重要度,并选择相容子序列当中重要度最高的一个子序列或一个集合。如果当前音调值与重要度最高的子序列不相容,通过将它除以或乘以大于1的整数值来平滑它,以便使它与重要度最高的子序列相容。
文档编号G10L11/04GK1729508SQ200380107202
公开日2006年2月1日 申请日期2003年12月3日 优先权日2002年12月27日
发明者丹·查赞 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1