发明内容
本发明的主要目的在于提供一种声音信号的谐波生成方法、设备、装置及存储介质,旨在解决现有的谐波生成方法无法在谐波畸变控制的同时,兼顾谐波生成的实时性的问题。
为实现上述目的,本发明提供一种声音信号的谐波生成方法,所述声音信号的谐波生成方法包括:
获取声音信号的中低频分量;
对所述中低频分量进行变换处理,得到中低频段各频点的相位值与幅度值;
基于所述中低频段各频点的幅度值,得到基频点的幅度值与频率值;
基于所述基频点的频率值,获取倍频点在频谱图上的位置,进而确定所述倍频点的相位值与幅度值;
对所述倍频点的相位值与幅度值进行处理,得到初始谐波信号;
对所述初始谐波信号进行带通滤波,得到目标谐波信号,以实现高实时性的得到声音信号中的目标谐波信号。
可选地,所述对所述中低频分量进行变换处理,得到中低频段各频点的相位值与幅度值,包括:
对所述中低频分量进行傅里叶变换处理,得到所述中低频分量对应的频域表达式;
基于所述中低频分量对应的频域表达式,得到所述中低频分量的频谱图;
基于所述中低频分量的频谱图,得到中低频段各频点的相位值与幅度值。
可选地,所述基于所述中低频段各频点的幅度值,得到基频点的幅度值与频率值,包括:
对所述中低频段各频点的幅度值进行大小排列,得到幅度值序列;
将所述幅度值序列中的最大幅度值作为基频点的幅度值;
基于所述基频点的幅度值,将所述频谱图中所述最大幅度值对应频点的频率值作为基频点的频率值。
可选地,所述对所述倍频点的相位值与幅度值进行处理,得到初始谐波信号,包括:
将所述倍频点以及倍频点前后一个频点的幅度值替换成基频点以及基频点前后一个频点的幅度值,得到调整后的倍频点的幅度值、调整后的前一频点的幅度值以及调整后的后一频点的幅度值;
将倍频点前后一个频点的相位值进行调整,得到调整后的前一频点的相位值和调整后的后一频点的相位值;
根据所述调整后的倍频点的幅度值、调整后的前一频点的幅度值以及调整后的后一频点的幅度值,调整后的前一频点的相位值以及调整后的后一频点的相位值得到频点数据序列;
对所述频点数据序列进行傅里叶逆变换,得到初始谐波信号。
可选地,将倍频点的频点幅度值替换成基频点的频点幅度值;
将倍频点的前一个频点幅度值替换成基频点的前一个频点的幅度值;
将倍频点的后一个频点幅度值替换成基频点的后一个频点的幅度值。
可选地,所述将倍频点前后一个频点的相位值进行调整,得到调整后的前一频点的相位值和调整后的后一频点的相位值,包括:获取前一帧中倍频点的相位值、倍频点前一频点以及倍频点后一频点的相位值;
获取当前帧中倍频点的相位值、倍频点前一频点以及倍频点后一频点的相位值;
将当前帧中倍频点的相位值与前一帧中倍频点的相位值相减,得到目标相位差值;
将所述前一帧中倍频点前一个频点的相位值与目标相位差值相加的结果,作为调整后的前一频点的合成相位值;
将所述前一帧中倍频点后一个频点的相位值与目标相位差值相加的结果,得到调整后的后一频点的合成相位值。
可选地,所述获取声音信号的中低频分量包括:
获取输入信号;
对所述输入信号进行低通滤波,得到中低频分量,其中,所述中低频分量至少包括基频信号分量与一个基频点临近的倍频点信号分量。
此外,为实现上述目的,本发明还提出一种声音信号的谐波生成装置,所述声音信号的谐波生成装置包括:
获取模块,用于获取声音信号的中低频分量;
变换模块,用于对所述中低频分量进行变换处理,得到中低频段各频点的相位值与幅度值;
所述获取模块,还用于基于所述中低频段各频点的幅度值,得到基频点的幅度值与频率值;
所述获取模块,还用于基于所述基频点的频率值,确定倍频点在频谱图上的位置,进而确定倍频点的相位值与幅度值;
处理模块,用于对所述倍频点的相位值与幅度值进行处理,得到初始谐波信号;
带通滤波模块,用于对所述初始谐波信号进行带通滤波,得到目标谐波信号,以实现高实时性的得到声音信号中的目标谐波信号。
此外,为实现上述目的,本发明还提出一种声音信号的谐波生成设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的声音信号的谐波生成程序,所述声音信号的谐波生成程序配置为实现所述的声音信号的谐波生成方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有声音信号的谐波生成程序,所述声音信号的谐波生成程序被处理器执行时实现所述的声音信号的谐波生成方法的步骤。
本发明通过获取声音信号的中低频分量,然后提取中低频段各频点特征值,通过特征值确定相关频点,并对相关频点的特征值进行调整,经过计算和滤波得到目标谐波。整个过程仅需一次采样,同时减少了计算量与时间,提高了实时性。调整参与计算的特征值能有效控制谐波畸变,实现了在谐波生成中对谐波畸变控制,同时提高谐波生成的实时性。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的声音信号的谐波生成设备结构示意图。
如图1所示,该声音信号的谐波生成设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对声音信号的谐波生成设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及声音信号的谐波生成程序。
在图1所示的声音信号的谐波生成设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明声音信号的谐波生成设备中的处理器1001、存储器1005可以设置在声音信号的谐波生成设备中,所述声音信号的谐波生成设备通过处理器1001调用存储器1005中存储的声音信号的谐波生成程序,并执行本发明实施例提供的声音信号的谐波生成方法。
实施例1:
参照图2,图2为本发明声音信号的谐波生成方法实施例1的流程示意图。
在本实施例中,所述声音信号的谐波生成方法包括以下步骤:
步骤S10:获取声音信号的中低频分量。
需要说明的是,本实施例中的执行主体可为声音信号的谐波生成设备,还可为其他可实现相同或相似功能的设备,本实施例对此不作限制,在本实施例中,以谐波生成设备为例进行说明。
可以理解的是,中低频分量是输入信号流入低通滤波器,滤除高频信号分量后,低通滤波器输出端产生的信号。
应当理解的是,由于谐波生成设备都应配备低通滤波器,可对输入信号进行滤波处理,且输入信号流入低通滤波器前,可根据实际需要,对低通滤波器的参数进行调制,调整流出低通滤波器的中低频分量的频率范围。
可选地,获取声音信号的中低频分量的步骤具体包括:获取输入信号;对所述输入信号进行低通滤波,得到中低频分量,其中,所述中低频分量至少包括基频信号分量与一个基频点临近的倍频点信号分量。
需要说明的是,本方法在具体实施中,如果设置的低通滤波阈值比输入信号的基频还低,那么滤波器将会将所有频率高于该阈值的分量都滤除,包括基频和所有谐波倍频,这意味着输出滤波器的信号中将得不到任何信号分量。
可以理解的是,因为低通滤波器被设计用来通过低于一定频率的信号,而抑制高于该频率的信号,如果滤波器的截止频率低于信号的基频,那么整个信号将被滤除,因为整个信号的频谱都位于滤波器截止频率以上,所以,如果滤波器的阈值比基频还低,将无法得到任何有效的信号分量。
需要说明的是,根据一般普遍的认识,人类可以听见的声音信号频率范围约为20Hz到20,000 Hz(或20 kHz)。这意味着,正常的听觉范围大约在这个频率范围内,并且可以依据下列示例简初步划分中低频的具体频率范围。
下面是一些常见声音频率以及对应基频的示例:
20 Hz以下:人类通常无法感知这些低频声音,但可以感觉到它们的震动,在这个范围内,基频可能是几个赫兹,具体取决于声音的性质和来源。例如,地震或低音乐器如大贝斯的基频可能在数个赫兹左右。
20 Hz到200 Hz:这是低音频范围,如低音音乐和重型机械的声音,在低音频范围中,基频通常在20 Hz左右,与人类能感知的最低频率相对应。例如,低音鼓的基频一般在约30-80 Hz之间。
200 Hz到2 kHz:这是中音频范围,包括大多数人的说话声音和乐器的声音,在中音频范围中,基频通常在200 Hz左右。大多数人的说话声音的基频大约在100-200 Hz之间。
2 kHz到20 kHz:这是高音频范围,包括大多数鸟类的鸣叫声、金属撞击声和尖锐的哨声,在高音频范围中,基频通常在2 kHz左右。例如,大多数鸟类的鸣叫声的基频可能在几千赫兹左右。
应当理解的是,这些基频范围是基于常见声音的一般规律,并不适用于所有声音。具体声音的基频范围可能会根据其来源、性质和其他因素而有所不同。
需要说明的是,该方法的后续步骤中会使用到包括基频信号分量与一个基频点临近的倍频点信号分量,所以在低通滤波后得到的中低频分量中应至少保留这部分的信号,则应对低通滤波器的具体参数有一定的要求,例如低通滤波器的截止频率应当存在一个下限值,以保证得到的中低频分量包含后续步骤中所需要的信号分量。
应当理解的是,预设的目标谐波信号的部分信息是已知的,例如,在实际场景中,需要一段声音信号中的二倍基频的声音信号分量,则目标谐波信号的频率是基频的两倍,根据已有的声音信号,通过播放时的实际感受,可以根据上述举例大致推断出该声音信号基频所在的范围,间接得到目标谐波信号所在的范围,结合这两个范围可以确定低通滤波器的截止频率的大致范围,以确保滤波器的截止频率设置的适当,以保留所需的信号分量的同时抑制不需要的高频分量。根据需求相应地调整滤波器的相关参数,以获得合理的中低频分量。
步骤S20:对所述中低频分量进行变换处理,得到中低频段各频点的相位值与幅度值。
需要说明的是,此处的变换处理,既可以是基于傅里叶变换进行的变换处理,也可以是基于拉普拉斯变换进行的变换处理,还可为其他可实现相同或相似功能的信号时频分析的变换处理,本实施例对此不做限制。
可以理解的是,对中低频分量进行变换处理后得到的是得到一组复数值,其中每个复数表示了中低频分量在不同频率上的振幅和相位信息。这组复数值可以表示为频谱图或频谱矩阵,其中横轴表示频率值,纵轴表示幅度值,其中,频点的相位值是对应复数值的角度。
可以理解的是,中低频分量是输入信号被采样并转换成离散样本时,经过低通滤波器后,样本中频率较低、振动周期较长或变化较慢的部分。中低频分量可以是具有较大振幅的信号,也可以是具有较小振幅的信号。因此,中低频分量的幅度不一定较低,而是指其对应的频率相对整个输入信号的其他组成部分的频率较低。
步骤S30:基于所述中低频段各频点的幅度值,得到基频点的幅度值与频率值。
需要说明的是,由于基频点是指信号中的基本频率或最低频率成分,基频点通常在能量分布上表现为一个明显的峰值。在频谱或能谱图上,基频点对应的频率位置上会有较高的能量集中,形成一个突出的峰值。所以根据频谱图的频率分布,可以直接得到中低频段各频点对应的频谱图,根据坐标轴对应的幅度值,幅度值最大的点对应的就是基频点。
可以理解的是,根据找到的基频点在频谱图上的位置,可以确定基频点的横纵坐标,其中横坐标对应的是基频点的频率值,纵坐标对应的是基频点的幅度值。
步骤S40:基于所述基频点的频率值,获取倍频点在频谱图上的位置,进而确定所述倍频点的相位值与幅度值。
需要说明的是,由于倍频点与基频点在频率上是整倍数的关系,所以当确定了基频点的频率值就可以根据需要,相应确定二倍频点、三倍频点或者任意所需要的具体倍数的倍频点频率值,由于频点对应的频谱图,可以坐标轴中横坐标对应的频率值确定纵坐标的幅度值,所以当已知倍频点频率值时,进而可以确定倍频点的幅度值。由于在前面的步骤中,已经事先确定了每个频点的相位值与幅度值,当倍频点在频谱图上的位置确定时,即可直接确定倍频点的相位值。
步骤S50:对所述倍频点的相位值与幅度值进行处理,得到初始谐波信号。
需要说明的是,基于基频点的频率值,得到倍频点的频率值,对所述倍频点的相位值与幅度值进行处理,其中处理的对象是倍频点的相位值、倍频点的幅度值,对这些频点进行调整,调整它们的相位值与幅度值将有利于后续步骤中计算结果的保真度和对生成的谐波畸变的控制。
需要说明的是,对倍频点的幅度值和相位值的处理方式,包括对目标数值的替换,增加,减少,信号变换等操作,将处理后的数据作为后续参与计算的频点特征值。
可以理解的是,处理方式为替换的数据,其物理特征依然不变,例如,对频点的相位值数据进行调整,调整结果依然为相位值,并作为该频点的新相位值以供后续计算与处理,同理,对频点的幅度值的调整,其调整结果依然为幅度值。
需要说明的是,对所述倍频点的相位值与幅度值进行处理,得到的处理的结果指的是一段包含基频信号,目标谐波信号以及其他频段信号的初始谐波信号。
步骤S60:对所述初始谐波信号进行带通滤波,得到目标谐波信号。
需要说明的是,带通滤波的目的是为了滤除初始谐波信号中可能存在的基频信号分量和高频信号分量,对应的在具体实施中,根据目标谐波信号的特征值和前面步骤中得出的基频的频率值,可以对执行带通滤波功能的装置或设备进行适当调制,使得带通滤波得到的目标谐波信号的谐波畸变得到控制,以提高目标谐波信号的质量。
可以理解的是,目标谐波信号的信号类型与输入信号的信号类型相同,例如,当输入信号为一声音信号时,经过上述步骤后,得出的目标谐波信号依然为声音信号,也就是说,该方法的谐波生成,不会改变输入信号的信号类型。
在本实施例中通过获取声音信号中的特征值,通过特征值确定相关频点,并对相关特征值进行调整,经过计算和滤波得到目标谐波。整个过程仅需一次采样,同时减少了计算量与时间,提高了实时性。调整参与计算的特征值能有效控制谐波畸变,实现了在谐波生成中对谐波畸变控制,同时提高谐波生成的实时性。
实施例2:
参照图3,图3为本发明声音信号的谐波生成方法实施例2的流程示意图。
基于上述实施例1,本实施例的声音信号的谐波生成方法,所述步骤S20,包括:
步骤S201:对所述中低频分量进行傅里叶变换处理,得到所述中低频分量对应的频域表达式。
需要说明的是,傅里叶变换是一种数学变换,它将一个函数从时域转换到频域。通过傅里叶变换,我们可以将一个信号分解成一系列不同频率的正弦和余弦函数的叠加。傅里叶变换可以用于分析信号的频谱特性,从中得到信号中存在的频率成分以及它们的强度。这对于许多应用来说是非常有用的,比如音频信号处理、图像处理、通信系统等。
可以理解的是,经傅里叶变换得到的一系列不同频率的正弦和余弦函数的叠加即为中低频分量对应的频域表达式。
步骤S202:基于所述中低频分量对应的频域表达式,得到所述中低频分量的频谱图。
可以理解的是,根据中低频分量的频域表达式,以频率值为横坐标轴,幅度值为纵坐标,即可绘制出中低频分量的频谱图;
需要说明的是,中低频分量的频谱图在坐标系上的表示为一连串离散的点,每个点的横纵坐标值都满足中低频分量的频域表达式。
步骤S203:基于所述中低频分量的频谱图,得到中低频段各频点的相位值与幅度值。
需要说明的是,中低频分量中的每一个频点都包含自身的幅度值与频率值,频点本身的相位值不直接表达出来,可通过一定的计算得出,下面举出一个计算方法:
假设我们有一个频域信号 X,它是由 N 个复数值组成(X[0], X[1], …, X[N-1]),其中,X[k]表示在第 k 个频率点的振幅和相位信息;
首先,我们可以计算每个频率点的频率值:
频率值[k] = k / N * Fs;
其中,k 表示当前频点的索引值(0<= k<= N-1),N 表示总样本数,Fs 表示采样率;
然后,我们可以计算每个频率点的相位值:
相位值[k] = atan2(imag(X[k]), real(X[k]));
其中,real(X[k]) 表示第 k 个频点的实部,imag(X[k]) 表示第 k 个频点的虚部。
上述举例的计算方法将计算频域信号中每个频率点的相位值,并将其存储在相位值数组中,每一个频点的频率值对应一个相位值。
可以理解的是,每一个频点的纵坐标即为频点的幅度值,可直接从该频点在频谱图上的位置直接得出该频点的幅度值。
需要说明的是,上述步骤中的获取频点的相位值和幅度值的过程,针对的都是中低频段各频点,得到的是中低频段各频点的相位值与幅度值。
实施例3:
参照图4,图4为本发明声音信号的谐波生成方法实施例3的流程示意图。
基于上述实施例1,本实施例的声音信号的谐波生成方法,所述步骤S30,包括:
步骤S301:对所述中低频段各频点的幅度值进行大小排列,得到幅度值序列。
需要说明的是,幅度值序列中可能出现相同的幅度值形成并列排列,相同的幅度值不分顺序,为同一顺序位。
步骤S302:将所述幅度值序列中的最大幅度值作为基频点的幅度值。
需要说明的是:这是由于基频点是周期性重复信号的主要成分。对于周期性信号而言,信号的振幅在基频点上有最大的偏移,并且通过不同谐波分量的叠加而形成周期性重复的形状。因此,基频点对应的频率分量通常具有最高的幅度。
步骤S303:基于所述基频点的幅度值,将所述频谱图中所述最大幅度值对应频点的频率值作为基频点的频率值。
可以理解的是:频谱图中,幅度值对应的是纵坐标,最大幅度值对应的频点就是基频点的频率值,同时对应的纵坐标就是基频点的幅度值。
实施例4:
参照图5,图5为本发明声音信号的谐波生成方法实施例4的流程示意图。
基于上述实施例1,本实施例的声音信号的谐波生成方法,所述步骤S50,包括:
步骤S501:将所述倍频点以及倍频点前后一个频点的幅度值替换成基频点以及基频点前后一个频点的幅度值,得到调整后的倍频点的幅度值、调整后的前一频点的幅度值和调整后的后一频点的幅度值。
需要说明的是,对倍频点的前一频点幅度值替换为基频点的前一频点幅度值,对倍频点的后一频点幅度值替换为基频点的后一频点幅度值,其中的前一频点和后一频点都指的是离对应频点最近的一个频点,例如,基频点与基频点的前一频点之间没有其他频点。
需要说明的是,上述的替换对象的替换关系为一一对应的,对倍频点的幅度值替换,替换的结果是基频点的幅度值,对倍频点的前一频点的幅度值替换,替换的对象是基频点前一频点的幅度值,对倍频点的后一频点的幅度值替换,替换的对象是基频点后一频点的幅度值。
可选地,将倍频点的频点幅度值替换成基频点的频点幅度值;将倍频点的前一个频点幅度值替换成基频点的前一个频点的幅度值;将倍频点的后一个频点幅度值替换成基频点的后一个频点的幅度值。
步骤S502:将倍频点前后一个频点的相位值进行调整,得到调整后的前一频点的相位值和调整后的后一频点的相位值。
需要说明的是,对倍频点前后一个频点的相位值进行调整,是基于倍频点的相位变化进行的,根据倍频点的相位变化调整倍频点的前后频点的相位值,使倍频点的前后频点与倍频点的相位变化相同。
进一步的,所述将倍频点前后一个频点的相位值进行调整,得到调整后的前一频点的相位值和调整后的后一频点的相位值,包括:获取前一帧中倍频点的相位值、倍频点前一频点以及倍频点后一频点的相位值;获取当前帧中倍频点的相位值、倍频点前一频点以及倍频点后一频点的相位值;将当前帧中倍频点的相位值与前一帧中倍频点的相位值相减,得到目标相位差值;将所述前一帧中倍频点前一个频点的相位值与目标相位差值相加的结果,作为调整后的前一频点的合成相位值;将所述前一帧中倍频点后一个频点的相位值与目标相位差值相加的结果,作为调整后的后一频点的合成相位值。
需要说明的是,在对中低频分量做傅里叶变换的阶段,可以得到中低频段各频点相位,得到的相位值可以作为各频点的分析相位,基于中低频段各频点的相位值,可以确定当前帧和上一帧里,倍频点相位值、倍频点前一个频点的相位值以及倍频点后一个频点的相位值,当前帧信号各频点分析相位与上一帧信号各频点分析相位在每一个频点的预期相位变化与频点索引值成正比,也就是预期相位变化为固定值;当前帧信号各频点分析相位与上一帧信号各频点分析相位对应相减,可以得到各频点实际相位变化。
可以理解的是,频谱泄露导致在每一个频点的实际相位变化与预期相位变化之间存在偏差,各频点实际相位变化与各频点预期相位变化对应相减,可以得到各频点相位偏差,将各频点相位偏差与各频点预期相位变化对应相加,即可得到各频点相位增量。
可以理解的是,在合成阶段将信号还原至时域时,上一帧信号各频点合成相位与各频点相位增量对应相加,可以得到当前帧信号各频点合成相位,当前帧信号在倍频点的合成相位减去当前帧信号在倍频点的分析相位,即可得到目标相位差值;将当前帧倍频点前一个频点和后一频点的分析相位值与目标相位差值分别相加,可以得到调整后的前一频点的合成相位值与后一频点的合成相位值。
步骤S503:根据所述调整后的倍频点的幅度值、调整后的前一频点的幅度值、调整后的后一频点的幅度值,调整后的前一频点的相位值以及调整后的后一频点的相位值得到频点数据序列。
需要说明的是,根据调整后的倍频点的幅度值、调整后的前后一频点的幅度值和相位值,生成频点数据,包括频点的幅度值和相位值,将频点数据序列按照频率从低到高的顺序排列,这样就得到了频点数据序列;
应当理解的是,频点数据序列至少包含的数据为调整后的倍频点的幅度值、调整后的倍频点前后一频点的幅度值和相位值、倍频点的相位值以及基频点和基频点前后一个频点的相位值与幅度值;
可以理解的是,频点数据序列与倍频点数量有直接关系,例如,频点数据序列对应每一个倍频点将有以下相关数据:调整后的倍频点的幅度值、调整后的前一频点的幅度值、调整后的后一频点的幅度值,倍频点的相位值、调整后的前一频点的相位值以及调整后的后一频点的相位值。
步骤S504:对所述频点数据序列进行傅里叶逆变换,得到初始谐波信号。
需要说明的是,所述初始谐波信号中除了包含了目标谐波信号部分,还包括基频信号部分和非必要的低频部分,以及噪音信号部分,后续可通过滤波等信号处理进行过滤,输出纯净的目标谐波信号。
本实施例中通过在信号处理层面上改变了谐波信号的幅度和相位等特性,以使参与运算的声音信号表现在频谱上呈现更均衡、谐波结构更丰富等特点,从而改善声音信号的质量和感知效果,有效控制了谐波畸变。
参照图6,图6为本发明声音信号的谐波生成装置实施例1的结构框图。
如图6所示,本发明实施例提出的声音信号的谐波生成装置包括:
获取模块10,用于获取声音信号的中低频分量。
变换模块20,用于对所述中低频分量进行变换处理,得到中低频段各频点的相位值与幅度值。
所述获取模块10,还用于基于所述中低频段各频点的幅度值,得到基频点的幅度值与频率值。
处理模块30,用于基于所述基频点的频率值,得到倍频点的频率值;对所述倍频点的相位值与幅度值进行处理,得到初始谐波信号。
带通滤波模块40,用于对所述初始谐波信号进行带通滤波,得到目标谐波信号,以实现高实时性的得到声音信号中的目标谐波信号。
本实施例在进行声音信号的谐波生成时,获取声音信号的中低频分量;对所述中低频分量进行变换处理,得到中低频段各频点的相位值与幅度值;基于所述中低频段各频点的幅度值,得到基频点的幅度值与频率值;基于所述基频点的频率值,得到倍频点的频率值;对所述倍频点的相位值与幅度值进行处理,得到初始谐波信号;对所述初始谐波信号进行带通滤波,得到目标谐波信号,以实现高实时性的得到声音信号中的目标谐波信号。
在一实施例中,所述变换模块20,还用于对所述中低频分量进行傅里叶变换处理,得到所述中低频分量对应的频域表达式;基于所述中低频分量对应的频域表达式,得到所述中低频分量的频谱图;基于所述中低频分量的频谱图,得到中低频段各频点的相位值与幅度值。
在一实施例中,所述获取模块10,还用于对所述中低频段各频点的幅度值进行大小排列,得到幅度值序列;将所述幅度值序列中的最大幅度值作为基频点的幅度值;基于所述基频点的幅度值,将所述最大幅度值对应的频点的频率作为基频点的频率值。
在一实施例中,所述处理模块30,还用于基于所述基频点的频率值,得到倍频点;将所述倍频点以及倍频点前后一个频点的幅度值替换成基频点以及基频点前后一个频点的幅度值,得到调整后的倍频点的幅度值、调整后的前一频点的幅度值以及调整后的后一频点的幅度值;将倍频点前后一个频点的相位值进行调整,得到调整后的前一频点的相位值和调整后的后一频点的相位值;根据所述调整后的倍频点的幅度值、调整后的前一频点的幅度值以及调整后的后一频点的幅度值,调整后的前一频点的相位值以及调整后的后一频点的相位值得到频点数据序列;对所述频点数据序列进行傅里叶逆变换,得到初始谐波信号。
在一实施例中,所述处理模块30,还用于将倍频点的频点幅度值替换成基频点的频点幅度值;将倍频点的前一个频点幅度值替换成基频点的前一个频点的幅度值;将倍频点的后一个频点幅度值替换成基频点的后一个频点的幅度值。
在一实施例中,所述处理模块30,还用于获取前一帧中倍频点的相位值、倍频点前一频点以及倍频点后一频点的相位值;获取当前帧中倍频点的相位值、倍频点前一频点以及倍频点后一频点的相位值;将当前帧中倍频点的相位值与前一帧中倍频点的相位值相减,得到目标相位差值;将所述前一帧中倍频点前一个频点的相位值与目标相位差值相加的结果,作为调整后的前一频点的合成相位值;将所述前一帧中倍频点后一个频点的相位值与目标相位差值相加的结果,作为调整后的后一频点的合成相位值。
在一实施例中,所述获取模块10,还用于获取输入信号;对所述输入信号进行低通滤波,得到中低频分量,其中,所述中低频分量至少包括基频信号分量与一个基频点临近的倍频点信号分量。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有声音信号的谐波生成程序,所述声音信号的谐波生成程序被处理器执行时实现如上文所述的声音信号的谐波生成方法的步骤。
由于本存储介质采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的声音信号的谐波生成方法,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还 包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、 方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述 实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通 过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体 现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光 盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。