CN109872711A - 一种歌曲基频提取方法及装置 - Google Patents
一种歌曲基频提取方法及装置 Download PDFInfo
- Publication number
- CN109872711A CN109872711A CN201910089190.1A CN201910089190A CN109872711A CN 109872711 A CN109872711 A CN 109872711A CN 201910089190 A CN201910089190 A CN 201910089190A CN 109872711 A CN109872711 A CN 109872711A
- Authority
- CN
- China
- Prior art keywords
- file
- volume
- tone
- framing
- song
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Abstract
本发明公开了一种歌曲基频提取方法,具体包括:获取所述歌曲的原唱文件、伴奏文件和歌词文件;根据所述原唱文件和伴奏文件,提取人声数据;对所述人声数据进行分帧处理,得到时域音频分帧数据;计算所述时域音频分帧数据每一分帧的第一音调和第一音量;提取所述歌词文件中每一单独字的起始位置和结束位置;根据所述每一分帧的第一音调和第一音量,计算所述每一单独字的第二音调和第二音量;根据所述每一单独字的第二音调、第二音量、起始位置和结束位置,生成所述歌曲的基频文件。通过上述方案,能够快速批量提取歌曲的基频数据,并能够较大程度提高歌曲音调提取准确度。
Description
技术领域
本发明涉及音频信号处理领域,特别涉及一种歌曲基频提取方法及装置。
背景技术
随着人们娱乐生活的丰富,在闲暇时间选择到KTV唱歌的民众也越来越多。不过,由于歌曲难度的差异,在KTV中对所选择的歌曲的音准进行调节以满足不同人群的需求也成为了大部分KTV中必备的功能。这也就要求必须对原歌曲的音调提取非常准确,但是,在歌曲库中的歌曲数量十分庞大,又有源源不断的新曲入库,现有的歌曲音调提取方法难以大批量快速处理,效率低、准确率差,难以满足当下的需求。
发明内容
本发明提供了一种歌曲基频提取方法及装置,可以较大程度提高歌曲音调提取的效率和准确度。具体实现方式如下:
一种歌曲基频提取方法,包括以下步骤:
获取所述歌曲的原唱文件、伴奏文件和歌词文件;
根据所述原唱文件和伴奏文件,提取人声数据;
对所述人声数据进行分帧处理,得到时域音频分帧数据;
计算所述时域音频分帧数据每一分帧的第一音调和第一音量;
提取所述歌词文件中每一单独字的起始位置和结束位置;
根据所述每一分帧的第一音调和第一音量,计算所述每一单独字的第二音调和第二音量;
根据所述每一单独字的第二音调、第二音量、起始位置和结束位置,生成所述歌曲的基频文件。
优选地,所述提取人声数据包括:
根据所述歌词文件获取人声的起始时间;
根据所述起始时间对所述原唱文件和伴奏文件进行音量对准;
按照预设的窗口长度对音量对准后的所述原唱文件和伴奏文件进行分帧;
计算所述原唱文件和伴奏文件每一分帧的幅度和相位;
计算每一分帧的人声幅度和人声相位,所述人声幅度为所述原唱文件的幅度与所述伴奏文件的幅度之差,所述人声相位为所述原唱文件的相位;
根据所述人声幅度和人声相位,计算所述人声数据。
优选地,所述计算所述时域音频分帧数据每一分帧的第一音调和第一音量包括:
计算所述时域音频分帧数据的倒频谱数据;
根据人声基音频率范围与所述倒频谱数据计算人声基频;
根据所述人声基频计算每一分帧的初始音调;
对所述初始音调进行中值滤波,得到每一分帧的第一音调。
优选地,所述计算所述时域音频分帧数据每一分帧的第一音调和第一音量包括:
计算所述时域音频分帧数据每一分帧的第一平均电平;
计算所述人声数据的第二平均电平;
根据所述第一平均电平和第二平均电平计算每一分帧的第一音量。
优选地,所述提取所述歌词文件中每一单独字的起始位置和结束位置之后,所述计算所述每一单独字的第二音调和第二音量之前,还包括步骤:
将所述歌词文件与所述原唱文件进行歌声对齐;
调整所述歌词文件中的每句歌词的句起始位置;
调整所述歌词文件中的每个单独字的字起始位置。
优选地,所述歌声对齐包括:
将所述歌词文件的歌词时间标注转换为分帧的序号;
计算所述原唱文件中歌声起始的第一起始帧序号与所述歌词文件的歌词起始时间标注对应的第二起始帧序号的差值;
将所述歌词文件中所述歌词时间标注对应的分帧的序号与所述差值相加,进行歌声对齐。
优选地,所述调整所述歌词文件中的每句歌词的句起始位置包括:
比较所述每句歌词的句起始帧与前后相邻帧的第一音量的大小,
若所述句起始帧前一帧的第一音量值最大,则将预设距离内最接近所述句起始帧前一帧的第一音量谷值所对应的帧作为新的句起始帧;
若所述句起始帧后一帧的第一音量值最大,则将预设距离内最接近所述句起始帧后一帧的第一音量谷值所对应的帧作为新的句起始帧;
若所述句起始帧的第一音量值最大,则向所述句起始帧前后各寻找最接近的第一音量谷值所对应的帧作为基准帧,比较两个所述第一音量谷值的大小,选择其中所述第一音量较小的所述基准帧的方向为调整方向,若两个方向的所述第一音量谷值相等,则选择与所述句起始帧距离最近的基准帧的方向为调整方向,调整距离为预设距离和所述句起始帧与所述基准帧间距离中较小的距离。
优选地,所述计算所述每一单独字的第二音调和第二音量包括:
根据所述每一单独字的起始位置和结束位置将所述人声数据分为字分组;
根据每一所述字分组内的所述每一分帧的第一音调生成每一单独字的音调数据组;
将所述音调数据组内所有分帧的所述第一音量的平均值作为所述单独字的第二音量;
对所述音调数据组内的所述时域音频分帧数据进行清音成分判定,删除判定结果为清音的所述音调数据组内的分帧;
选择所述音调数据组中所述第一音量最大的预设数量个分帧,计算所述预设数量个分帧的第一音调的中值,作为所述单独字的第二音调。
优选地,所述计算所述每一单独字的第二音调和第二音量之后,所述生成所述歌曲的基频文件之前,还包括步骤:
从首个所述单独字开始,判断当前单独字的第二音调与前后相邻的单独字的第二音调的差值是否超出预设阈值,若超出,则将所述当前单独字的第二音调替换为所述前后相邻的单独字的第二音调的平均值,直至全部所述单独字判断完成。
本发明还提供了一种歌曲基频调整装置,,包括文件获取模块、人声提取模块、音频分帧模块、特征提取模块和基频生成模块,其中:
所述文件获取模块用于获取所述歌曲的原唱文件、伴奏文件和歌词文件;
所述人声提取模块用于根据所述原唱文件和伴奏文件,提取人声数据;
所述音频分帧模块用于对所述人声数据进行分帧处理,得到时域音频分帧数据;
所述特征提取模块用于计算所述时域音频分帧数据每一分帧的第一音调和第一音量,提取所述歌词文件中每一单独字的起始位置和结束位置,以及根据所述每一分帧的第一音调和第一音量,计算所述每一单独字的第二音调和第二音量;
所述基频生成模块用于根据所述每一单独字的第二音调、第二音量、起始位置和结束位置,生成所述歌曲的基频文件。
本发明通过上述方案,能够根据歌曲库中的原唱、伴奏、歌词等资源文件,快速批量提取歌曲的基频数据,并能够较大程度提高歌曲音调提取准确度,实现了大批量歌曲的快速准确处理。
附图说明
图1为本发明第一实施例中一种歌曲基频提取方法的流程示意图;
图2为本发明第二实施例中一种歌曲基频提取方法的流程示意图;
图3为本发明第三实施例中一种歌曲基频提取方法的流程示意图;
图4为本发明第四实施例中一种歌曲基频提取方法的流程示意图;
图5为本发明第五实施例中一种歌曲基频提取方法的流程示意图;
图6为本发明第六实施例中一种歌曲基频提取方法的流程示意图;
图7为本发明第七实施例中一种歌曲基频提取方法的流程示意图;
图8为本发明第八实施例中一种歌曲基频提取装置的流程示意图。
具体实施方式
本发明。
下面结合附图和具体实施方式对本发明进行详细地阐述。
实施例一
在本发明的一项实施例中,提供了一种歌曲基频提取方法,如图1所示,包括以下步骤:
步骤S100:获取所述歌曲的原唱文件、伴奏文件和歌词文件;
步骤S200:根据所述原唱文件和伴奏文件,提取人声数据;
步骤S300:对所述人声数据进行分帧处理,得到时域音频分帧数据;
步骤S400:计算所述时域音频分帧数据每一分帧的第一音调和第一音量;
步骤S500:提取所述歌词文件中每一单独字的起始位置和结束位置;
步骤S600:根据所述每一分帧的第一音调和第二音量,计算所述每一单独字的第二音调和第二音量;
步骤S700:根据所述每一单独字的第二音调、第二音量、起始位置和结束位置,生成所述歌曲的基频文件。
通过上述步骤,首先根据乐库中该歌曲的原唱文件和伴奏文件计算得到人声数据,再通过分帧处理,获取每一帧的音调和音量数据,再以此确定歌词中的每个单独字的音调和音量数据,进而得到整首歌曲的基频文件。
实施例二
在本发明一项可选的实施例中,如图2所示,步骤S200还包括步骤:
步骤S210:根据所述歌词文件获取人声的起始时间;
步骤S220:根据所述起始时间对所述原唱文件和伴奏文件进行音量对准;
步骤S230:按照预设的窗口长度对音量对准后的所述原唱文件和伴奏文件进行分帧;
步骤S240:计算所述原唱文件和伴奏文件每一分帧的幅度和相位;
步骤S250:计算每一分帧的人声幅度和人声相位,所述人声幅度为所述原唱文件的幅度与所述伴奏文件的幅度之差,所述人声相位为所述原唱文件的相位;
步骤S260:根据所述人声幅度和人声相位,计算所述人声数据。
在进行人声提取时,首先要进行音量对准,即步骤S220,将原唱文件和伴奏文件中的非人声数据的音量进行对准,在本实施例一项可选的实施方式中,音量对准可以采用如下方式进行:
首先根据步骤S210,获取歌曲中歌声的起始时间,之后,分别计算原唱文件和伴奏文件中在该起始时间前后预设的时间间隔内音量数据的平均值meanx和meany,然后可根据下式计算音量对准比值R:
R=meanx/meany
优选地,当R的取值在0.1至10的范围内时,可以认为该音量对准比值有效,可以用于后续的对准,如果R值不在这个范围内,则认为该音量对准比值异常,在后续计算中R可以取1。
优选地,该时间间隔可以为10秒。优选地,如果歌曲的起始时间小于预设的时间间隔时长,可以将歌曲的起始时间的长度作为新的时间间隔,进行R值的计算。
在后续提取人声数据时,将伴奏文件的音量与R相乘,就完成了音量对准。音量对准能够使得人声数据更好地被提取出来,减少伴奏音的残留。
步骤S230至步骤S260是根据对准后的原唱文件和伴奏文件进行人声数提取。首先,按照步骤S230对原唱文件和伴奏文件进行分帧,一般来说,进行分帧时的窗口大小可以选择在80~120毫秒之间,优选地,可以选择窗口大小为85毫秒。优选地,窗函数可以选择周期汉明窗,优选地,窗数据W(n)的计算公式为:
W(n)=0.54-0.46×cos(2πn/N)
其中,N为窗口中的采样点总数,优选地,当采样频率为48kHz时,N=4096,若相邻两窗交叠87.5%,则交叠部分共有3584个采样点。
之后,进行步骤S240,计算每一分帧的幅度谱数据和相位谱数据。在本实施例一项可选的实施方式中,可以对每一分帧进行快速傅里叶变换(FFT变换),再通过短时傅里叶变换(STFT变换)进行幅度相位处理,计算的公式为:
Af=|a+bi|
Pf=arctan(b/a)
其中,a为FFT变换后复数数据的实部,b为FFT变换后复数数据的虚部,Af为该数据的幅度值,Pf为该数据的相位值。
之后,进行步骤S250,计算计算每一分帧的人声幅度和人声相位,所述人声幅度为所述原唱文件的幅度与所述伴奏文件的幅度之差,所述人声相位为所述原唱文件的相位。优选地,该人声幅度Afd还可以通过下式计算:
Afd=max(Af1-Af2,0)
其中,Af1为原唱文件音频的幅度值,Af2为伴奏文件音频的幅度值。
在得到每一分帧的人声幅度和人声相位之后,进行步骤S260,计算人声数据。优选地,可以通过求取所有分组内对应频点的目标幅度和相位,对目标幅度和相位做短时傅里叶逆变换(ISTFT变换),来获得人声数据。
实施例三
在本发明一个可选的实施例中,步骤S300中,在对人声数据重新分钟后,可以先进行滤波操作,再进而得到时域音频分帧数据。
优选地,对人声数据进行低通滤波,进一步,由于人声在讲话时频率范围一般在300~3400Hz之间,但在歌唱时,音调的起伏更加丰富,在高音部分泛音甚至可达到14kHz以上,在后续进行音调提取时,为避免高频噪声以及人声中未滤除干净的乐器干扰,同时更多的保留人声谐波成份以提高音调提取准确度,滤波频点可以优先选择在8kHz,将8kHz以上的人声数据滤除,保留8kHz以下的人声。
优选地,进行低通滤波时,可以采用切比雪夫II型滤波器,滤波器的参数优先选择采样率为48kHz,频点为8kHz,阻带衰减为40dB,阶数为20阶。
实施例四
在本发明一个可选的实施例中,如图3所示,步骤S400还包括步骤:
步骤S411:计算所述时域音频分帧数据的倒频谱数据;
步骤S412:根据人声基音频率范围与所述倒频谱数据计算人声基频;
步骤S413:根据所述人声基频计算每一分帧的初始音调;
步骤S414:对所述初始音调进行中值滤波,得到每一分帧的第一音调。
其中,步骤S411中,在计算倒频谱时,优选地,可以按照如下步骤:
首先,对时域音频分帧数据进行STFT变换,计算功率谱,优选地,进行STFT变换时,窗口大小可以在10~40毫秒之间选择,在一种实施方式中,窗口大小可以选择26毫秒来取得较好的变换效果,此时窗口中具有1280个采样点,窗之间的交叠比为50%。
之后,对每一分帧的STFT变换的结果计算幅度,并取对数,得到对数幅度谱,对该对数幅度谱进行FFT变换,就得到了倒频谱数据。
对于步骤S412至步骤S414,优选地可以按照如下方式:
由于人声的音调对应的频率范围一般在70~650Hz,故优选地在这一范围内进行基频搜索,其中:
LowIndex=FS/650
HighIndex=FS/70
其中,LowIndex为搜索数据最小帧序号,HighIndex为搜索数据最大帧序号,FS为采样频率。通过上述公式得到人声基频,之后可以将人声基频转换为十二平均律,优选地,计算方式为:
Pitch=12×log2(basefreq/440)+69
其中,Pitch为十二平均律声调,basefreq为基频,将计算得到的Pitch值作为每一分帧的初始音调。
最后,对每一帧计算得到的初始音调数据进行中值滤波,得到每一分帧的第一音调,优选地,选择9点中值滤波可以达到较好的滤除野点的效果。
优选地,如图4所示,步骤S400还包括步骤:
步骤S421:计算所述时域音频分帧数据每一分帧的第一平均电平;
步骤S422:计算所述人声数据的第二平均电平;
步骤S423:根据所述第一平均电平和第二平均电平计算每一分帧的第一音量。
其中,由电平计算第一音量的方式为UnitSI(n)=UnitdB-zerosdB
AvgSI=AvgdB-zerosdB
其中,UnitSI(n)表示第n帧的第一音量,AvgSI表示人声平均音强,UnitdB表示平均电平值,AvgdB表示整首歌曲人声的平均电平,zerosdB表示相对静音对应的电平值,即相对静音对应的电平值,优选地,可以选择为-127。这里以1dB表示一个强度等级,可表示强度范围在0~127,使得直观易于显示。
实施例五
在本申请一项可选的实施例中,步骤S500和步骤S600之间,如图5所示,还包括步骤:
步骤S810:将所述歌词文件与所述原唱文件进行歌声对齐;
步骤S820:调整所述歌词文件中的每句歌词的句起始位置;
步骤S830:调整所述歌词文件中的每个单独字的字起始位置。
由于歌词文件大部分为人工标注,有些仅标注一句起始位置,有些标注了一句的起始结束时间,即使每个字的都标注时间也有不准确的时候,歌词整体与伴奏有时候也存在延时,这造成了音调提取准确率下降。因此,本发明即根据歌词文件的信息和每一分帧的第一音量重新定位歌词、句和每个单独字的起始位置和结束位置,用以提高音调检测的准确度。
在一项可选的实施方式中,步骤S810中的歌声对齐包括下述步骤:
步骤S811:将所述歌词文件的歌词时间标注转换为分帧的序号;
步骤S812:计算所述原唱文件中歌声起始的第一起始帧序号与所述歌词文件的歌词起始时间标注对应的第二起始帧序号的差值;
步骤S813:将所述歌词文件中所述歌词时间标注对应的分帧的序号与所述差值相加,进行歌声对齐。
由于歌词文件中实际标注的时时间,而在运算处理的时候处理的对象为每一分帧,因此需要进行对应的转换,优选地,步骤S811中歌词时间标注与分帧序号的转换关系为:
FrameNum=[Time/FrameTime]
其中,FrameNum为帧序号,Time为歌词文件的歌词时间标注,FrameTime为每帧的时长。
优选地,步骤S812中计算差值还可以按照如下方法:
以第一起始帧序号StartFrame为基准,向前后各偏移预设距离的时间范围,优选地,预设距离可以为500毫秒。预设距离内的帧个数可以用OffSet表示,即选择(StartFrame-OffSet)~(StartFrame+OffSet)间的帧作为处理对象。
由序号为(StartFrame-OffSet)的帧开始向后搜索,找到标记第一个第一音量大于预设阈值的帧的序号StartFrameIndex,优选地,所述阈值可以为(AvgSI-10)。时间调整量即为StartFrameIndex与StartFrame的帧数差。
在一项可选的实施方式中,优选地,步骤S820具体包括:
步骤S821:比较所述每句歌词的句起始帧与前后相邻帧的第一音量的大小,
若所述句起始帧前一帧的第一音量值最大,则进行步骤S822:将预设距离内最接近所述句起始帧前一帧的第一音量谷值所对应的帧作为新的句起始帧;
若所述句起始帧后一帧的第一音量值最大,则进行步骤S823:将预设距离内最接近所述句起始帧后一帧的第一音量谷值所对应的帧作为新的句起始帧;
若所述句起始帧的第一音量值最大,则进行步骤S824:向所述句起始帧前后各寻找最接近的第一音量谷值所对应的帧作为基准帧,比较两个所述第一音量谷值的大小,选择其中所述第一音量较小的所述基准帧的方向为调整方向,若两个方向的所述第一音量谷值相等,则选择与所述句起始帧距离最近的基准帧的方向为调整方向,调整距离为预设距离和所述句起始帧与所述基准帧间距离中较小的距离。
优选地,步骤S822~S824中的预设距离可以为5个帧,即在前后各100毫秒左右的范围内调整句起始位置。
在一项可选的实施方式中,步骤S830中,调整所述歌词文件中的每个单独字的字起始位置包括步骤:
步骤S831:计算所述单独字所在句子的句起始帧与下一句子起始帧间的分组距离;
步骤S832:计算句子间的空白帧数,所述空白帧数为所述分组距离减去当前所在句子的每一单独字占据的总帧数;
步骤S833:从所述所在句子的起始字开始,若所述单独字的起始帧超出预设阈值,则进行步骤S834:向后确定所述单独字的起始帧,将当前单独字的结束帧位置与所述句子中剩余为计算起始帧的单独字的起始帧、结束帧向后累加,并重新计算句子间的空白帧数,若空白帧数为0,则将剩余未计算字的位置作为最终校正后的位置;
若所述单独字的起始帧未超出预设阈值,则将当前所述单独字的起始帧、结束帧的位置作为校正后的位置。
优选地,所述预设阈值可以选择为(AvgdB-20)。
实施例六
在本发明一项可选的实施例中,如图6所示,步骤S600包括以下步骤:
步骤S610:根据所述每一单独字的起始位置和结束位置将所述人声数据分为字分组;
步骤S620:根据每一所述字分组内的所述每一分帧的第一音调生成每一单独字的音调数据组;
步骤S630:将所述音调数据组内所有分帧的所述第一音量的平均值作为所述单独字的第二音量;
步骤S640:对所述音调数据组内的所述时域音频分帧数据进行清音成分判定,删除判定结果为清音的所述音调数据组内的分帧;
步骤S650:选择所述音调数据组中所述第一音量最大的预设数量个分帧,计算所述预设数量个分帧的第一音调的中值,作为所述单独字的第二音调。
优选地,步骤S640中的清音判定可以根据下述方式实现:
判断该音调数据组内每一分帧数据的过零率,如果过零率超出预设的阈值,则将该帧判断为清音帧。
优选地,过零率ZCR可以通过下式计算:
其中WL为窗口长度,Sign(k)表示帧内数据的符号,当数据大于为时符号为1,小于零时符号为-1,等于0时符号为0。优选地,在采样率为48kHz或44.1kHz的情况下,当ZCR>0.1时,可以判断该帧为清音帧。
优选地,在步骤S650中,可以选择所述音调数据组中所述第一音量最大的5个分帧,计算这5个分帧的第一音调的中值,作为所述单独字的第二音调。
实施例七
在本发明一项可选的实施方式中,如图7所示,在步骤S600和S700之间,还包括步骤:
步骤S910:从首个所述单独字开始,判断当前单独字的第二音调与前后相邻的单独字的第二音调的差值是否超出预设阈值,若超出,则进行步骤S920,将所述当前单独字的第二音调替换为所述前后相邻的单独字的第二音调的平均值,直至全部所述单独字判断完成。
优选地,该预设阈值可以设定为6,即从第一个字开始查找当前字音调与左右相邻字的音调差值大于6的字,将该字的音调重得新修正为其左右相邻字音调的平均值。这是因为正常歌唱时相邻音调的变化不会有这么大的跳跃。一旦出现这种情况大概率是野点,需要对其音调值修正。
实施例八
在本发明一项可选的实施例中,还提供了一种歌曲基频调整装置,如图8所示,包括文件获取模块10、人声提取模块20、音频分帧模块30、特征提取模块40和基频生成模块50,其中:
所述文件获取模块10用于获取所述歌曲的原唱文件、伴奏文件和歌词文件;
所述人声提取模块20用于根据所述原唱文件和伴奏文件,提取人声数据;
所述音频分帧模块30用于对所述人声数据进行分帧处理,得到时域音频分帧数据;
所述特征提取模块40用于计算所述时域音频分帧数据每一分帧的第一音调和第一音量,提取所述歌词文件中每一单独字的起始位置和结束位置,以及根据所述每一分帧的第一音调和第一音量,计算所述每一单独字的第二音调和第二音量;
所述基频生成模块50用于根据所述每一单独字的第二音调、第二音量、起始位置和结束位置,生成所述歌曲的基频文件。
优选地,人声提取模块20还包括:
音量对准单元21,用于根据所述歌词文件获取人声的起始时间;以及根据所述起始时间对所述原唱文件和伴奏文件进行音量对准;
文件分帧单元22,用于按照预设的窗口长度对音量对准后的所述原唱文件和伴奏文件进行分帧;
分帧计算单元23,用于计算所述原唱文件和伴奏文件每一分帧的幅度和相位;以及计算每一分帧的人声幅度和人声相位,所述人声幅度为所述原唱文件的幅度与所述伴奏文件的幅度之差,所述人声相位为所述原唱文件的相位;
人声计算单元24,用于根据所述人声幅度和人声相位,计算所述人声数据。
优选地,特征提取模块40还包括:
倒频谱计算单元41,用于计算所述时域音频分帧数据的倒频谱数据;
基频计算单元42,用于根据人声基音频率范围与所述倒频谱数据计算人声基频;
音调计算单元43,用于根据所述人声基频计算每一分帧的初始音调;以及对所述初始音调进行中值滤波,得到每一分帧的第一音调。
优选地,特征提取模块40还包括:
电平计算单元44,用于计算所述时域音频分帧数据每一分帧的第一平均电平;以及计算所述人声数据的第二平均电平;
音量计算单元45,用于根据所述第一平均电平和第二平均电平计算每一分帧的第一音量。
优选地,特征提取模块40还包括:
音调分组单元46,用于根据所述每一单独字的起始位置和结束位置将所述人声数据分为字分组;根据每一所述字分组内的所述每一分帧的第一音调生成每一单独字的音调数据组;
清音判定单元47,用于对所述音调数据组内的所述时域音频分帧数据进行清音成分判定,删除判定结果为清音的所述音调数据组内的分帧;
音量计算单元45还用于将所述音调数据组内所有分帧的所述第一音量的平均值作为所述单独字的第二音量;
音调计算单元43还用于选择所述音调数据组中所述第一音量最大的预设数量个分帧,计算所述预设数量个分帧的第一音调的中值,作为所述单独字的第二音调。
优选地,所述歌曲基频提取装置还包括歌词定位模块60,所述歌词定位模块包括:
歌声对齐单元61,用于将所述歌词文件与所述原唱文件进行歌声对齐;
句子调整单元62,用于调整所述歌词文件中的每句歌词的句起始位置;
字调整单元63,用于调整所述歌词文件中的每个单独字的字起始位置。
优选地,所述歌曲基频提取装置还包括野点消除模块70,用于消除野点,具体为:
从首个所述单独字开始,判断当前单独字的第二音调与前后相邻的单独字的第二音调的差值是否超出预设阈值,若超出,则将所述当前单独字的第二音调替换为所述前后相邻的单独字的第二音调的平均值,直至全部所述单独字判断完成。
以上本发明各实施例提供的方案,能够根据歌曲库中的原唱、伴奏、歌词等资源文件,快速批量提取歌曲的基频数据,并能够较大程度提高歌曲音调提取准确度,实现了大批量歌曲的快速准确处理。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,则可对这些实施例作出另外的变更和修改。
本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种歌曲基频提取方法,其特征在于,包括以下步骤:
获取所述歌曲的原唱文件、伴奏文件和歌词文件;
根据所述原唱文件和伴奏文件,提取人声数据;
对所述人声数据进行分帧处理,得到时域音频分帧数据;
计算所述时域音频分帧数据每一分帧的第一音调和第一音量;
提取所述歌词文件中每一单独字的起始位置和结束位置;
根据所述每一分帧的第一音调和第一音量,计算所述每一单独字的第二音调和第二音量;
根据所述每一单独字的第二音调、第二音量、起始位置和结束位置,生成所述歌曲的基频文件。
2.如权利要求1所述的歌曲基频提取方法,其特征在于,所述提取人声数据包括:
根据所述歌词文件获取人声的起始时间;
根据所述起始时间对所述原唱文件和伴奏文件进行音量对准;
按照预设的窗口长度对音量对准后的所述原唱文件和伴奏文件进行分帧;
计算所述原唱文件和伴奏文件每一分帧的幅度和相位;
计算每一分帧的人声幅度和人声相位,所述人声幅度为所述原唱文件的幅度与所述伴奏文件的幅度之差,所述人声相位为所述原唱文件的相位;
根据所述人声幅度和人声相位,计算所述人声数据。
3.如权利要求1所述的歌曲基频提取方法,其特征在于,所述计算所述时域音频分帧数据每一分帧的第一音调和第一音量包括:
计算所述时域音频分帧数据的倒频谱数据;
根据人声基音频率范围与所述倒频谱数据计算人声基频;
根据所述人声基频计算每一分帧的初始音调;
对所述初始音调进行中值滤波,得到每一分帧的第一音调。
4.如权力要求1所述的歌曲基频提取方法,其特征在于,所述计算所述时域音频分帧数据每一分帧的第一音调和第一音量包括:
计算所述时域音频分帧数据每一分帧的第一平均电平;
计算所述人声数据的第二平均电平;
根据所述第一平均电平和第二平均电平计算每一分帧的第一音量。
5.如权利要求1所述的歌曲基频提取方法,其特征在于,所述提取所述歌词文件中每一单独字的起始位置和结束位置之后,所述计算所述每一单独字的第二音调和第二音量之前,还包括步骤:
将所述歌词文件与所述原唱文件进行歌声对齐;
调整所述歌词文件中的每句歌词的句起始位置;
调整所述歌词文件中的每个单独字的字起始位置。
6.如权利要求5所述的歌曲基频提取方法,其特征在于,所述歌声对齐包括:
将所述歌词文件的歌词时间标注转换为分帧的序号;
计算所述原唱文件中歌声起始的第一起始帧序号与所述歌词文件的歌词起始时间标注对应的第二起始帧序号的差值;
将所述歌词文件中所述歌词时间标注对应的分帧的序号与所述差值相加,进行歌声对齐。
7.如权利要求5所述的歌曲基频提取方法,其特征在于,所述调整所述歌词文件中的每句歌词的句起始位置包括:
比较所述每句歌词的句起始帧与前后相邻帧的第一音量的大小,
若所述句起始帧前一帧的第一音量值最大,则将预设距离内最接近所述句起始帧前一帧的第一音量谷值所对应的帧作为新的句起始帧;
若所述句起始帧后一帧的第一音量值最大,则将预设距离内最接近所述句起始帧后一帧的第一音量谷值所对应的帧作为新的句起始帧;
若所述句起始帧的第一音量值最大,则向所述句起始帧前后各寻找最接近的第一音量谷值所对应的帧作为基准帧,比较两个所述第一音量谷值的大小,选择其中所述第一音量较小的所述基准帧的方向为调整方向,若两个方向的所述第一音量谷值相等,则选择与所述句起始帧距离最近的基准帧的方向为调整方向,调整距离为预设距离和所述句起始帧与所述基准帧间距离中较小的距离。
8.如权利要求1所述的歌曲基频提取方法,其特征在于,所述计算所述每一单独字的第二音调和第二音量包括:
根据所述每一单独字的起始位置和结束位置将所述人声数据分为字分组;
根据每一所述字分组内的所述每一分帧的第一音调生成每一单独字的音调数据组;
将所述音调数据组内所有分帧的所述第一音量的平均值作为所述单独字的第二音量;
对所述音调数据组内的所述时域音频分帧数据进行清音成分判定,删除判定结果为清音的所述音调数据组内的分帧;
选择所述音调数据组中所述第一音量最大的预设数量个分帧,计算所述预设数量个分帧的第一音调的中值,作为所述单独字的第二音调。
9.如权利要求1所述的歌曲基频提取方法,其特征在于,所述计算所述每一单独字的第二音调和第二音量之后,所述生成所述歌曲的基频文件之前,还包括步骤:
从首个所述单独字开始,判断当前单独字的第二音调与前后相邻的单独字的第二音调的差值是否超出预设阈值,若超出,则将所述当前单独字的第二音调替换为所述前后相邻的单独字的第二音调的平均值,直至全部所述单独字判断完成。
10.一种歌曲基频调整装置,其特征在于,包括文件获取模块、人声提取模块、音频分帧模块、特征提取模块和基频生成模块,其中:
所述文件获取模块用于获取所述歌曲的原唱文件、伴奏文件和歌词文件;
所述人声提取模块用于根据所述原唱文件和伴奏文件,提取人声数据;
所述音频分帧模块用于对所述人声数据进行分帧处理,得到时域音频分帧数据;
所述特征提取模块用于计算所述时域音频分帧数据每一分帧的第一音调和第一音量,提取所述歌词文件中每一单独字的起始位置和结束位置,以及根据所述每一分帧的第一音调和第一音量,计算所述每一单独字的第二音调和第二音量;
所述基频生成模块用于根据所述每一单独字的第二音调、第二音量、起始位置和结束位置,生成所述歌曲的基频文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910089190.1A CN109872711B (zh) | 2019-01-30 | 2019-01-30 | 一种歌曲基频提取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910089190.1A CN109872711B (zh) | 2019-01-30 | 2019-01-30 | 一种歌曲基频提取方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109872711A true CN109872711A (zh) | 2019-06-11 |
CN109872711B CN109872711B (zh) | 2021-06-18 |
Family
ID=66918354
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910089190.1A Active CN109872711B (zh) | 2019-01-30 | 2019-01-30 | 一种歌曲基频提取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109872711B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110033791A (zh) * | 2019-03-26 | 2019-07-19 | 北京雷石天地电子技术有限公司 | 一种歌曲基频提取方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008225115A (ja) * | 2007-03-13 | 2008-09-25 | Yamaha Corp | カラオケ装置、歌唱評価方法およびプログラム |
CN101894552A (zh) * | 2010-07-16 | 2010-11-24 | 安徽科大讯飞信息科技股份有限公司 | 基于语谱切分的唱歌评测系统 |
CN102053998A (zh) * | 2009-11-04 | 2011-05-11 | 周明全 | 一种利用声音方式检索歌曲的方法及系统装置 |
CN103440862A (zh) * | 2013-08-16 | 2013-12-11 | 北京奇艺世纪科技有限公司 | 一种语音与音乐合成的方法、装置以及设备 |
CN103531220A (zh) * | 2013-10-08 | 2014-01-22 | 百度在线网络技术(北京)有限公司 | 歌词校正方法及装置 |
CN103824555A (zh) * | 2012-11-19 | 2014-05-28 | 腾讯科技(深圳)有限公司 | 音频段提取方法及提取装置 |
CN103943113A (zh) * | 2014-04-15 | 2014-07-23 | 福建星网视易信息系统有限公司 | 一种歌曲去伴奏的方法和装置 |
-
2019
- 2019-01-30 CN CN201910089190.1A patent/CN109872711B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008225115A (ja) * | 2007-03-13 | 2008-09-25 | Yamaha Corp | カラオケ装置、歌唱評価方法およびプログラム |
CN102053998A (zh) * | 2009-11-04 | 2011-05-11 | 周明全 | 一种利用声音方式检索歌曲的方法及系统装置 |
CN101894552A (zh) * | 2010-07-16 | 2010-11-24 | 安徽科大讯飞信息科技股份有限公司 | 基于语谱切分的唱歌评测系统 |
CN103824555A (zh) * | 2012-11-19 | 2014-05-28 | 腾讯科技(深圳)有限公司 | 音频段提取方法及提取装置 |
CN103440862A (zh) * | 2013-08-16 | 2013-12-11 | 北京奇艺世纪科技有限公司 | 一种语音与音乐合成的方法、装置以及设备 |
CN103531220A (zh) * | 2013-10-08 | 2014-01-22 | 百度在线网络技术(北京)有限公司 | 歌词校正方法及装置 |
CN103943113A (zh) * | 2014-04-15 | 2014-07-23 | 福建星网视易信息系统有限公司 | 一种歌曲去伴奏的方法和装置 |
Non-Patent Citations (3)
Title |
---|
四机部无线通信专业科技情报网: "《电子技术会议录-数字通信终端技术专辑》", 30 November 1978, 第四机械工业部第一研究所 * |
庄毓海等: "《中、短波调幅广播发射实用教程》", 31 January 2014, 合肥工业大学出版社 * |
谢秀琴: "基于时频分析的歌声分离", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110033791A (zh) * | 2019-03-26 | 2019-07-19 | 北京雷石天地电子技术有限公司 | 一种歌曲基频提取方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109872711B (zh) | 2021-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8193436B2 (en) | Segmenting a humming signal into musical notes | |
Ono et al. | Separation of a monaural audio signal into harmonic/percussive components by complementary diffusion on spectrogram | |
Gómez et al. | Towards computer-assisted flamenco transcription: An experimental comparison of automatic transcription algorithms as applied to a cappella singing | |
US8005666B2 (en) | Automatic system for temporal alignment of music audio signal with lyrics | |
US20060246407A1 (en) | System and Method for Grading Singing Data | |
US9852721B2 (en) | Musical analysis platform | |
US8158871B2 (en) | Audio recording analysis and rating | |
Dressler | Pitch estimation by the pair-wise evaluation of spectral peaks | |
Clarisse et al. | An Auditory Model Based Transcriber of Singing Sequences. | |
US9804818B2 (en) | Musical analysis platform | |
KR20180088889A (ko) | 곡 멜로디 정보 처리 방법, 서버 및 저장 매체 | |
Haus et al. | An audio front end for query-by-humming systems | |
US9892758B2 (en) | Audio information processing | |
Marolt | SONIC: Transcription of polyphonic piano music with neural networks | |
Toh et al. | Multiple-Feature Fusion Based Onset Detection for Solo Singing Voice. | |
CN109872711A (zh) | 一种歌曲基频提取方法及装置 | |
Nagavi et al. | An extensive analysis of query by singing/humming system through query proportion | |
CN107025902B (zh) | 数据处理方法及装置 | |
Rajan et al. | Melodic pitch extraction from music signals using modified group delay functions | |
CN110033791B (zh) | 一种歌曲基频提取方法及装置 | |
Rossignol et al. | State-of-the-art in fundamental frequency tracking | |
CN109712634A (zh) | 一种自动声音转换方法 | |
Jin et al. | An automatic grading method for singing evaluation | |
Marolt et al. | SONIC: A system for transcription of piano music | |
Kos et al. | On-line speech/music segmentation for broadcast news domain |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |