买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种提取声音的基音频率的方法、装置及可读存储介质_广州酷狗计算机科技有限公司_201710989739.3 

申请/专利权人:广州酷狗计算机科技有限公司

申请日:2017-10-20

公开(公告)日:2021-04-13

公开(公告)号:CN107833581B

主分类号:G10L25/18(20130101)

分类号:G10L25/18(20130101);G10L25/03(20130101)

优先权:

专利状态码:有效-授权

法律状态:2021.04.13#授权;2018.04.17#实质审查的生效;2018.03.23#公开

摘要:本发明公开了一种提取声音的基音频率方法、装置及可读存储介质。本发明首先获取待检测声音信号,通过短时傅里叶变换将待检测声音信号从时域转化到频域;然后从所述频域中确定待检测声音信号的频带范围,根据所述频带范围确定所述待检测声音信号的最大谐波次数;再对所述频带范围内的各频点分别进行能量强度检测,根据强度检测结果确定能量强度最大的频点a;最后根据所述频点a和所述最大谐波次数判断是否存在极大值点的待测频点,若存在,则该待测频点可能是所述待检测声音信号的基音频率或者是基音频率的谐波分量,最后从所述待检测声音信号中提取基音频率。本发明所提供的提取声音的基音频率方法能够用较低的算法复杂度实现较高的准确率。

主权项:1.一种提取声音的基音频率的方法,其特征在于,所述方法包括:获取待检测声音信号,通过短时傅里叶变换将所述待检测声音信号从时域转化到频域;从所述频域中确定待检测声音信号的频带范围,根据所述频带范围确定所述待检测声音信号的最大谐波次数;对所述频带范围内的各频点分别进行能量强度检测,根据强度检测结果确定能量强度最大的频点a;根据所述频点a和所述最大谐波次数从所述待检测声音信号中提取基音频率;其中,所述根据所述频点a和所述最大谐波次数从所述待检测声音信号中提取基音频率的步骤,包括:获取所述频点a对应的全部待测频点,所述待测频点为所述频点a的n分之m,变量m的取值范围为[1,n-1];判断所述待测频点中是否存在满足第一预设条件的极大值点;若存在,则当所述待测频点为所述频点a的n分之1的频点时,将所述待测频点作为基音频率;若不存在,则将所述变量n减一,返回获取所述频点a对应的全部待测频点的步骤,若直至n=2时,仍未获得基音频率,则将所述频点a作为基音频率。

