声音信号中主音高的获取方法及***
技术领域
本发明涉及语音识别领域,特指一种声音信号中主音高的获取方法及***。
背景技术
音高是指人耳对声音调子高低的主观感觉,主要取决于频率的高低与响度的大小,频率低的调子给人以低沉、厚实、粗犷的感觉;频率高的调子给人以亮丽、明亮、尖刻的感觉。目前音高是通过人耳的听觉来识别的,不能准确的判断一段音乐信号的音高,进而也就不能对该音乐信号中的主音高进行分离提取、转换等操作了。
发明内容
本发明的目的在于克服现有技术的缺陷,提供一种声音信号中主音高的获取方法及***,解决现有技术中采用人耳听觉识别音高不准确而不能对音乐信号中的主音高进行分离提取、转换等操作的问题。
实现上述目的的技术方案是:
本发明一种声音信号中主音高的获取方法,包括:
获取声音信号,对所述声音信号进行分帧以形成声音信号分帧;
利用傅里叶变换将所述声音信号分帧中的每一帧信号从时域转换到频域内以形成频域信号;
获取所述频域信号中幅度的峰值点;
计算所述峰值点的谐波和;
利用概率转换公式将所述谐波和中的幅度转换为概率,再通过维特比算法选取最强概率的频率曲线;以及
将所述频率曲线转换为音高,进而形成了对应所述声音信号的主音高。
本发明通过计算声音信号的峰值点、谐波和、以及概率转换公式,进而获得声音信号的主音高,提高了音高获取的准确率,进而使得通过音高提取人声成为可能。本发明解决了现有采用人耳听觉识别音高的不准确的问题,解决了不能对音乐信号中的主音高进行分离提取、转换等操作的问题。
本发明声音信号中主音高的获取方法的进一步改进在于,利用傅里叶变换将所述声音信号分帧中的每一帧信号从时域转换到频域内以形成频域信号,包括:
利用公式一将所述声音信号分帧从时域转换到频域内以形成频域信号,并画出对应所述频域信号的频域波形;
所述公式一为:
公式一中:x(n)是时域信号,w(n)是窗函数,k是频率刻度,l是帧数,M窗函数长度,N是傅里叶变换大小,j的平方是-1,n是信号时域采样点。
本发明声音信号中主音高的获取方法的进一步改进在于,获取所述频域信号中幅度的峰值点,包括:
从所述频域波形中找到峰值点,所述频域波形的横坐标为频率值,纵坐标为幅度值;
利用第一组公式查找距所述峰值点前后一个单位的频率值所对应的幅度值,并与所述峰值点对应的幅度值一起做二次插值;
所述第一组公式为:
A1=X(km-1)
A2=X(km)
A3=X(km+1)
第一组公式中:km是频率值,A1、A2、A3是幅度值,d是三个峰值点的二次插值;
基于第二组公式和所述二次插值对所述峰值点进行修正,得到经修正的峰值点;
所述第二组公式为:
第二组公式中:是经修正的峰值点的频率值,是经修正的峰值点的幅度值,km是频率值,A1、A2、A3是幅度值,d是三个峰值点的二次插值;
从得到的经修正的峰值点中选取100HZ至1200HZ范围的峰值点作为候选峰值点;
计算所述候选峰值点对应的虚拟峰值点。
本发明声音信号中主音高的获取方法的进一步改进在于,计算所述峰值点的谐波和,包括:
利用第三组公式计算每一虚拟峰值点的谐波和;
所述第三组公式为:
第三组公式中:β是衰减参数,I待计算的谐波阶数,ε是选择函数,HS是谐波和,γ是阈值系数。
本发明声音信号中主音高的获取方法的进一步改进在于,利用概率转换公式将所述谐波和中的幅度转换为概率,包括:
利用所述第三组公式获取a为2,β为2的β分布,均匀分成100个点的概率表;
利用第四组公式统计所述概率表中整体谐波和的均值与标准差;
所述第四组公式为:
K=(HS-H)/σ
idx1=K*100+0.5
idx2=min(max(idx1,0),99)
p=t[idx2]
所述第四组公式中:H是均值,σ是标准差,p是概率,t是概率表。
本发明还提供了一种声音信号中主音高的获取***,包括:
声音获取单元,用于获取声音信号;
声音分帧单元,与所述声音获取单元连接,用于对所述声音信号进行分帧以形成声音信号分帧;
频域转换单元,与所述声音分帧单元连接,用于基于傅里叶变换将所述声音信号分帧中的每一帧信号从时域转换到频域内以形成频域信号;
峰值获取单元,与所述频域转换单元连接,用于获取所述频域信号中幅度的峰值点;
谐波和计算单元,与所述峰值获取单元连接,用于计算所述峰值点的谐波和;
概率转换单元,与所述谐波和计算单元连接,用于利用概率转换公式将所述谐波和中的幅度转换为概率,并通过维特比算法选取最强概率的频率曲线;以及
音高转换单元,与所述概率转换单元连接,用于将所述频率曲线转换为音高,进而形成了对应所述声音信号的主音高。
本发明声音信号中主音高的获取***的进一步改进在于,还包括有存储单元,所述存储单元内存储有公式一,所述公式一为:
公式一中:x(n)是时域信号,w(n)是窗函数,k是频率刻度,l是帧数,M窗函数长度,N是傅里叶变换大小,j的平方是-1,n是信号时域采样点;
所述频域转换单元与所述存储单元连接,所述频域转换单元利用所述存储单元内存储的所述公式一将所述声音信号分帧从时域转换到频域内以形成频域信号,并画出对应所述频域信号的频域波形。
本发明声音信号中主音高的获取***的进一步改进在于,所述存储单元内还存储有第一组公式和第二组公式;
所述第一组公式为:
A1=X(km-1)
A2=X(km)
A3=X(km+1)
第一组公式中:km是频率值,A1、A2、A3是幅度值,d是三个峰值点的二次插值;
所述第二组公式为:
第二组公式中:是经修正的峰值点的频率值,是经修正的峰值点的幅度值,km是频率值,A1、A2、A3是幅度值,d是三个峰值点的二次插值;
所述峰值获取单元与所述存储单元连接,所述峰值获取单元包括有峰值查找模块、幅度差值模块、修正模块、以及虚拟峰值模块;
所述峰值查找模块用于从所述频域波形中找到峰值点;
所述幅度差值模块与所述峰值查找模块连接,用于依据所述第一组公式查找出距所述峰值点前后一个单元的频率值对应的幅度值,并与所述峰值点对应的幅度值一起做二次插值;
所述修正模块与所述峰值查找模块和所述幅度差值模块连接,用于利用所述第二组公式和所述二次插值对所述峰值点进行修正以得到经修正的峰值点;
所述虚拟峰值模块与所述修正模块连接,用于从得到的经修正的峰值点中选取100HZ至1200HZ范围的峰值点作为候选峰值点,并计算所述候选峰值点对应的虚拟峰值点。
本发明声音信号中主音高的获取***的进一步改进在于,所述存储单元内还存储有第三组公式;
所述第三组公式为:
第三组公式中:β是衰减参数,I待计算的谐波阶数,ε是选择函数,HS是谐波和,γ是阈值系数;
所述谐波和计算单元与所述存储单元连接,所述谐波和计算单元用于利用所述第三组公式计算每一虚拟峰值点的谐波和。
本发明声音信号中主音高的获取***的进一步改进在于,所述存储单元内存储有第四组公式;
所述第四组公式为:
K=(HS-H)/σ
idx1=K*100+0.5
idx2=min(max(idx1,0),99)
p=t[idx2]
所述第四组公式中:H是均值,σ是标准差,p是概率,t是概率表;
所述概率转换单元与所述存储单元连接,所述概率转换单元通过所述第三组公式获取a为2,β为2的β分布,均匀分成100个点的概率表,并利用所述第四组公式统计所述概率表中整体谐波和的均值与标准差。
附图说明
图1为本发明声音信号中主音高的获取***的***图。
图2为本发明声音信号中主音高的获取方法的流程图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明。
本发明提供了一种声音信号中主音高的获取***及方法,目的在于准确的获取声音信号中的主音高,较佳用于获取音乐信号中的主音高,为从音乐信号中提取人声提供基础。本发明解决了现有技术中采用人工听觉识别音高存在的音高识别不准确的问题。本发明采用将声波信号转换到频域内,并画出对应的频域波形,再获取频域波形的峰值点,获取峰值点时通过提高频域的分辨率来提高获取音高的准确率。计算峰值点的谐波和,再通过概率转换将幅度转换为概率,就获得了每帧的频率,也就是音高。下面结合附图对本发明声音信号中主音高的获取***及方法进行说明。
参阅图1,显示了本发明声音信号中主音高的获取***的***图。下面结合图1,对本发明声音信号中主音高的获取***进行说明。
如图1所示,本发明声音信号中主音高的获取***包括声音获取单元11、声音分帧单元12、频域转换单元13、峰值获取单元14、谐波和计算单元15、概率转换单元16、音高转换单元17、以及存储单元18;声音获取单元11与声音分帧单元12连接,声音分帧单元12与频域转换单元13连接,频域转换单元13与峰值获取单元14连接,峰值获取单元14与谐波和计算单元15连接,谐波和计算单元15与概率转换单元16连接,概率转换单元16与音高转换单元17连接,声音获取单元11、声音分帧单元12、频域转换单元13、峰值获取单元14、谐波和计算单元15、概率转换单元16、以及音高转换单元17均与存储单元18连接。
声音获取单元11用于获取声音信号,所获取的声音信号可以是音乐信号,该音乐信号为多种音高旋律的混合体。声音获取单元11可以是麦克风,通过录制的方式获取声音信号,也可以是声音输入设备,通过输入以声波形式的声音信号而获取对应的声音信号。
声音分帧单元12接收到声音获取单元11获取的声音信号,声音分帧单元12用于对该声音信号进行分帧以形成声音信号分帧,一般以30ms为一帧对声音信号进行分帧处理,经分帧处理的声音信号成为以时间帧为划分单位的声音信号分帧。
频域转换单元13接收到声音分帧单元12的声音信号分帧,该频域转换单元13利用傅里叶变换将声音信号分帧的每一帧信号从时域转换到频域内以形成频域信号。频域转换单元13还将频域信号以公式一画出频域波形,该频域信号的波形图是以频率为X轴,以幅度为Y轴的频域图。公式一存储在存储单元18内,该公式一为:
在公式一中:x(n)是时域信号,w(n)是窗函数,k是频率刻度,l是帧数,M窗函数长度,N是傅里叶变换大小,j的平方是-1,n是信号时域采样点;
频域转换单元13调取存储单元18内存储的公式一,利用公式一将声音信号分帧从时域转换到频域内,形成频域信号并画出对应该频域信号的频域波形。
峰值获取单元14接收到频域转换单元13的频域信号和频域波形,峰值获取单元14用于获取频域信号中的幅度的峰值点,频域波形的波形图是以频率为X轴,以幅度为Y轴。峰值获取单元14通过第一组公式和第二组公式提高频域的分辨率,提升获取的峰值点的准确率,以提高音高获取的准确率。第一组公式和第二组公式存储在存储单元18内,该第一组公式为:
A1=X(km-1)
A2=X(km)
A3=X(km+1)
在第一组公式中:km是频率值,A1、A2、A3是幅度值,d是三个峰值点的二次插值;
该第二组公式为:
在第二组公式中:是经修正的峰值点的频率值,是经修正的峰值点的幅度值,km是频率值,A1、A2、A3是幅度值,d是三个峰值点的二次插值,其中的A2是频率值km对应的幅度值,A1是频率值km-1对应的幅度值,A3是频率值km+1对应的幅度值;
峰值获取单元14包括有峰值查找模块、幅度差值模块、修正模块、以及虚拟峰值模块;
峰值查找模块用于从频域波形中找到峰值点,峰值点为幅度较高的点,峰值点的横坐标是频率值km,纵坐标是幅度值A2;
幅度差值模块与峰值查找模块连接,用于依据第一组公式查找出距峰值点前后一个单元的频率值km-1、km+1对应的幅度值A1、A3,并与峰值点对应的幅度值A2一起做二次插值,得到了二次插值d;
修正模块与峰值查找模块和幅度差值模块连接,用于利用第二组公式和二次插值d对峰值点进行修正以得到经修正的峰值点,该经修正的峰值点的横坐标是频率值纵坐标是幅度值
虚拟峰值模块与修正模块连接,用于从得到的经修正的峰值点中选取100HZ至1200HZ范围的峰值点作为候选峰值点,并计算候选峰值点对应的虚拟峰值点。计算虚拟峰值点如下:
得到的峰值点中选取100HZ到1200HZ中的峰值点作为候选项,假设两个峰值点对应的虚拟峰值点(f1,a1)、(f2,a2)的第h次谐波、第h+1次谐波;则有h=f1/(f2-f1),则对应的虚拟峰值点为(f1/h,a0),a0通过检测前一帧中相近候选峰值点的幅度来近似,如果没有相近的峰值点则删除。同样的,继续假设h和h+2次谐波来计算虚拟峰值点。
谐波和计算单元15接收到峰值获取单元14得出的虚拟峰值点,谐波和计算单元15用于计算该虚拟峰值点的谐波和,该谐波和计算单元15利用第三组公式计算每一虚拟峰值点的谐波和。该第三组公式为:
第三组公式中:β是衰减参数,I待计算的谐波阶数,ε是选择函数,HS是谐波和,γ是阈值系数。
概率转换单元16接收到谐波和计算单元15得出的谐波和,该概率转换单元16利用概率转换公式将谐波和中的幅度转换为概率,转换为概率后再通过维特比算法选取最强概率的频率曲线。该概率转换公式以第四组公式存储在存储单元18内,该第四组公式为:
K=(HS-H)/σ
idx1=K*100+0.5
idx2=min(max(idx1,0),99)
p=t[idx2]
在第四组公式中:H是均值,σ是标准差,p是概率,t是概率表;
概率转换单元16通过第三组公式获取a为2,β为2的β分布,均匀分成100个点的概率表t,并利用第四组公式统计概率表t中整体谐波和的均值与标准差,就形成了对应谐波和的概率p。
音高转换单元17接收到概率转换单元16得到的频率曲线,该音高转换单元17将频率曲线中的每一帧的频率值转换为音高,较佳地,对频率曲线中的每一帧的频率值求log即为音高,进而形成了对应声音信号的主音高。
下面对本发明音乐信号中主音高的获取方法进行说明。
本发明音乐信号中主音高的获取方法,包括以下步骤:
执行步骤S21,获取声音信号并进行分帧形成声音信号分帧,提供的声音信号可以是音乐信号,该音乐信号为多种音高旋律的混合体。可以通过麦克风录制的方式提供声音信号,也可以是通过声音输入设备输入以声波形式的声音信号而获取对应的声音信号。一般以30ms为一帧对声音信号进行分帧处理,经分帧处理的声音信号成为以时间帧为划分单位的声音信号分帧。接着执行步骤S22。
执行步骤S22,利用傅里叶变换将声音信号分帧从时域转换到频域,通过傅里叶变换将声音信号分帧中的每一帧信号从时域转换到频域内以形成频域信号。利用傅里叶变换将声音信号分帧中的每一帧信号从时域转换到频域内以形成频域信号,包括:
利用公式一将声音信号分帧从时域转换到频域内以形成频域信号,并画出对应频域信号的频域波形;
该公式一为:
在公式一中:x(n)是时域信号,w(n)是窗函数,k是频率刻度,l是帧数,M窗函数长度,N是傅里叶变换大小,j的平方是-1,n是信号时域采样点。接着执行步骤S23。
执行步骤S23,获取频域信号中幅度的峰值点,获取该频域信号中幅度的峰值点,包括:
从频域波形中找到峰值点,频域波形的横坐标为频率值,纵坐标为幅度值;
利用第一组公式查找距所述峰值点前后一个单位的频率值所对应的幅度值,并与所述峰值点对应的幅度值一起做二次插值;
该第一组公式为:
A1=X(km-1)
A2=X(km)
A3=X(km+1)
在第一组公式中:km是频率值,A1、A2、A3是幅度值,d是三个峰值点的二次插值,其中的A2是频率值km对应的幅度值,A1是频率值km-1对应的幅度值,A3是频率值km+1对应的幅度值;
基于第二组公式和二次插值对所述峰值点进行修正,得到经修正的峰值点;
第二组公式为:
在第二组公式中:是经修正的峰值点的频率值,是经修正的峰值点的幅度值,km是频率值,A1、A2、A3是幅度值,d是三个峰值点的二次插值;
通过第一组公式将原始信号补充三倍大小都零然后做fft,然后对找到的峰值点做二次插值。在通过第二组公式对峰值点进行修正。
从得到的经修正的峰值点中选取100HZ至1200HZ范围的峰值点作为候选峰值点;计算所述候选峰值点对应的虚拟峰值点。具体地,从得到的峰值点中选取100HZ至1200HZ范围的峰值点作为候选项,同时计算候选项的虚拟峰值点,假设两个峰值点对应的虚拟峰值点(f1,a1)、(f2,a2)的第h次谐波、第h+1次谐波;则有h=f1/(f2-f1),则对应的虚拟峰值点为(f1/h,a0),a0通过检测前一帧中相近候选峰值点的幅度来近似,如果没有相近的峰值点则删除。同样的,继续假设h和h+2次谐波来计算虚拟峰值点。接着执行步骤S24。
执行步骤S24,计算峰值点的谐波和,以得到所有峰值点的谐波和。计算峰值点的谐波和,包括:
利用第三组公式计算每一虚拟峰值点的谐波和;
该第三组公式为:
在第三组公式中:β是衰减参数,I待计算的谐波阶数,ε是选择函数,HS是谐波和,γ是阈值系数。接着执行步骤S25。
执行步骤S25,利用概率转换公式将谐波和中的幅度转换为概率,选取最强概率的频率曲线,利用概率转换公式将所述谐波和中的幅度转换为概率,包括:
利用第三组公式获取a为2,β为2的β分布,均匀分成100个点的概率表t;
利用第四组公式统计概率表t中整体谐波和的均值与标准差;
该第四组公式为:
K=(HS-H)/σ
idx1=K*100+0.5
idx2=min(max(idx1,0),99)
p=t[idx2]
在第四组公式中:H是均值,σ是标准差,p是概率,t是概率表。
再通过维特比算法选取最强概率的频率曲线。接着执行步骤S26。
执行步骤S26,将频率曲线转换为音高,对频率曲线中的每帧的频率求log,即获得了音高,进而形成了对应声音信号的主音高。
以上结合附图实施例对本发明进行了详细说明,本领域中普通技术人员可根据上述说明对本发明做出种种变化例。因而,实施例中的某些细节不应构成对本发明的限定,本发明将以所附权利要求书界定的范围作为本发明的保护范围。