一种基于歌声节奏的演唱和声生成方法与流程

文档序号:14716559发布日期:2018-06-16 01:28阅读:722来源:国知局

本发明涉及歌声合成领域,特别是一种基于歌声节奏的演唱和声生成方法。



背景技术:

歌声作为一种较为复杂的音频信号和艺术表现形式,对其分析和研究具有重要意义。随着音乐娱乐的普及,对于音乐语音的声音效果处理成为研究与应用的热点,受到学术界和业界的广泛关注。尽管针对K歌应用的音效处理技术已经相对成熟,但是由于自身嗓音及演唱能力的限制,对于用户来说很难为自己的演唱配和声。因此,研究如何基于演唱者声音特征生成和声以及如何根据歌声节奏生成适应的和声具有非常重要的实际应用价值。



技术实现要素:

本发明的目的在于提供一种基于歌声节奏的演唱和声生成方法,能够根据节拍的快慢自适应地生成和声,以丰富独唱者的音乐表现形式。

为实现上述目的,本发明的技术方案是:一种基于歌声节奏的演唱和声生成方法,其特征在于,按照如下步骤实现:

步骤S1:将输入的清唱歌声音频信号进行预处理,预处理方式包括:滤波、预加重和归一化;

步骤S2:对预处理后的歌声音频x(n)进行分帧,并计算每一帧的对数谱

步骤S3:由对数谱序列计算出歌声信号的频谱通量SF(n),将其经过低通滤波平滑后作为端点强度曲线F(t),然后计算端点强度曲线的自相关序列TG(τ),使TG(τ)取最大值的τ即为节拍周期,由此可计算出BPM特征值;

步骤S4:计算整段输入歌声信号的平均BPM特征值并记为BPM,由BPM计算和声声部延迟量delay;

步骤S5:复制一份预处理后歌声音频x(n)并将其音高提升三度音程,然后通过延时器生成和声声部h(n);

步骤S6:将原声部x(n)与和声声部h(n)线性比例叠加输出y(n)即为所生成的演唱和声。

在本发明一实施例中,在所述步骤S2中,每一帧的对数谱的计算按照以下步骤实现:

步骤S21:根据每一帧的帧长K和每一帧帧移hop对清唱歌声音频分帧后得到xi(n);

步骤S22:对xi(n)进行短时傅立叶变换得到频域信号Xi(k);

步骤S23:根据公式得到对数谱序列

在本发明一实施例中,所述帧长K为10ms至30ms内的采样数,K=每一帧的时间长度*采样频率;所述帧移hop为相邻两帧未重叠部分,hop=K/3。

在本发明一实施例中,在所述步骤S3中,所述频谱通量SF(n)为:

其中,式中n为帧数,K为帧长,H(x)为半波整流函数;

所述自相关序列TG(τ)为:

TG(τ)=W(τ)∑F(t)F(t-τ);

其中,W(τ)为高斯加权函数;

所述BPM特征值为:

BPM=60*fs/hop*τmax;

其中,fs为采样率,hop为帧移,τmax为节拍周期。

在本发明一实施例中,在所述步骤S4,具体实现步骤如下:

步骤S41:每2秒计算提取一个歌声信号的BPM特征值,整段时间信号的BPM特征值序列的平均值即为并记为BPM;

步骤S42:设定延迟拍数D并根据公式计算延迟量delay。

在本发明一实施例中,在所述步骤S5中,所述音高的提升方法采用稳定音色的音高转换方法。

在本发明一实施例中,在所述步骤S5中,所述三度音程为不完全协和的三度音程,即音高为原来的2^(3/12)或2^(4/12)倍。

在本发明一实施例中,在所述步骤S6中,所述线性比例叠加的公式为:

y(n)=x(n)+k*h(n);

其中,k为干湿比,取k=0.8能够获得更好的效果。

相较于现有技术,本发明具有以下有益效果:本发明提出了一种基于歌声节奏的演唱和声生成方法,从演唱和声的应用出发,能够简化节拍提取过程降低时间复杂度,并能根据节拍的快慢自适应地生成和声,可以丰富独唱者的音乐表现形式。该方法简单,实现灵活,具有较强的实用性。

附图说明

图1为本发明中基于歌声节奏的演唱和声生成方法的流程图。

具体实施方式

下面结合附图,对本发明的技术方案进行具体说明。

本发明提出一种基于歌声节奏的演唱和声生成方法,如图1所示主要分为三个阶段:在节奏检测阶段,针对演唱歌声和人耳听觉特性提出通量滤波法,采用频谱通量计算得到端点强度曲线,进而提取BPM特征值;在和声声部生成阶段,针对演唱和声提出演唱和声生成算法,根据BPM特征值动态计算和声声部延迟量,采用稳定音色的音高转换算法生成同人和声声部;在叠加合成阶段,根据延迟量和干湿比采用线性比例叠加输出演唱和声。具体如下:

步骤S1:计算歌声音频信号的对数频谱:首先对整个歌声音频信号进行滤波,预加重、归一化等预处理。然后将得到的语音信号按照帧为K、帧移为hop分成小段的语音帧得到xi(n),其中,K=每一帧的时间长度*采样频率,hop=K/3。对于每一帧作如下处理:将xi(n)经短时傅立叶变换得Xi(k)=STFT(xi(n)),然后根据公式得到的对数频谱序列

步骤S2:计算BPM特征值:由对数频谱序列计算出歌声信号的频谱通量SF(n),然后将其经过低通滤波平滑后作为端点强度曲线F(t);计算端点强度曲线的自相关序列TG(τ),并采用高斯窗函数对自相关序列进行加权,使TG(τ)取最大值的τ即为节拍周期,根据公式BPM=60*fs/hop*τmax计算得到BPM特征值。

步骤S3:计算平均节拍:每2秒计算提取一个歌声信号的BPM特征值,整段时间信号的BPM特征值序列的平均值即为

步骤S4:计算延迟量:若根据式计算和声声部延迟量delay,否则说明BPM特征值超出处理范围不作处理。

步骤S5:生成和声声部:采用稳定音色的音高转换方法,复制原信号并将其音高提升为不完全协和的三度音程,即音高为原来的2^(3/12)或2^(4/12)倍,通过延时器得到相对主声部延时delay的和声声部信号h(n)。

步骤S6:线性比例叠加:根据公式y(n)=x(n)+k*h(n),将原声部x(n)与和声声部h(n)线性叠加输出y(n)即为所生成的演唱和声。其中,k为干湿比,取k=0.8能够获得更好的效果。

以上是本发明的较佳实施例,凡依本发明技术方案所作的改变,所产生的功能作用未超出本发明技术方案的范围时,均属于本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1