全文数据:一种提取声音的基音频率的方法、装置及可读存储介质技术领域[0001]本发明涉及音频信号技术领域,尤其涉及一种提取声音的基音频率方法、装置及可读存储介质。背景技术[0002]基音频率简称基频,当发声体由于振动而发出声音时,声音一般可以分解为许多单纯的正弦波,所有的自然声音基本都是有许多频率不同的正弦波组成的,其中频率最低的正弦波即为基音,而其他的频率较高的正弦波则为谐波。比如基音频率是可以反映人声音高的基本特征,一般判断一个人唱歌音准是否正确,需要提取人声的基音频率得到音高来进行判断。[0003]目前基音频率检测的方法有时域自相关法、频域倒谱计算法、频域离散小波变换法等等,但是这些检测基音频率的方法要么算法比较复杂,要么存在检测的准确率不高等缺点。本发明的基频检测方法用较低的算法复杂度,实现了较高的准确率。发明内容[0004]本发明的主要目的在于提供了一种提取声音的基音频率方法、装置,及可读存储介质,旨在解决目前基音频率检测方法算法复杂度较高及检测精度较低的问题。[0005]为实现上述目的,本发明提供了一种提取声音的基音频率方法,所述方法包括以下步骤:[0006]获取待检测声音信号,通过短时傅里叶变换将所述待检测声音信号从时域转化到频域;[0007]从所述频域中确定待检测声音信号的频带范围,根据所述频带范围确定所述待检测声音信号的最大谐波次数;[0008]对所述频带范围内的各频点分别进行能量强度检测,根据强度检测结果确定能量强度最大的频点a;[0009]根据所述频点a和所述最大谐波次数从所述待检测声音信号中提取基音频率。[0010]优选地,所述根据所述频点a和所述最大谐波次数从所述待检测声音信号中提取基音频率,具体包括:[0011]将变量η设置为所述最大谐波次数;[0012]根据所述变量η计算与所述频点a对应的待测频点;[0013]判断各待测频点是否满足第一预设条件;[0014]当各待测频点不满足所述第一预设条件时,将所述变量η进行自减1,并返回所述根据所述变量η计算与所述频点a对应的待测频点的步骤,直至各待测频点满足所述第一预设条件时,将所述频点a与所述变量η的商作为所述待检测声音信号的基音频率。[0015]优选地,所述根据变量η计算与所述频点a对应的待测频点,具体包括:[0016]将变量m设置为1;[0017]根据公式⑴计算与所述频点a对应的待测频点f;[0018]将所述变量m自增1,并重新根据所述公式(1计算与所述频点a对应的待测频点,直至m=n-l时,将计算的各待测频点作为所述频点a对应的待测频点;[0019]其中,所述公式⑴为[0020]优选地,所述根据变量η计算与所述频点a对应的待测频点之后,所述方法还包括:[0021]对所述待测频点进行四舍五入取整。[0022]优选地,所述将所述变量η进行自减1之后,所述方法还包括:[0023]在所述变量η为2、且各待测频点不满足所述第一预设条件时,将所述频点a的绝对频率值作为所述待检测声音信号的基音频率。[0024]优选地,所述判断各待测频点是否满足第一预设条件,具体包括:[0025]将各待测频点的绝对频率值进行比较,当比较结果满足第一预设状态时,获取与各待测频点对应的频域能量;[0026]判断各待测频点对应的频域能量是否为极大值点;[0027]在各待测频点对应的频域能量为极大值点时,从各待测频点中选取绝对频率值最小的频点fmin;[0028]判断与所述频点fmin对应的频域能量是否大于预设能量阈值,若是,则判定各待测频点满足所述第一预设条件,若否,则判定各待测频点不满足所述第一预设条件。[0029]优选地,所述第一预设状态为:[0030]各待测频点的绝对频率值随m的递增呈递增状态,其中,各待测频点的绝对频率值分别小于所述频点a的绝对频率值,且各待测频点的绝对频率值均大于1。[0031]此外,为实现上述目的,本发明还提出一种提取声音的基音频率的装置,所述装置包括:声音传感器、存储器、处理器及存储在所述存储器上并可在所述处理器上运行的提取声音的基音频率程序,所述声音传感器用于获取待检测声音信号,所述提取声音的基音频率程序配置为实现如上文所述提取声音的基音频率方法的步骤。[0032]此外,为实现上述目的,本发明还提出一种可读存储介质,所述可读存储介质上存储有提取声音的基音频率程序,所述提取声音的基音频率程序被处理器执行时实现如上文所述提取声音的基音频率方法的步骤。[0033]本发明首先通过获取待检测声音信号,通过短时傅里叶变换将所述待检测声音信号从时域转化到频域;然后从所述频域中确定待检测声音信号的频带范围,根据所述频带范围确定所述待检测声音信号的最大谐波次数;再对所述频带范围内的各频点分别进行能量强度检测,根据强度检测结果确定能量强度最大的频点a;最后根据所述频点a和所述最大谐波次数从所述待检测声音信号中提取基音频率,进而达到了用较低的算法复杂度实现了较高基音频率提取的准确率。附图说明[0034]图1是本发明实施例方案涉及的硬件运行环境的装置的结构示意图;[0035]图2为本发明一种提取声音的基音频率方法第一实施例的流程示意图。[0036]本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式[0037]应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。[0038]参照图1,图1为本发明实施例方案涉及的硬件运行环境的装置结构示意图。[0039]如图1所示,该装置可以包括:处理器1001,例如CPU,通信总线1002、用户接口1003,声音传感器1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏Display,可选用户接口1003还可以包括标准的有线接口、无线接口。声音传感器1004用于获取待检测声音信号。存储器1005可以是高速RAM存储器,也可以是稳定的存储器non-volatilememory,例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。[0040]本领域技术人员可以理解,图1中示出的装置结构并不构成对本发明所述的装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。[0041]如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、声音信号获取模块、用户接口模块以及提取声音的基音频率程序。[0042]本发明所述装置通过处理器1001调用存储器1005中存储的提取声音的基音频率程序,并执行以下操作:[0043]获取待检测声音信号,通过短时傅里叶变换将所述待检测声音信号从时域转化到频域;[0044]从所述频域中确定待检测声音信号的频带范围,根据所述频带范围确定所述待检测声音信号的最大谐波次数;[0045]对所述频带范围内的各频点分别进行能量强度检测,根据强度检测结果确定能量强度最大的频点a;[0046]根据所述频点a和所述最大谐波次数从所述待检测声音信号中提取基音频率。[0047]进一步地,处理器1001可以调用存储器1005中存储的提取声音的基音频率程序,还执行以下操作:[0048]将变量η设置为所述最大谐波次数;[0049]根据所述变量η计算与所述频点a对应的待测频点;[0050]判断各待测频点是否满足第一预设条件;[0051]当各待测频点不满足第一预设条件时,将所述变量η进行自减1,并返回所述根据所述变量η计算与所述频点a对应的待测频点的步骤,直至各待测频点满足第一预设条件时,将所述频点a与所述变量η的商作为所述待检测声音信号的基音频率。[0052]进一步地,处理器1001可以调用存储器1005中存储的提取声音的基音频率程序,还执行以下操作:[0053]将变量m设置为1;[0054]根据公式⑴计算与所述频点a对应的待测频点f;[0055]将所述变量m自增1,并重新根据所述公式(1计算与所述频点a对应的待测频点,直至m=n-l时,将计算的各待测频点作为所述频点a对应的待测频点;[0056]其中,所述公式⑴为[0057]进一步地,处理器1001可以调用存储器1005中存储的提取声音的基音频率程序,还执行以下操作:[0058]对所述待测频点进行四舍五入取整。[0059]进一步地,处理器1001可以调用存储器1005中存储的提取声音的基音频率程序,还执行以下操作:[0060]在所述变量η为=2、且各待测频点不满足第一预设条件时,将所述频点a与的绝对频率值作为所述待检测声音信号的基音频率。[0061]进一步地,处理器1001可以调用存储器1005中存储的提取声音的基音频率程序,还执行以下操作:[0062]将各待测频点的绝对频率值进行比较,当比较结果满足第一预设状态时,获取与各待测频点对应的频域能量;[0063]判断各待测频点的频域能量是否为极大值点;[0064]在各待测频点对应的频域能量为极大值点时,从各待测频点中选取绝对频率值最小的频点fmin;[0065]判断与所述频点fmin对应的频域能量是否大于预设能量阈值,若是,则判定各待测频点满足第一预设条件,若否,则判定各待测频点不满足第一预设条件。[0066]本实施例首先通过获取待检测声音信号,通过短时傅里叶变换将所述待检测声音信号从时域转化到频域;然后从所述频域中确定待检测声音信号的频带范围,根据所述频带范围确定所述待检测声音信号的最大谐波次数;再对所述频带范围内的各频点分别进行能量强度检测,根据强度检测结果确定能量强度最大的频点a;最后根据所述频点a和所述最大谐波次数判断是否存在极大值点的待测频点,若存在,则该待测频点可能是所述待检测声音信号的基音频率或者是基音频率的谐波分量,最后从所述待检测声音信号中提取基音频率,本实施例所提供的提取声音的基音频率方法能够用较低的算法复杂度实现较高的准确率。[0067]基于上述硬件结构,提出本发明一种提取声音的基音频率方法实施例。[0068]参照图2,图2为本发明一种提取声音的基音频率方法第一实施例的流程示意图。[0069]本实施例中,所述方法包括以下步骤:[0070]步骤S10:获取待检测声音信号,通过短时傅里叶变换将所述待检测声音信号从时域转化到频域;[0071]需要说明的是,本实施例以上述装置的处理器作为执行主体进行说明;[0072]在具体实现中,本实施例中上述待检测声音信号为以512为步进取1024个点的数字音频信号为例进行说明,即首先将获取到的人的声信号通过1024点的短时傅里叶变换,可以得到512个点的有效频率值,每个点的索引对应着一个频率值。人声频段一般为80-1200Hz,例如当音频信号的采样率为44100Hz,那么对应频点索引范围为2-27。在本实施例中,优选为通过短时傅里叶变换将所述待检测声音信号从时域转化到频域,这样使得待检测声音信号的每帧信号比较稳定。[0073]步骤S20:从所述频域中确定待检测声音信号的频带范围,根据所述频带范围确定所述待检测声音信号的最大谐波次数;[0074]可理解的是,确定所述待检测声音信号的频带范围(即频段),根据所述频带范围确定所述待检测声音信号的最大谐波次数;比如人声频段一般为80-1200HZ,根据音频信号的采样率确定与所述频段对应的索引范围,根据所述索引范围能够确定该声音信号的谐波最大允许值即最大谐波次数)。由于在人声索引范围内一般最多只会有4次谐波,即本实施例中最大谐波次数是4。[0075]步骤S30:对所述频带范围内的各频点分别进行能量强度检测,根据强度检测结果确定能量强度最大的频点a;[0076]在具体实现中,在上述人声索引范围内找到能量最大值对应的频点a,则该频点至少是基频或基频的其中一个谐波分量。可理解的是,所有的自然声音基本都是有许多频率不同的正弦波组成的,其中频率最低的正弦波即为基音,而其他的频率较高的正弦波则为谐波;对所述频带范围内的各频点分别进行能量强度检测,根据强度检测结果确定能量强度最大的频点a,可缩小到一个比较接近最终提取基音真实值的查找范围,即该频点至少是基频或基频的其中一个谐波分量。[0077]步骤S40:根据所述频点a和所述最大谐波次数从所述待检测声音信号中提取基音频率。[0078]可理解的是,在所述待检测声音频段区域找到最大能量值对应的频点a,假设频点a是基因频率的η次谐波分量(即先假设频点a是基音频率的4次谐波分量,n=4,然后找在该频点a的η分之I、n分之2、…、η分之n-1这段区域是否存在极大值点(即波形的波峰或波谷并满足第一预设条件,需要说明的是,这里我们把该频点a的η分之1、该频点a的η分之2以及该频点a的η分之n-1统称为所述频点a的待测频点;若存在,则当所述待测频点为所述频点a的η分之1的频点时,该待测频点是真正的基频(即基音频率),该频点a是基频的η次谐波;否则,再假所述该频点a是基频的n-1次谐波,同理再进行判断是否可以找出基音点,若直至η为2,仍未找出基频点,则判定该频点a即为真正的基音频率。[0079]在具体实现中,本实施例优选采用双循环的计算方式从所述待检测声音信号中提取基音频率。变量为η的循环是外循环计算方式。及所述步骤S40可分为三个子步骤[0080]步骤一:将变量η设置为所述最大谐波次数;[0081]步骤二:根据所述变量η计算与所述频点a对应的待测频点,判断各待测频点是否满足第一预设条件;[0082]在具体实现中,假设所述频点a是基音频率的η次谐波分量,其中η为变量,将变量η的循环初始值设置为所述最大谐波次数;在人声索引范围内一般最多只会有4次谐波,即本实施例中最大谐波次数是4,先假设频点a是基音频率的4次谐波分量。[0083]需要说明的是,所述判断各待测频点是否满足第一预设条件是以m为变量值的一个内循环方法。[0084]在具体实现中,先假设频点a是基音频率的4次谐波分量(因为本实施例中最大谐波次数是4,贝Ijm的取值为m=I、m=2和m=3;然后找出频点a对应的待测频点anm,其中当m=1、]1=4时,待测频点3111]1表示为341;当111=2、11=4时,待测频点3111]1表示为342;当111=3、11=4时,待测频点anm表示为a43;根据下列公式⑴计算待测频点的绝对频率值f:公式(1[0086]优选地,为了是测量结果更加精确,所述公式⑴进一步用公式2进行优化;所述公式2为:公式(2:[0088]其中为对进行四舍五入取整,本实施例中η=4,贝Ijm取值依次为m=l、m=2和m=3。[0089]根据公式⑵计算获得的待测频点分别为a41=rounda4、a42=round2*a4、a42=round3*a4,将各待测频点的绝对频率值进行比较,当比较结果满足第一预设状态时所述第一预设状态为所述频点a的多个待测频点的绝对频率值随m的递增呈递增状态,其中,各待测频点的绝对频率值分别小于所述频点a的绝对频率值,且各待测频点的绝对频率值均大于1,获取与各待测频点对应的频域能量sa41、sa42、sa43;也就是说,此时比较结果需满足8434241,且411,421,431基频点需处于人声频段区域)。然后判断a41、a42、a43是否都是极大值点,即判断它们对应的频域能量sa41、sa42、sa43是否满足以下模型:[0091]若频域能量sa41、sa42和sa43满足上述模型,则证明a41、a42、a43都是极大值点,进而可以预测所述频点a有可能是基频的一个谐波;从各待测频点中选取绝对频率值最小的频点fmin=a41,然后判断与所述频点a41对应的频域能量sa41是否大于预设能量阈值,如此可以去除杂乱噪声的干扰,若sa41大于预设能量阈值,则可以确定所述待测频点a41就是基频点。[0092]子步骤三:当各待测频点不满足第一预设条件时,将所述变量η进行自减1,并返回所述根据所述变量η计算与所述频点a对应的待测频点的步骤,直至各待测频点满足第一预设条件时,将所述频点a与所述η的商作为所述待检测声音信号的真实基音频率。[0093]可理解的是,上述子步骤三中,若判断出sa41小于预设能量阈值,则进行外循环变量为η的步骤,即继续假设a是3次谐波n=3,同理再判断是否可以找出真实基频点。若直至假设a是2次谐波时n=2,仍未找出基频点,则直接判定a就是真实的基频点。[0094]本实施例首先通过获取待检测声音信号,通过短时傅里叶变换将所述待检测声音信号从时域转化到频域;然后从所述频域中确定待检测声音信号的频带范围,根据所述频带范围确定所述待检测声音信号的最大谐波次数;再对所述频带范围内的各频点分别进行能量强度检测,根据强度检测结果确定能量强度最大的频点a;最后根据所述频点a和所述最大谐波次数判断是否存在极大值点的待测频点,若存在,则该待测频点可能是所述待检测声音信号的基音频率或者是基音频率的谐波分量,最后从所述待检测声音信号中提取基音频率,本实施例所提供的提取声音的基音频率方法能够用较低的算法复杂度实现较高的准确率。[0095]需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。[0096]上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。[0097]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质(如R0MRAM、磁碟、光盘)中,包括若干指令用以使得一台装置可以是手机,,服务器,空调器,或者网络设备等执行本发明各个实施例所述的方法。[0098]以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

权利要求:1.一种提取声音的基音频率的方法,其特征在于,所述方法包括:获取待检测声音信号,通过短时傅里叶变换将所述待检测声音信号从时域转化到频域;从所述频域中确定待检测声音信号的频带范围,根据所述频带范围确定所述待检测声音信号的最大谐波次数;对所述频带范围内的各频点分别进行能量强度检测,根据强度检测结果确定能量强度最大的频点a;根据所述频点a和所述最大谐波次数从所述待检测声音信号中提取基音频率。2.如权利要求1所述的方法,其特征在于,所述根据所述频点a和所述最大谐波次数从所述待检测声音信号中提取基音频率,具体包括:将变量η设置为所述最大谐波次数;根据所述变量η计算与所述频点a对应的待测频点;判断各待测频点是否满足第一预设条件;当各待测频点不满足所述第一预设条件时,将所述变量η进行自减1,并返回所述根据所述变量η计算与所述频点a对应的待测频点的步骤,直至各待测频点满足所述第一预设条件时,将所述频点a与所述变量η的商作为所述待检测声音信号的基音频率。3.如权利要求2所述的方法,其特征在于,所述根据变量η计算与所述频点a对应的待测频点,具体包括:将变量m设置为1;根据公式⑴计算与所述频点a对应的待测频点f;将所述变量m自增1,并重新根据所述公式(1计算与所述频点a对应的待测频点,直至m=n-l时,将计算的各待测频点作为所述频点a对应的待测频点;其中,所述公式⑴为4.如权利要求3所述的方法,其特征在于,所述根据变量η计算与所述频点a对应的待测频点之后,所述方法还包括:对所述待测频点进行四舍五入取整。5.如权利要求2所述的方法,其特征在于,所述将所述变量η进行自减1之后,所述方法还包括:在所述变量η为2、且各待测频点不满足所述第一预设条件时,将所述频点a的绝对频率值作为所述待检测声音信号的基音频率。6.如权利要求1-5任一项所述的方法,其特征在于,所述判断各待测频点是否满足第一预设条件,具体包括:将各待测频点的绝对频率值进行比较,当比较结果满足第一预设状态时,获取与各待测频点对应的频域能量;判断各待测频点对应的频域能量是否为极大值点;在各待测频点对应的频域能量为极大值点时,从各待测频点中选取绝对频率值最小的频点fmin;判断与所述频点对应的频域能量是否大于预设能量阈值,若是,则判定各待测频点满足所述第一预设条件,若否,则判定各待测频点不满足所述第一预设条件。7.如权利要求5所述的方法,其特征在于,所述第一预设状态为:各待测频点的绝对频率值随m的递增呈递增状态,其中,各待测频点的绝对频率值分别小于所述频点a的绝对频率值,且各待测频点的绝对频率值均大于1。8.—种提取声音的基音频率的装置,其特征在于,所述装置包括:声音传感器、存储器、处理器及存储在所述存储器上并可在所述处理器上运行的提取声音的基音频率的程序,所述声音传感器用于获取待检测声音信号,所述提取声音的基音频率的程序配置为实现如权利要求1至8中任一项所述的提取声音的基音频率的方法的步骤。9.一种可读存储介质,其特征在于,所述可读存储介质上存储有基于提取声音的基音频率程序,所述提取声音的基音频率程序被处理器执行时实现如权利要求1至8中任一项所述的提取声音的基音频率方法的步骤。

百度查询: 广州酷狗计算机科技有限公司 一种提取声音的基音频率的方法、装置及可读存储介质

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。