声音信号的音框基本周期的计算方法及系统的制作方法

文档序号:2831118阅读:662来源:国知局

专利名称::声音信号的音框基本周期的计算方法及系统的制作方法
技术领域
:本发明涉及一种声音信号的音框基本周期的计算方法及系统。
背景技术
:音高检测算法(PitchDetectionAlgorithm)是针对声音信号的音高(pitch)作估算所设计出来的算法,这些算法主要是在估算及^r测声音波形的基频。音高检测的应用非常广泛,如在语言学习上,即是以音高检测来找出语音基频的轨迹,并与标准语音模板比对,进行所谓的音调评分。另外,音高侦测也可应用于旋律识别(MelodyRecognition),撷取啤唱者之歌声来计算其音高向量,进而将此音高向量与音乐音高数据库进行比对,找出最接近的歌曲,以达到畔唱找歌的功能。KTV伴唱机更利用音高侦测技术,衍生出歌唱音准评分及伴奏跟调等功能。音高检测算法主要分为两种类型,一种为利用声音信号在频域(FrequencyDomain)上的特性来做音高检测,另一种则是利用声音信号在时域(TimeDomain)上的特性来做音高检测。不管是在频域或时域上的音高检测算法,均是用来求出声音信号的基本周期。在时域上的音高检测算法,是从输入信号变动的波形中找出重复出现的波形,也就是利用声音波形相似的特征来找出其基本周期。在作法上是先将声音信号切成一个个的音框(frame),然后针对每个音框来作音高检测,也就是将音框内之原始声音信号与声音位移后之信号依序作相似度比对。当此位移时间距离等于音高频率倒数时,声音信号和其位移信号必有最大的相似度,此时便可求出基本周期。时域上的各种算法就是在定义寻找这两种信号相似度的算法法则,而目前在时域上较为广泛使用的算法为平均振幅差异函凄t(AverageMagnitudeDifferenceFunction,AMDF)算法以及自相关(Auto-CorrelationFunction,ACF)算法。无论是利用ACF算法或AMDF算法来进行音高检测,最后都有一个重要的步骤,就是找出局部极值。以ACF算法来说,就是要找出声音信号之ACF曲线的局部最大值(localmaximum),而在AMDF算法中,则是要找出声音信号之AMDF曲线的局部最小值(localminimum)。这些局部极值即是所谓的音高点,后续再通过这些音高点来计算声音信号的基频。图1A为一声音信号的AMDF曲线示意图。请参照图1A,以虚线圏起之部分即为AMDF曲线100的局部最小值。在找出局部最小值后,接下来则是要计算基本周期。已知的一种作法是直接找出最小的局部最小值,然后取该点与原点间的距离作为声音信号的基本周期。但是这种作法的误判率非常高,因为并非所有AMDF曲线的第一个波谷均为最小值,如图1B所绘示之AMDF曲线110。为此,当前提出另一种方法,也就是找出最小及次小的局部最小值,如图1B之102与104,然后计算点102至点104的距离,即为声音信号的基本周期。然而,此种作法也不尽理想,以图1C所绘示之AMDF曲线120来说,利用此已知方法所算出来的基本周期会是实际上的两倍。
发明内容本发明所要解决的技术问题是提供一种声音信号的音框基本周期的计算方法及系统,解决了现有技术中存在无法准确地算出声音信号的音框基本周期的问题。为了解决上述问题,本发明提供了一种声音信号的音框基本周期的计算方法是利用声音信号在时域上经音高检测算法所产生的音高点来求出声音信号的基本周期,其中声音信号在一音框中经音高检测演算后会获得复数个音高点,每个音高点均有对应之坐标值(x,y),且这些x坐标值由小至大排序为数组。此计算方法的步骤如下(a)选取最小之x坐标值为一基准值与一累加值;(b)将基准值与累加值相加,以得一比较值,其中当比较值小于数组中最大之x坐标值时,更包括将比较值与其余x坐标值依序进行比对,并计算比较值与这些x坐标值之间的差异值,若比较值与一x坐标值的差异值小于门坎值时,以x坐标值取代基准值后回到步骤(b);若比较值与这些x坐标值的差异值大于门坎值时,选取次一X坐标值取代基准值及累加值,并回到步骤(b)。反之,当比较值大于数组中最大之X坐标值时,利用累加值计算出声音信号之音框基本周期。本发明还提供了一种计算声音信号的音框基本周期的系统,主要是由取样模块、比对模块、累加模块及计算模块所构成,且其是利用声音信号之在时域上经音高检测算法所产生的音高点来求出声音信号的基本周期,其中声音信号在一音框中经音高检测演算后会获得复数个音高点,每个音高点均有对应之坐标值(x,y),而这些坐标值是由小至大排列为数组。其中,取样模块用于选取一x坐标值作为基准值及累加值,且其第一次所选取之x坐标值为最小的x坐标值。累加模块用于接收取样模块所输出之基准值及累加值,并将基准值与该累加值相加,以输出一比较值。比对模块用于接收累加模块所输出之比较值,并对比较值与其余x坐标值依序进行比对,以及计算比较值与这些x坐标值的差异值,其中当比较值小于数组中最大之x坐标值,且其与一x坐标值的差异值小于门坎值时,将此x坐标值反馈至累加模块以取代基准值;以及当比较值小于数组中最大之x坐标值,且其与这些x坐标值的差异值大于门坎值时,输出一重新取样信号至取样模块,以使其选取次一x坐标值取代基准值与累加值;以及当比较值大于数组中最大之x坐标值时,输出累加值。计算模块即是用于接收比对模块所输出之累加值,并依据累加值计算出声音信号之音框基本周期。与现有技术相比,应用本发明,声音信号在时域上经音高检测演算所产生的音高点对应之x坐标值,找到可能的音框基本周期,再提供累加运算方式来验证,而求出真正的音框基本周期。本发明与现有技术之间的差异在于本发明并非直接取声音信号在时域上经音高检测演算后所产生之曲线的绝对极值或次一极值来计算音框基本周期,而是先判断作为基准值的x坐标值累加后是否均近似于这些x坐标值,以验证此点是否即为基本周期。由此可知,本发明能够精确地计算出声音信号的基本周期。图1A为一声音信号的AMDF曲线示意7图1B为另一声音信号的AMDF曲线示意图1C为又一声音信号的AMDF曲线示意图2为本发明之一实施例中声音信号的AMDF曲线示意图3为本发明之一实施例中声音信号的音框基本周期的计算方法步骤流程图4为本发明之一实施例中计算声音信号的音框基本周期的系统方框示意图。具体实施例方式下面结合附图和具体实施方式对本发明作进一步说明。以下实施例是以AMDF算法所求出的音高点来计算音框基本周期,但其并非用于限定本发明。熟习此技艺者应该知道,本发明可利用任何时域上之音高检测算法所求出之音高点来计算音框基本周期。图2为本发明之一实施例中声音信号的AMDF曲线示意图。请参照图2,此AMDF曲线200具有多个音高点,这些音高点分别对应至一坐标值(x,y),其中这些x坐标值是代表音框点数,y坐标值则是代表AMDF值。图3为本发明之一实施例中声音信号之音框基本周期的计算方法步骤流程图。图4为本发明之一实施例中计算声音信号之音框基本周期的系统方框示意图。请同时参照图2、第图3及图4,计算声音信号之音框基本周期的系统400主要是由取样模块410、比对模块420、累加模块430及计算模块440所构成。而声音信号之音框基本周期的计算方法例如是利用取样模块410,在这些音高点所对应的x坐标值中,先择其最小值为基准值及累加值(步骤320)。值得一提的是,由于所欲分析的声音信号通常都会有些许的噪声(noise),为避免这些噪声影响到计算音框基本周期的准确度,计算声音信号之音框基本周期的系统400还可以包括有一筛选模块450,用于筛除掉不恰当的音高点。详细来说,本实施例在挑选作为基准值与累加值的x坐标值前,可以先利用篩选模块450对图2中所有的音高点进行筛选(步骤300)。如8此一来,除了可以过滤掉噪声外,也可以减少计算次数以降低计算复杂度。具体来说,在步骤300中例如是仅保留满足一筛选条件的音高点,而此筛选条件例如是依据这些音高点之y坐标值的平均值而定。本实施例之筛选条件是依据此声音信号之AMDF值的平均值而定,详细来说,步骤300中例如是保留小于AMDF值之平均值的音高点。然而,在另一实施例中,若是以ACF算法求得声音信号的音高点,则其于步骤300中是保留大于ACF值之平均值的音高点。经过上述之筛选步骤后,本实施例之音高点的坐标值(x,y)对应关系如下列r表一」所示<table>tableseeoriginaldocumentpage9</column></row><table>表一在选定基准值及累加值之后,接着利用累加模块430将基准值与累加值相加,而得一比较值(步骤324),并将比较值输出至比对模块420。接着,利用比对模块420判断比较值是否大于数组中最大x坐标值(步骤326)。若判断结果为比较值小于数组中最大x坐标值,则将比较值与其余x坐标值进行比对,并计算其间的差异值(步骤328)。然后,判断比较值与x坐标值间的差异值是否小于门坎值(步骤332)。若判断结果为比较值与一x坐标值间的差异值小于门坎值,则将此x坐标值反馈至累加模块430,以便于以此x坐标值取代基准值(步骤334),并回到步骤324。反之,若判断结果为比较值与一x坐标值间的差异值大于门坎值,则比对模块420会输出一重新取样信号至取样模块410,以利用取样模块410选取次一x坐标值,并将其输出至累加模块430以取代基准值与累加值(步骤336)。若步骤326所得之判断结果为比较值大于数组中最大x坐标值,则利用此累加值计算声音信号之音框基本周期(步骤330)。在上述说明中,所谓差异值例如是指x坐标值与比较值之间的误差率,其中误差率=I比较值-x坐标值I+累加值值得注意的是,由于乐器之各半音音阶间的误差率最小为5.6125%,因此在本发明中,x坐标值与比较值之间的误差率也必须小于此值,以避免发生跨音阶的错误。换言之,当以误差率来作为比较值与x坐标值之差异值时,此时的门坎值即为5.6125%。在其它实施例中,也可以利用各半音音阶间的最小误差率5.6125%来反推x坐标值与比较值之间的允许误差点数,也就是以比较值与x坐标值间的差值绝对值作为上述之差异值,而此时的门坎值为累加值乘以5.6125%。以下将举数据说明本实施例,但其并非用于限定本发明。根据r表一J所示,当本实施例依序取得x坐标值7或36为基准值及累加值,并以差值绝对值作为差异值时,其门坎值分别为7x5.6125%=0.392875及36乂5.6125%=2.0205。将基准值与累加值相加所得之比较值(14与72)与其余x坐标值比对后发现,其与x坐标值的差值绝对值均大于门坎值,因而接着取坐标值43为基准值及累加值。此时,门坎值为43*5.612%=2.41316。将基准值43与累加值43相加所得之比较值86与其余x坐标值比对后可发现,比较值86与x坐标值87之间的误差点为1,小于其门坎值,故可继续进行下一步骤,也就是将x坐标值87取代基准值43而与累加值43相加,并得比较值130。将比较值130与其余x坐标值比对后发现,其与x坐标值131亦具有1点误差点数。再继续累加下去可发现,累加值43与x坐标值131相加而得的比较值174同样与x坐标值175具有1点的误差点数;累加值43与x坐标值175相加而得的比较值218也是与x坐标值217具有1点的误差点数。由上述可知,当以累加值43来进行累加时,比较值与实际的音高点的误差率都在门坎值之内,且误差点数不会超过l个取样点,故可得知实际的音高点应介于x坐标值43与x坐标值44之间,假设本实施例之声音信号取样频率是16KHz,则此声音信号的基频是介于16KHz/43(约等于372.09Hz)至16KHz/44(约等于363.64Hz)之间,而此声音信号的基本周期即为其基频的倒数。如前文所述,上述实施例虽以AMDF算法所求出的音高点为例做说明,但其并非用于限定本发明之应用。熟习此技艺者应该了解,本发明也可以利用ACF算法或其它时域上的音高检测算法所求出之音高点来计算音框的基本周期。综上所述,本发明与现有技术之间的差异在于具有以累加x坐标值之方式求出声音信号之音框基本周期的技术手段,通过此一技术手段可以解决现有技术在撷取最小音高点时容易发生误判的问题,进而达成增进时域上之音高检测算法之准确度的功效。虽然本发明所公开之实施方式如上,惟所述之内容并非用于直接限定本发明之专利保护范围。任何本发明所属
技术领域
中具有通常知识者,在不脱离本发明所公开之精神和范围的前提下,可以在实施的形式上及细节上作些许之更动。本发明之专利保护范围,仍须以所附之权利要求书为准。权利要求1、一种声音信号的音框基本周期的计算方法,用于利用声音信号在时域上经音高检测演算所产生的音高点来求出音框基本周期,其中声音信号在一音框中经音高检测演算后会获得复数个音高点,每个音高点均有对应之坐标值(x,y),且该些x坐标值由小至大排序为数组,包括下列步骤(a)选取最小之x坐标值为一基准值与一累加值;及(b)将所述基准值与所述累加值相加,以得一比较值,其中当所述比较值小于所述数组中最大之x坐标值时,更包括下列步骤将所述比较值与其余所述x坐标值依序进行比对,并计算该比较值与该些x坐标值之间的差异值,其中当所述比较值与所述x坐标值其中之一的差异值小于一门坎值时,以该x坐标值取代所述基准值后回到步骤(b);及当所述比较值与所述x坐标值的差异值大于所述门坎值时,选取次一x坐标值取代所述基准值及所述累加值,并回到步骤(b);及当所述比较值大于所述数组中最大之x坐标值时,利用所述累加值计算出所述声音信号之音框基本周期。2、如权利要求1所述的计算方法,其特征在于,在所述步骤(a)前,更包括对所述音高点进行筛选。3、如权利要求2所述的计算方法,其特征在于,所述筛选所述音高点的方法包括保留满足一筛选条件之音高点。4、如权利要求3所述的计算方法,其特征在于,所述筛选条件依据所述音高点之所述y坐标值的平均值而定。5、如权利要求1所述的计算方法,其特征在于,所述差异值为所述x坐标值与所述比较值之间的误差率,且所述门坎值为5.6125%。6、如权利要求1所述的计算方法,其特征在于,所述差异值为所述比较值与所述x坐标值之间的差值绝对值,且所述门坎值为累加值乘以5.6125%。7、一种计算声音信号的音框基本周期的系统,用于利用声音信号在时域上经音高检测演算所产生的音高点来求出音框基本周期,其中声音信号在一音框中经音高检测演算后会获得复数个音高点,每个音高点均有对应之坐标值(x,y),且所述x坐标值由小至大排序为数组,其特征在于,包括一取样模块,用于选取所述x坐标值其中之一作为一基准值及一累加值,且其第一次所选取之x坐标值为最小的x坐标值;一累加模块,用于接收所述取样模块所输出之所述基准值及所述累加值,并将该基准值与该累加值相加,以输出一比4交值;一比对模块,用于接收所述累加模块所输出之所述比较值,并对该比较值与其余x坐标值依序进行比对,以及计算该比较值与该些x坐标值的差异值,其中当该比较值小于数组中最大之x坐标值,且其与该些x坐标值其中之一的差异值小于一门坎值时,将该x坐标值反馈至该累加模块以取代所述基准值;以及当该比较值小于数组中最大之x坐标值,且其与该些x坐标值的差异值大于该门坎值时,输出一重新取样信号至所述取样模块,以使其选取次一x坐标值取代该基准值与所述累加值;以及当该比较值大于数组中最大之x坐标值时,输出该累加值;及一计算模块,用于接收所述比对模块所输出之累加值,并依据该累加值计算出该声音信号之音框基本周期。8、如权利要求7所述的系统,其特征在于,更包括一筛选模块,耦接于所述取样模块,用于对所述音高点进行筛选。9、如权利要求8所述的系统,其特征在于,所述筛选模块对所述音高点进行篩选是保留满足一筛选条件的音高点。10、如权利要求9所述的系统,其特征在于,所述篩选条件是依据所述音高点之所述y坐标值的平均值而定。11、如权利要求7所述的系统,其特征在于,所述比对模块计算的所述差异值为所述比较值与所述x坐标值之间的差值绝对值,且所述门坎值为累加值乘以5.6125%。12、如权利要求7所述的系统,其特征在于,所述比对模块计算的差异值为所述x坐标值与所述比较值之间的误差率,且所述门坎值为5.6125%。全文摘要本发明公开了一种声音信号的音框基本周期的计算方法及系统,此声音信号经音高检测演算后,在音框中的每个音高点均有对应坐标值(x,y),取最小x坐标值为基准值与累加值,并将其相加而得一比较值。将比较值与其余x坐标值进行比对,当比较值与x坐标值之间的差异值大于门坎值时,选取次一x坐标值为基准值与累加值重新进行比对;当差异值小于门坎值时,以此x坐标值取代基准值再次进行累加与比对的步骤。当比较值大于最大x坐标值时,利用累加值计算出声音信号之音框基本周期。此方法可解决已知时域音高算法误判音高点的问题,以提高音高检测的准确度。文档编号G10L25/90GK101504833SQ20081020801公开日2009年8月12日申请日期2008年12月25日优先权日2008年12月25日发明者官圳清,陈进旺申请人:爱唱数码科技(上海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1