一种声音粒子合成方法及装置与流程
本发明涉及数字信号处理技术领域,尤其涉及一种声音粒子合成方法及装置。
背景技术:
汽车产业已进入内涵式发展的稳健时期,当汽车各个系统的nvh(noise、vibration、harshness,噪声、振动与声振粗糙度)问题得到改善后,人们更加注重噪声对乘坐人员的主观感受的影响,突出体现为“从静音到声品质”的变革。asd(activesounddesign,主动声音设计)是一种通过主动发声的形式来满足驾乘者“声趣”的体验和提高车内声品质目标要求的手段。目前主要从声音设计、声音合成算法以及主动发声控制系统三大部分对asd技术开展研究。
其中,声音合成算法是保证目标声音播放连贯性的关键,当前针对车内声音合成算法主要包括谐波算法与粒子算法,其中谐波算法是通过设定输入信号(如转速)与合成阶次声幅值与频率的函数关系,以此合成阶次声;粒子算法则是将录制好的声音样本切割成小的声音粒子,根据工况输入读取对应样本,并进行声音粒子的拼接,从而播放出随工况变化的声音。
声音粒子算法和谐波算法相比,能够高度还原原始声音的声音品质。为了满足顾客多元化车内声音需求、声音粒子算法成为最有效的声音合成方案之一。声音粒子在拼接过程中的连贯性,是保证合成音声品质的关键,但通常情况下声音粒子在拼接处会产生“阶跃”现象,导致合成音频声中参杂“爆音”,使得合成音不够连续自然。
技术实现要素:
本申请实施例通过提供一种声音粒子合成方法及装置,解决了现有技术中声音粒子在拼接处会产生“阶跃”现象,导致合成音频声中参杂“爆音”,使得合成音不够连续自然的问题。
本申请实施例提供一种声音粒子合成方法,包括以下步骤:
步骤1、采集原始声音样本;
步骤2、根据所述原始声音样本,构建声音粒子样本库,并添加声音粒子的索引;
步骤3、根据车况输入信息,基于所述声音粒子的索引读取所述声音粒子样本库中的声音粒子;
步骤4、根据所述索引读取的声音粒子,构建过渡音频;通过所述过渡音频拼接相邻的声音粒子,合成目标声音样本。
优选的,所述步骤1的实现方式为:选取目标车型,录制所述目标车型对应的音频信号作为所述原始声音样本;
其中,所述音频信号包括但不限于发动机声音信息。
优选的,所述步骤2的实现方式为:根据所述原始声音样本,定位截取标记点并提取声音粒子,构建所述声音粒子样本库;
其中,所述声音粒子样本库中的声音粒子的首尾相位均为0。
优选的,所述步骤2中,所述添加声音粒子的索引的实现方式为:提取所述声音粒子样本库中的声音粒子片段,并将其顺序摆放;对每个声音粒子进行编号,并制成一个索引数组;
所述步骤3中,根据车况输入信息获得对应的声音粒子的索引号,并根据索引号读取所述声音粒子样本库中的声音粒子;所述车况输入信息包括但不限于发动机转速信息、车速信息、扭矩信息。
优选的,所述步骤4中,根据所述索引读取的声音粒子,构建过渡音频拼接相邻的声音粒子;其中,将音频信号和希尔伯特变换的函数表达式进行类比,得到音频信号函数表达式;
通过埃尔米特插值算法得到过渡音频的相位信息、频率信息,通过插值算法得到幅值信息;
根据所述音频信号函数表达式,以及所述过渡音频的相位信息、频率信息、幅值信息,构建所述过渡音频。
优选的,所述音频信号函数表达式y(t)如下:
y(t)=a(t)sin(φ(t))
式中,a(t)为音频信号的瞬时幅值、φ(t)为音频信号的瞬时相位、
优选的,所述通过埃尔米特插值算法得到过渡音频的相位信息的实现方式为:
设相邻的声音粒子分别为声音粒子i、声音粒子i+1,则用于拼接所述声音粒子i和所述声音粒子i+1的过渡音频记为过渡音频i;
拼接后得到的合成音的瞬时相位曲线连续可导;
其中,所述声音粒子i对应的时间区间为ti~ti+1,所述声音粒子i在ti+1时刻的瞬时相位为φ(ti+1);所述声音粒子i+1对应的时间区间为ti+2~ti+3,所述声音粒子i+1在ti+2时刻的瞬时相位为φ(ti+2);
所述过渡音频i对应的时间区间为ti+1~ti+2;所述过渡音频i的左端点为所述声音粒子i在ti+1时刻的音频信号,所述过渡音频i的右端点为所述声音粒子i+1在ti+2时刻的音频信号;
所述声音粒子i在ti+1时刻的瞬时相位的积分常数为c1;所述声音粒子i+1在ti+2时刻的瞬时相位的积分常数为c2;
预设ti为0,c1=0,根据所述过渡音频i左端点的瞬时相位φ(ti+1)、左右端点瞬时相位的一阶导数
φ(t)=at4+bt3+ct2+dt+e
式中,a、b、c、d、e为待求的多项式系数;
采用第一插值条件,得到第一线性方程组表示为:
其中,rank(a|y)=rank(a)=5,则埃尔米特插值的多项式系数有唯一解,可得过渡音频相位的表达式φ(t),同时求得c2=2π*φ(ti+2);
根据所述第一插值条件求得的c2得到的sin(c2)不为0时,采用第二插值条件替换所述第一插值条件,采用第二线性方程组替换所述第一线性方程组;所述第二线性方程组表示为:
其中,rank(a|y)=rank(a)<5,则插值系数向量x有无数解,从中获取一个满足sin(c1)=0且sin(c2)=0的过渡音频相位的表达式φ(t)。
优选的,所述过渡音频的频率信息满足以下约束条件:
所述过渡音频的频率介于左右两端点的频率之间;
所述过渡音频的频率单调。
优选的,所述过渡音频的幅值满足连续条件;根据所述声音粒子i和所述声音粒子i+1在拼接点处的幅值a(ti+1)和a(ti+2),插值得到所述过渡音频的幅值信息。
本申请实施例提供一种声音粒子合成装置,包括:
采集单元,用于采集获取原始声音样本;
声音粒子样本库构建单元,用于根据所述原始声音样本,得到声音粒子样本库;
索引单元,用于基于所述声音粒子样本库,得到声音粒子的索引;
声音粒子读取单元,用于根据车况输入信息,基于所述声音粒子的索引读取所述声音粒子样本库中的声音粒子;
过渡音频构建单元,用于根据所述索引读取的声音粒子,得到过渡音频;
目标声音样本合成单元,用于通过所述过渡音频拼接相邻的声音粒子,合成得到目标声音样本;
所述声音粒子合成装置用于实现上述声音粒子合成方法。
本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
在本申请实施例中,首先采集原始声音样本,然后根据原始声音样本构建声音粒子样本库,并添加声音粒子的索引,接着根据车况输入信息,基于声音粒子的索引读取声音粒子样本库中的声音粒子,之后根据索引读取的声音粒子,构建过渡音频,并通过过渡音频拼接相邻的声音粒子,合成目标声音样本。本发明通过构建过渡音频拼接相邻声音粒子,实现声音粒子的拼接自然,解决了现有声音粒子拼接过程中出现的“阶跃”现象,避免合成音中的“爆音”出现,保证了合成音的连贯性,满足对目标声品质的要求。
附图说明
为了更清楚地说明本实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一个实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种声音粒子合成方法的流程图;
图2为本发明实施例提供的一种声音粒子合成方法的示意图;
图3为本发明实施例提供的一种声音粒子合成方法中通过“过渡音频”拼接相邻声音粒子的示意图;
图4为直接拼接相邻声音粒子的合成音的频谱图;
图5为利用“过渡音频”为桥梁拼接相邻声音粒子的合成音的频谱图。
其中,1-声音粒子1、2-过渡音频1、3-声音粒子2、4-过渡音频2、5-声音粒子3。
具体实施方式
本实施例提供一种声音粒子合成方法,包括以下步骤:
步骤1、采集原始声音样本。
具体的,选取目标车型,录制所述目标车型对应的音频信号作为所述原始声音样本。其中,所述音频信号包括但不限于发动机声音信息。
步骤2、根据所述原始声音样本,构建声音粒子样本库,并添加声音粒子的索引。
具体的,根据所述原始声音样本,定位截取标记点并提取声音粒子,构建所述声音粒子样本库。其中,所述声音粒子样本库中的声音粒子的首尾相位均为0。
所述添加声音粒子的索引的一种实现方式为:提取所述声音粒子样本库中的声音粒子片段,并将其顺序摆放;对每个声音粒子进行编号,并制成一个索引数组。
步骤3、根据车况输入信息,基于所述声音粒子的索引读取所述声音粒子样本库中的声音粒子。
具体的,根据车况输入信息获得对应的声音粒子的索引号,并根据索引号读取所述声音粒子样本库中的声音粒子。所述车况输入信息包括但不限于发动机转速信息、车速信息、扭矩信息。
步骤4、根据所述索引读取的声音粒子,构建过渡音频;通过所述过渡音频拼接相邻的声音粒子,合成目标声音样本。
具体的,根据所述索引读取的声音粒子,构建过渡音频拼接相邻的声音粒子。其中,将音频信号和希尔伯特变换的函数表达式进行类比,得到音频信号函数表达式。通过埃尔米特插值算法得到过渡音频的相位信息、频率信息、幅值信息。根据所述音频信号函数表达式,以及所述过渡音频的相位信息、频率信息、幅值信息,构建所述过渡音频。
其中,所述音频信号函数表达式y(t)如下:
y(t)=a(t)sin(φ(t))
式中,a(t)为音频信号的瞬时幅值、φ(t)为音频信号的瞬时相位、
所述通过埃尔米特插值算法得到过渡音频的相位信息的实现方式为:设相邻的声音粒子分别为声音粒子i、声音粒子i+1,则用于拼接所述声音粒子i和所述声音粒子i+1的过渡音频记为过渡音频i;拼接后得到的合成音的瞬时相位曲线连续可导。
其中,所述声音粒子i对应的时间区间为ti~ti+1,所述声音粒子i在ti+1时刻的瞬时相位为φ(ti+1);所述声音粒子i+1对应的时间区间为ti+2~ti+3,所述声音粒子i+1在ti+2时刻的瞬时相位为φ(ti+2)。所述过渡音频i对应的时间区间为ti+1~ti+2;所述过渡音频i的左端点为所述声音粒子i在ti+1时刻的音频信号,所述过渡音频i的右端点为所述声音粒子i+1在ti+2时刻的音频信号。所述声音粒子i在ti+1时刻的瞬时相位的积分常数为c1;所述声音粒子i+1在ti+2时刻的瞬时相位的积分常数为c2。
预设ti为0,c1=0,根据所述过渡音频i左端点的瞬时相位φ(ti+1)、左右端点瞬时相位的一阶导数
φ(t)=at4+bt3+ct2+dt+e
式中,a、b、c、d、e为待求的多项式系数。
采用第一插值条件,得到第一线性方程组表示为:
其中,rank(a|y)=rank(a)=5,则埃尔米特插值的多项式系数有唯一解,可得过渡音频相位的表达式φ(t),同时求得c2=2π*φ(ti+2)。
根据所述第一插值条件求得的c2得到的sin(c2)不为0时,采用第二插值条件替换所述第一插值条件,采用第二线性方程组替换所述第一线性方程组;所述第二线性方程组表示为:
其中,rank(a|y)=rank(a)<5,则插值系数向量x有无数解,从中获取一个满足sin(c1)=0且sin(c2)=0的过渡音频相位的表达式φ(t)。
由于音频信号的瞬时频率是音频信号瞬时相位的导数,因此根据相位信息可以得到频率信息。此外,所述过渡音频的频率信息满足以下约束条件:所述过渡音频的频率介于左右两端点的频率之间;所述过渡音频的频率单调。
所述过渡音频的幅值满足连续条件;根据所述声音粒子i和所述声音粒子i+1在拼接点处的幅值a(ti+1)和a(ti+2),插值得到所述过渡音频的幅值信息。具体的,此处采用线性插值即可实现,根据两端点的幅值信息,插值得到过渡音频的幅值信息,合成音的幅值曲线仅需满足连续条件即可。
与上述合成方法对应,本实施例还提供一种声音粒子合成装置,包括:
采集单元,用于采集获取原始声音样本;
声音粒子样本库构建单元,用于根据所述原始声音样本,得到声音粒子样本库;
索引单元,用于基于所述声音粒子样本库,得到声音粒子的索引;
声音粒子读取单元,用于根据车况输入信息,基于所述声音粒子的索引读取所述声音粒子样本库中的声音粒子;
过渡音频构建单元,用于根据所述索引读取的声音粒子,得到过渡音频;
目标声音样本合成单元,用于通过所述过渡音频拼接相邻的声音粒子,合成得到目标声音样本;
所述声音粒子合成装置用于实现上述声音粒子合成方法。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
本实施例提供了一种声音粒子合成方法,如图1、图2所示,主要包括以下步骤:
步骤1、采集原始声音样本。
采集原始声音样本包括:针对顾客对声音品质的期望,选取市面上相匹配的车型作为目标车型,录制其车内或发动机声音。
一种具体的录制方法是:在发动机舱或车内合理布置一个微型传声器,然后挂空档运行发动机,缓慢踩下油门,让发动机转速从怠速缓慢加速到发动机能达到的最高转速,以获取足够长的声音样本用于声音样本库的制备。
步骤2、构建声音粒子样本库。
声音粒子样本库的制备包括:主谐波的提取、声音样本截取标记点的定位与选择以及声音粒子的提取。
主要技术要点包括时变窗函数的设计,以满足声音粒子切割大小随工况的变化,一旦从截取标记点列表中确定截取标记,将使用一个以截取标记为中心的时间窗来提取声音粒子。实现将录制好的音频信号切割成首尾相位均为0的声音粒子,并保存为声音粒子样本库。
步骤3、声音粒子的索引。
声音粒子的索引包括:提取声音粒子片段并将其顺序摆放,对每个声音粒子进行编号制成一个索引数组。并通过获得发动机转速、车速、扭矩等输入参数计算对应声音粒子的索引号,根据索引号读取声音样本库中的声音粒子。
步骤4、构建过渡音频、合成目标声音样本。
主要包括根据索引读取的声音粒子,构建过渡音频;通过过渡音频拼接相邻的声音粒子,合成目标声音样本。
例如,将声音粒子1、2、3用过渡音频1、2进行拼接,实现声音的合成,参看图3。
具体的,步骤4主要包括以下步骤:
(1)将音频信号和希尔伯特变换的函数表达式进行类比。
其中,希尔伯特变换(hilbert变换)可以实现将一个窄带的一维的信号解析成二维复平面上的信号,复数的模和幅角代表了信号的幅度和相位,对于一个实信号x(t),其hilbert变换为:
式中,*表示卷积运算,对应的解析信号为:
其中,对于载波频率为fs的窄带实信号x(t),利用所述的hilbert变换可以求解解析信号,从而得到信号瞬时振幅a(t)和瞬时相位
因此,所述解析信号可以重新表达为:
式中,
本发明根据上述对希尔波特变换的分析,将音频信号表达式和希尔伯特变换的解析式进行类比理解,设音频信号函数表达式为y(t),因此:
y(t)=a(t)sin(φ(t))
式中,c为积分常数、a(t)为音频信号的瞬时幅值(包络)、φ(t)为音频信号的瞬时相位、f(t)为音频信号的瞬时频率,t2-t1为音频信号的时长。
(2)利用埃尔米特插值算法插值出“过渡音频”的瞬时相位。
所述音频信号的瞬时频率为瞬时相位的导数。因此令时间t=0时,对应的相位为0,则当对相邻声音粒子进行拼接时,第一段声音粒子的瞬时相位的积分常数c1=0,频率积分可由matlab函数cumsum完成。但令时间t=t2时,第二段声音粒子的瞬时相位的积分常数c2则无法确定,且c2应保证相邻声音粒子的瞬时相位曲线拼接后连续可导。
具体的,根据所述的第二段声音粒子的瞬时相位的积分常数c2的求解方法:以“过渡音频”连接的形式保证拼接后的声音粒子的瞬时相位曲线均连续可导,所述“过渡音频”的瞬时相位可由埃尔米特插值法插值得到。
其中,根据所述的埃尔米特插值法:
假设我们已经得到了节点a≤x0<x1...<xn≤b,节点处的函数值h(xj)以及该点处的导数值h'(xj),则由这n+1个节点通过hermite插值一个2n+1次与原函数近似的多项式h2n+1(x)。
具体的,以“过渡音频”连接的形式,并利用埃尔米特插值法插值出“过渡音频”的瞬时相位求解方法包括:
已知待插区间左端点的数值、两端点的一阶导数、以及两端点的二阶导数、因此可利用四次埃尔米特插值法求解瞬时相位的表达式φ(t),设:
φ(t)=at4+bt3+ct2+dt+e
式中,a、b、c、d、e为待求的多项式系数,因此可得线性方程组:
其中,rank(a|y)=rank(a)=5,埃尔米特插值的多项式系数有唯一解,此时可得到过渡音频相位的表达式φ(t),同时求得c2=2π*φ(t2)。
某些情况下,根据所述的利用四次埃尔米特插值法求解求出的c2未必能保证sin(c2)=0。此时可以适当放宽埃尔米特插值系数方程组的插值条件,如去掉某个已知条件,则线性方程组变为:
具体的,此时rank(a|y)=rank(a)<5,则插值系数向量x有无数解,可从解中获取一个满足sin(c1)=0且sin(c2)=0要求的解(即得到过渡音频相位的表达式φ(t))。
注意到第二个声音粒子的相位信号的初始相位为0,需保证c2=2π*φ(t2)为π的整数倍,即φ(t2)∈n,n为整数。由
(3)根据音频信号函数表达式,利用插值得到的瞬时相位,构建“过渡音频”。
其中,根据所述的通过埃尔米特插值求出“过渡音频”的瞬时相位,并利用音频信号函数表达式y(t)=a(t)sin(φ(t))构建“过渡音频”。
此外,为保证过渡段频率不发生突变,优选添加适当的约束条件如下:
约束条件1:过渡段(即过渡音频)的频率介于两端点(即过渡音频左右两端拼接的两个声音粒子)的频域之间;约束条件2:过渡段的频率单调。
(4)根据构建的“过渡音频”,合成目标声音样本。
如图3所示,根据构建的过渡音频1和2,以此为桥梁分别连接声音粒子1和声音粒子2,连接声音粒子2和声音粒子3,实现声音粒子的合成。
即本实施例提供了一种声音粒子合成方法,根据录制的音频信号,定位截取标记点并提取声音粒子样本,构建声音粒子样本库。根据所述声音粒子样本库,在声音合成阶段,将声音信号和希尔伯特变换的函数表达式进行类比,通过埃尔米特插值算法插值出声音信号的瞬时相位和瞬时频率,通过插值算法得到瞬时幅值,生成“过渡函数”。所述“过渡函数”保证相邻音频粒子在瞬时幅值、频率、相位连续可导,并利用“过渡函数”合成“过渡音频”,以此为桥梁拼接相邻声音粒子,合成目标声音样本。
为了验证本发明提出的一种声音粒子合成方法的有效性和优越性,本发明构建声音粒子1和声音粒子2,并将这两个声音粒子分别进行直接合成和利用拼接优化算法构建的“过渡音频”进行合成(即利用本发明提供的方法进行合成),得到两种拼接方式合成音的频谱。
如图4所示,未使用“过渡音频”直接将两个单频声音粒子进行合成,可以明显看出在拼接处,声波在拼接点处出现了冲击,当播放合成音时,听到令人不悦的“爆音”。如图5所示,利用本发明提出的声音粒子合成方法构建的“过渡音频”,连接相邻的两个声音粒子,能够有效的消除拼接点处的冲击,保证声波的连贯性,避免声音播放出现卡顿。
本发明实施例提供的一种声音粒子合成方法及装置至少包括如下技术效果:
(1)本发明通过构建过渡音频拼接相邻声音粒子,实现声音粒子的拼接自然,解决了现有声音粒子拼接过程中出现的“阶跃”现象,避免合成音中的“爆音”出现,保证了合成音的连贯性。
(2)本发明根据希尔伯特变换的物理意义,并结合埃尔米特插值算法,提出一种声音粒子合成方法,该方法根据录制的声音样本,利用shc函数提取声音样本主谐波,定位截取标记并提取声音样本,构建声音粒子样本库,在声音合成阶段,将声音信号和hilbert变换进行类比,通过hermite插值算法插值出声音信号的瞬时相位和瞬时频率,通过插值算法得到瞬时幅值,生成“过渡函数”保证了相邻音频粒子在幅值、频率、相位连续可导,并利用“过渡函数”合成“过渡音频”,以此拼接相邻声音粒子,实现声音粒子的拼接自然。
(3)本发明提出的声音粒子合成方法与其他的声音合成算法(例如,文mcaulayr等人提出的“死亡轨迹-新生轨迹”的频率追踪算法)相比,本发明的计算量小、效率高,优化效果更优,能够有效地消除拼接过程中产生的“阶跃”现象,保证合成音的连贯性。
(4)本发明提出的声音粒子合成方法适用范围广、简单快捷、灵活性强,保证了主动声音设计中对目标声音声品质的要求。
最后所应说明的是,以上具体实施方式仅用以说明本发明的技术方案而非限制,尽管参照实例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除