基于时频精细化分析的人声风格识别方法
未命名
09-24
阅读:52
评论:0
1.本发明涉及语言信号处理技术领域,具体涉及一种基于时频精细化分析的人声风格识别方法。
背景技术:
2.人声风格是指人的声音在音色、音高、语调等方面所呈现出来的个性化特征和风格化表现,是一种比较抽象的概念,没有具体的衡量标准。以往的人声识别主要关注说话时的情感、说话者的年龄和性别等属性。然而,针对人声风格进行识别的研究相对较少。人声风格识别可以应用到筛选播音员、主持人、演员等或者智能语音助手、语音翻译软件上,还可以用于制作人声风格数据集,为该方向的研究提供支持。
3.目前,有的研究者把人声按照性别和频率高低分为女高音,女中音,女低音,男高音,男中音,男低音六种风格;有的研究者按照年龄和性别分为萝莉音、少女音、御姐音、大妈音、正太音、青年音、大叔音、老年音八种风格。这两种分类方式都比较全面,基本上覆盖了所有人群,但是分类定义比较笼统,缺乏对影视、综艺、播音等行业专业从业者声音风格的具体分类。参考现有技术平台给出的风格词条和播音腔的特点,把人声风格分为以下几类:可爱甜美、年轻时尚、成熟知性、轻声细语、稳重磁性、大气浑厚、激情力度等。这种区分方式可以为这些行业从业人员的筛选提供声音风格参考标准和依据。
4.人声风格识别任务是一项具有挑战性的任务,因为它需要对音频信号的一些微妙的特征进行识别,如说话者的语音风格、音调、发音方式等。这些特征往往是非常主观和难以测量的。另外,人声风格识别任务还缺乏大规模具有风格标签的数据集。这是由于人声风格的概念非常宽泛,不同的人可能对同一种声音产生不同的感觉和评价。因此,构建一个准确且具有代表性的人声风格数据集是非常具有挑战性的。
5.以往人声特征的提取主要是基于语音信号处理来进行。通常这些特征提取方法会提取信号的整体特征或宏观特征,如音高、频谱质心、倒谱系数等。然而,这些特征的提取并不涵盖信号的全部信息,缺少对信号进行谐波等精细化特征提取。大多数提取的特征效果表现不佳,特别是在复杂背景下的人声识别问题中。
6.因此准确标记出每次谐波,对人声信号进行时域和频域的精细化分析,提取精细化特征进行人声风格识别具有重要意义。
技术实现要素:
7.本发明的目的是为了解决现有的人声风格识别所具有的主观局限性问题,提供一种基于时频精细化分析的人声风格识别方法。本发明对人声信号进行预处理后取短时元音部分进行较为准确的基频估计和谐波标记,提取时域单周期基频序列变化趋势和频域谐波比等精细化特征,输入模型后得到风格输出。传统特征如频谱质心、mfcc和精细化特征的组合让识别的准确率进一步提高,可以应用到筛选播音员、主持人、演员等或者智能语音助手、语音翻译软件上,用途广泛。
8.本发明的目的可以通过采取如下技术方案达到:
9.一种基于时频精细化分析的人声风格识别方法,所述人声风格识别方法包括以下步骤:
10.s1、采集人声信号s
voice
并做好标签,构建人声风格数据集,并对s
voice
进行预处理,得到预处理后的人声信号s
pvoice
;
11.s2、对预处理后的人声信号s
pvoice
取短时元音部分进行基频估计,得到基频f,再对人声信号s
pvoice
进行快速傅里叶变换得到频谱图,通过基频f对频谱图进行自适应谐波标记;
12.s3、对人声信号s
pvoice
在时域上进行精细化分析,提取时域精细化特征,其中,所述时域精细化特征包括单周期基频序列标准差f
std
、单周期基频序列中位数f
med
、单周期基频序列均值f
mean
、单周期基频序列中位数与均值距离f
dist
;
13.s4、对谐波标记后的频谱图进行频域精细化分析,提取频域精细化特征,其中,所述频域精细化特征包括一次谐波与二次谐波幅度比r
fir_sec
、奇数次谐波与偶数次谐波幅度比r
odd_even
、质数次谐波与非质数次谐波幅度比r
prim_none
、谐波与频谱幅度比r
harm_spect
、低次谐波与高次谐波幅度比r
low_high
、谐波变化率r
dec
、谐波峰谷比r
peak_valley
,然后把时域精细化特征和频域精细化特征组合成时频精细化特征向量v
fine
;
14.s5、结合传统特征和时频精细化特征向量v
fine
组成特征向量v训练支持向量机模型,其中,所述传统特征包括频谱质心c
spect
和梅尔倒谱系数c
mfcc
;
15.s6、使用经过训练的支持向量机模型对待测人声信号的风格进行识别。
16.进一步地,所述步骤s1过程如下:
17.s101、采集人声信号s
voice
,并进行标签分类,其中,所述标签分为可爱甜美、年轻时尚、成熟知性、轻声细语、稳重磁性、大气浑厚、激情力度七类,这种分类方式可以为播音、影视等行业从业人员的筛选提供较好的分类参考标准和依据;
18.s102、对采集到的人声信号s
voice
使用fir高通滤波器滤波,去除低频噪声后得到经过预处理的人声信号s
pvoice
,提高了人声信号的质量,减少了噪声干扰。
19.进一步地,所述步骤s2过程如下:
20.s201、对经过预处理的人声信号s
pvoice
通过时域幅度的最大值粗略截取信号的元音部分;
21.先寻找幅度的最大值位置,记为t
max
,视t
max
后的信号则为s
pvoice
的元音部分,来进行后续的分析处理;
22.s202、对上述元音部分通过分帧进行时域短时自相关,粗略估计得出基频f0;
23.信号处理算法是对平稳信号来处理的,所以对整段人声进行分析是没有意义的。而人声信号在短时间内可以认为是稳定的,所以要对信号s
pvoice
进行分帧,人声的振动周期大约在5-10ms,一帧内要有多个周期,综合可以得到帧长通常在20-50ms,然后以一半的帧长作为帧移。截取第一帧s
pvoice
(m)做短时自相关,并记下该帧的起始位置t
start
,帧长为n,a为自相关函数的横坐标点数,自相关函数r(a)为:
[0024][0025]
自相关函数在a=0处有最大值,然后再找到除零之外的峰值中的最大值下标,记
为maxb。假设信号采样率为fs,则可以粗略估计出基频后续用于计算最大谱峰代表的频率和基频的倍数关系;
[0026]
s203、通过窄带谱能量法和迭代法进行基频精估计,以减小基频估计误差;
[0027]
首先,运用窄带谱能量法估计最大谱峰代表的频率。对s202中起始位置为t
start
且帧长为n的一帧信号做快速傅里叶变换得到频谱xk,k为频谱的下标,|xk|为下标k对应的频谱幅度,k0为最大谱峰对应的下标,对于人声信号而言,窄带带宽一般取三个点,即最大谱峰左右各取一点,k0处的窄带范围为[k
0-1,k0+1],ndd为fft的点数,为谱间隔,代表频谱里两个点间隔多少频率。基于窄带谱能量估计的频率表达式为:
[0028][0029]
根据窄带谱能量法估计出的最大谱峰代表的频率f
max
,以及s202计算出来的基频粗估计值f0计算出最大谱峰频率和基频的倍数关系其中round()为四舍五入取整函数;
[0030]
使用频谱上最大谱峰频率f
max
和基频粗估计值f0的倍数关系t,再次估计出本次基频此时x为1;
[0031]
然后运用迭代法。判断窄带谱能量法第一次估计出来的基频f1与自相关粗略估计得到的基频f0是否满足误差小于千分之一,即|f
1-f0|<0.001f1,若满足则退出迭代,确定基频f=f1,若不满足则通过采样率变换对信号s
pvoice
的元音部分进行重采样,其中重采样的频率为本次基频f
x
的2的幂次方倍,迭代次数x加1,继续通过窄带谱能量法估计本次基频f
x
,直到本次基频和上一次基频的误差小于千分之一或者迭代次数大于50,才结束迭代,即|f
x-f
x-1
|<0.001f
x
∪x>50,确定基频f=f
x
,迭代可以减小基频误差,让估计出来的基频更加接近真实频率。
[0032]
s204、采用自适应改变谐波间距的方法在s203做快速傅里叶变换得到频谱xk中,标记出所有谐波的幅度值以及下标;
[0033]
前三次谐波即谐波次数i《=3时,把基频f当成相邻谐波间距对fft频谱进行标记,并在附近一定范围内寻找频谱最大的峰值点幅度值和下标作为该次谐波的幅度值hi和下标hii,其中左边界li和右边界ri的值分别为公式(3)和公式(4)所示,其中hi
i-1
表示上一次谐波在fft频谱的位置,当i=1时,表示当前在标记第一次谐波,把hi0定为0用于计算l1和r1的范围;
[0034][0035]
[0036]
针对谐波间距随着频率提高不断变化的问题,采用自适应改变谐波间距的方法,从第四次谐波即i》3时开始动态改变谐波间距,把前两次谐波间距的均值作为本次谐波间距的预测值,并在附近一定范围内寻找频谱最大的峰值点的幅度值和下标作为该次谐波的幅度值hi和下标hii,其中左边界li和右边界ri的值分别如公式(5)和公式(6)所示:
[0037][0038][0039]
当此范围内找到峰值时,则得到谐波幅度值hi和下标hii;
[0040]
当此范围内找不到峰值时,将扩展右边界范围继续寻找谐波进行标记,每次把范围扩大1个点进行寻找,但是右边界范围的扩展也不是没有限制的,还需要满足公式(7):
[0041][0042]
若右边界范围扩展之后还是没有找到谐波,则令hii=2hi
i-1-hi
i-2
,hi=0,然后进入下一次谐波标记;
[0043]
最后得到谐波的幅度值序列[h1,h2,
…
,hi]以及下标序列[hi1,hi2,
…
,hii],其中,h1、h2、
…
、hi分别表示第1、2、
…
、i次谐波的幅度,hi1、hi2、
…
、hii分别表示第1、2、
…
、i次谐波的下标。
[0044]
进一步地,所述步骤s3过程如下:
[0045]
s301、对人声信号s
pvoice
在时域上做单周期互相关运算得到基频序列。
[0046]
先根据s203估计出的基频f及估频所用短时元音的时域起始位置t
start
确定该位置的周期长度为个点,先计算该位置右边的周期,通过该区间和右相邻区间的互相关最大值确定下一个周期长度l,便可以得到下一个周期的基频为,依次计算即可得出右边所有的周期长度和基频,然后以同样的方法计算左边所有的周期长度和基频,最后得到整个信号s
pvoice
的基频序列,记为[f
t1
,f
t2
,
…
,f
tm
],其中,f
t1
、f
t2
、
…
、f
tm
分别表示第1、2、
…
、m个周期的基频;将该基频序列按从小到大的顺序排列得到:f
(1)
≤f
(2)
≤
…
≤f
(m)
。
[0047]
s302、计算提取时域精细化特征包括单周期基频序列均值f
mean
、单周期基频序列标准差f
std
、单周期基频序列中位数f
med
、单周期基频序列中位数与均值距离f
dist
,计算方法如下所示:
[0048][0049]
[0050][0051]fdist
=f
med-f
mean
ꢀꢀꢀ
公式(11)
[0052]
时域精细化特征反映了整个信号基频的变化特点。
[0053]
进一步地,所述步骤s4过程如下:
[0054]
s401、对步骤s204中谐波标记后的频谱图进行频域精细化分析,分别提取频域精细化特征。
[0055]
频域精细化特征包括一次谐波与二次谐波幅度比r
fir_sec
,如公式(12)所示:一次谐波与二次谐波幅度比会影响人声的风格和听感,当一次谐波与二次谐波幅度比较低时,人声会显得更饱满和清晰。
[0056][0057]
奇数次谐波与偶数次谐波幅度比r
odd_even
,其中h
odd
表示所有奇数次谐波的幅度值之和,h
even
表示所有偶数次谐波的幅度值之和,计算方法如公式(13)所示:奇数次谐波幅度较高时,人声会显得更尖锐和紧张;而偶数次谐波幅度较高时,人声则显得较为丰满和圆润。
[0058][0059]
质数次谐波与非质数次谐波幅度比r
prim_none
,其中h
prim
表示所有质数次谐波的幅度值之和,h
none
表示所有非质数次谐波的幅度值之和,计算方法如公式(14)所示:质数次谐波与非质数次谐波幅度比在不同风格人声上的表现有差异,有利于风格识别。
[0060][0061]
谐波与频谱幅度比r
harm_spect
,h
harm
表示所有谐波的幅度值之和,h
spect
表示整个频谱幅度值之和,计算方法如公式(15)所示:谐波成分较强的人声具有更丰富的音色和更多的谐波细节,谐波成分较弱的人声听起来较为单调。
[0062][0063]
低次谐波与高次谐波幅度比r
low_high
,其中低次谐波是指前二十次谐波的幅度值之和h
low
,高次谐波是指二十次以上的谐波的幅度值之和h
high
,计算方法如公式(16)所示:低次谐波幅度较高时,人声听起来更加深沉,高次谐波幅度较高时,人声听起来更加明亮和清晰。
[0064]
[0065]
谐波变化率r
dec
,谐波变化率指的是前三次谐波幅度均值与四到六次谐波幅度均值关于频率的变化率,计算方法如公式(17)所示:谐波变化率可以反映随着频率的升高,谐波幅度值变化的快慢。
[0066][0067]
谐波峰谷比r
peak_valley
,这里指前六次谐波的平均峰谷比,峰谷比是指谐波峰和左右波谷均值之比;i次谐波的幅度记为hi,左波谷和右波谷幅度分别记为h
li
和h
ri
,计算方法如公式(18)所示:谐波峰谷比可以反映不同风格人声的谐波峰两端的平缓度和幅度值下降情况,不同风格人声的谐波峰谷比表现各异。
[0068][0069]
s402、把步骤s302提取的时域精细化特征和步骤s401提取的频域精细化特征组合成时频精细化特征向量v
fine
,即是
[0070]vfine
=[f
std
,f
med
,f
mean
,f
dist
,r
fir_sec
,r
odd_even
,r
prim_none
,r
harm_spect
,r
low_high
,r
dec
,r
peak_valley
]。
[0071]
进一步地,所述步骤s5过程如下:
[0072]
s501、提取传统特征,所述传统特征包括频谱质心c
spect
和梅尔倒谱系数c
mfcc
,然后把传统特征和时频精细化特征向量v
fine
组合成特征向量v,即是v=[v
fine
,c
spect
,c
mfcc
];
[0073]
s502、对数据集中的所有人声提取特征向量v训练支持向量机模型。
[0074]
进一步地,所述步骤s6中,首先提取待测人声信号的特征向量v’,把特征向量v’输入到经过训练的支持向量机模型,完成对待测人声信号的风格识别,取得了较高的识别准确率。
[0075]
本发明相对于现有技术具有如下的优点及效果:
[0076]
1)本发明基于时频精细化分析对人声风格进行识别,给影视、综艺、播音等行业从业者声音风格的筛选提供了参考标准和识别方法,缓解了该领域研究较少的问题,为今后该领域的研究做好铺垫。
[0077]
2)本发明降低了基频估计的误差,现有的基频估计方法存在误差较大的问题,本发明采用了时域自相关和窄带谱能量相结合的基频估计算法,并通过采样率变换和迭代估频的方法突出最大谱峰频率分量成分,削弱了其它成分,减小了频谱泄露,使频率估计值尽可能接近真实频率,让基频估计算法在噪声情况下仍有较好的性能。
[0078]
3)本发明解决了谐波定位难的问题,现有的方法很少对谐波进行提取分析,本发明使用估计出来的基频对fft频谱进行谐波标记,针对谐波间距随着频率提高不断变化的问题,采用自适应改变谐波间距的方法,把前两次谐波间距的均值用于预测这一次的谐波间距,然后在预测值附近一定的范围内寻找谐波,依次标记,直到下一次谐波的位置超出频谱范围。
[0079]
4)本发明提出了基于时频精细化分析的人声风格识别方法,现有方法仅利用传统
的mfcc等特征参数进行识别,存在特征描述不准确、识别准确率较低等问题。本发明通过时域和频域的精细化分析,分别在时域和频域提取时频精细特征,可以有效增强人声风格的特征表达,并且鲁棒性与准确性更高。
附图说明
[0080]
此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0081]
图1是本发明实施例中公开的一种基于时频精细化分析的人声风格识别方法的流程图;
[0082]
图2是本发明实施例中基频估计的流程图;
[0083]
图3是本发明实例中自适应谐波标记的流程图。
具体实施方式
[0084]
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0085]
实施例1
[0086]
本实施例公开了一种基于时频精细化分析的人声风格识别方法,采集人声信号做好标签并进行预处理,经过基频估计和谐波标记后分别提取时域和频域的人声信号精细化特征,将时频精细化特征和传统特征进行支持向量机模型的训练,实现人声风格的识别,如图1所示,具体流程如下:
[0087]
s1、采集人声信号s
voice
并做好标签,构建人声风格数据集;并对s
voice
进行预处理,得到预处理后的人声信号s
pvoice
;
[0088]
s101、采集人声信号s
voice
,并进行标签分类,其中,所述标签分为可爱甜美、年轻时尚、成熟知性、轻声细语、稳重磁性、大气浑厚、激情力度七类,这种分类方式可以为播音、影视等行业从业人员的筛选提供较好的分类参考标准和依据;
[0089]
s102、根据人声的频率范围对采集到的人声信号s
voice
使用fir高通滤波器滤波,去除低频噪声后得到人声信号s
pvoice
,其中高通滤波器的系数一般设置为0.9-1之间,本实例设置为0.9375,提高了人声信号的质量,减少了噪声干扰。
[0090]
s2、对预处理后的人声信号s
pvoice
取短时元音部分进行基频估计,得到基频f,基频估计的流程图如图2所示,再对人声信号s
pvoice
进行快速傅里叶变换得到频谱图,通过基频f对频谱图进行自适应谐波标记,自适应谐波标记的流程图如图3所示;
[0091]
s201、对预处理后的人声信号s
pvoice
利用时域幅度的最大值确定信号的元音部分;先寻找信号幅度的最大值,记为t
max
,视t
max
后的信号则为s
pvoice
的元音部分,来进行后续的分析处理;
[0092]
s202、对上述元音部分通过分帧进行时域短时自相关,粗略估计得出基频f0;
[0093]
信号处理算法是对平稳信号来处理的,所以对整段人声进行分析是没有意义的。而人声信号在短时间内可以认为是稳定的,所以要对信号s
pvoice
进行分帧,人声的振动周期
大约在5-10ms,一帧内要有多个周期,综合可以得到帧长通常在20-50ms,然后以一半的帧长作为帧移。本实例将帧长设置为26ms,帧移为13ms,截取第一帧s
pvoice
(m)做短时自相关,并记下该帧的起始位置t
start
,帧长为n,a为自相关函数的横坐标点数,时域短时自相关函数由公式(1)计算;自相关函数在a=0处有最大值,然后再找到除零之外的峰值中的最大值下标,记为maxb,信号采样率为fs,则可以粗略估计出基频后续用于计算最大谱峰代表的频率和基频的倍数关系。
[0094]
s203、进一步通过窄带谱能量法和迭代法进行基频精估计,以减小基频估计误差;
[0095]
首先,运用窄带谱能量法估计最大谱峰代表的频率。对s202中起始位置为t
start
且帧长为n的一帧信号做快速傅里叶变换得到频谱xk,k为频谱的下标,|xk|为下标k对应的频谱幅度,k0为频谱最大谱峰对应的下标,对于人声信号而言,窄带宽一般取三个点,即最大谱峰左右各取一点,窄带带范围为[k
0-1,k0+1],ndd为fft的点数,为谱间隔,代表频谱里两个点间隔多少频率。基于窄带谱能量估计的频率表达式如公式(2)所示,根据窄带谱能量法估计出的最大谱峰代表的频率f
max
,以及步骤s202计算出来的基频粗估计值f0计算出最大谱峰频率和基频的倍数关系其中round()为四舍五入取整函数;
[0096]
使用频谱上最大谱峰频率f
max
和基频粗估计值f0的倍数关系t,再次估计出本次基频此时x为1;
[0097]
然后运用迭代法。判断窄带谱能量法第一次估计出来的基频f1与自相关粗略估计得到的基频f0是否满足误差小于千分之一,即|f
1-f0|<0.001f1,若满足则退出迭代,确定基频f=f1;若不满足则通过采样率变换对信号s
pvoice
的元音部分进行重采样,其中重采样的频率为本次基频f
x
的2的幂次方倍,迭代次数x加1,继续通过窄带谱能量法估计本次基频f
x
,直到本次基频和上一次基频的误差小于千分之一或者迭代次数大于50,即|f
x-f
x-1
|<0.001f
x
∪x>50,才结束迭代确定基频f=f
x
,迭代可以减小基频误差,让估计出来的基频更加接近真实频率。
[0098]
s204、采用自适应改变谐波间距的方法在s203做快速傅里叶变换得到频谱xk中,标记出所有谐波的幅度值以及下标;
[0099]
前三次谐波即谐波次数i《=3时,把基频f当成相邻谐波间距对fft频谱进行标记,并在附近一定范围内寻找频谱最大的峰值点幅度值和下标作为该次谐波的幅度值hi和下标hii,其中左边界li和右边界ri的值分别为公式(3)和公式(4)所示,其中hi
i-1
表示上一次谐波在fft频谱的位置,当i=1时,表示当前在标记第一次谐波,把hi0定为0用于计算l1和r1的范围;
[0100]
针对谐波间距随着频率提高不断变化的问题,采用自适应改变谐波间距的方法,从第四次谐波即i》3时开始动态改变谐波间距,把前两次谐波间距的均值作为本次谐波间距的预测值,并在附近一定范围内寻找频谱最大的峰值点的幅度值和下标作为该次谐波的幅度值hi和下标hii,其中左边界li和右边界ri的值分别如公式(5)和公式(6)所示。
[0101]
当此范围内找不到峰值时,将扩展右边界范围继续寻找谐波进行标记,每次把范
围扩大1个点进行寻找,但是右边界范围的扩展也不是没有限制的,还需要满足公式(7):
[0102]
若右边界范围扩展之后还是没有找到谐波,则令hii=2hi
i-1-hi
i-2
,hi=0然后进入下一次谐波标记;
[0103]
最后得到谐波的幅度值序列[h1,h2,
…
,hi]以及下标序列[hi1,hi2,
…
,hii]。
[0104]
s3、对人声信号s
pvoice
在时域上进行精细化分析,分别提取时域精细化特征;
[0105]
s301、对人声信号s
pvoice
在时域上做单周期互相关运算得到基频序列。
[0106]
先根据s203估计出的基频f及估频所用短时元音的时域起始位置t
start
确定该位置的周期长度为个点,先计算该位置右边的周期,通过该区间和右相邻区间的互相关最大值确定下一个周期长度l,便可以得到下一个周期的基频为,依次计算即可得出右边所有的周期长度和基频,然后以同样的方法计算左边所有的周期长度和基频,最后得到整个信号s
pvoice
的基频序列,记为[f
t1
,f
t2
,
…
,f
tm
],其中,f
t1
、f
t2
、
…
、f
tm
分别表示第1、2、
…
、m个周期的基频;将该基频序列按从小到大的顺序排列得到:f
(1)
≤f
(2)
≤
…
≤f
(m)
。
[0107]
s302、计算提取时域精细化特征包括单周期基频序列标准差f
std
、单周期基频序列中位数f
med
、单周期基频序列均值f
mean
、单周期基频序列中位数与均值距离f
dist
;计算方法如公式(8)、公式(9)、公式(10)、公式(11)所示;时域精细化特征反映了整个信号基频的变化特点。
[0108]
s4、对谐波标记后的频谱图进行频域精细化分析,分别提取频域精细化特征。再把步骤s3和步骤s4提取的特征组合成时频精细化特征向量v
fine
;
[0109]
s401、对步骤s204中谐波标记后的频谱图进行频域精细化分析,分别提取频域精细化特征。包括一次谐波与二次谐波幅度比r
fir_sec
、奇数次谐波与偶数次谐波幅度比r
odd_even
、质数次谐波与非质数次谐波幅度比r
prim_none
、谐波与频谱幅度比r
harm_spect
、低次谐波与高次谐波幅度比r
low_high
、谐波变化率r
dec
、谐波峰谷比r
peak_valley
;计算方法如公式(12)、公式(13)、公式(14)、公式(15)、公式(16)、公式(17)、公式(18)所示;频域精细化特征主要反映了人声的谐波结构和特点,不同风格人声的谐波表现各异;
[0110]
s402、把步骤s302提取的时域精细化特征和s401提取的频域精细化特征组合成时频精细化特征向量v
fine
,即是
[0111]vfine
=[f
std
,f
med
,f
mean
,f
dist
,r
fir_sec
,r
odd_even
,r
prim_none
,r
harm_spect
,r
low_high
,r
dec
,r
peak_valley
]。
[0112]
s5、结合传统特征和时频精细化特征组成特征向量v训练支持向量机模型;
[0113]
s501、提取传统特征频谱质心c
spect
和梅尔倒谱系数c
mfcc
,然后把传统特征和时频精细化特征向量v
fine
组合成特征向量v,即是
[0114]
v=[v
fine
,c
spect
,c
mfcc
];
[0115]
s502、对数据集中的所有人声都提取特征向量v训练支持向量机模型。
[0116]
s6、使用训练好的支持向量机模型对待测人声信号的风格进行识别。首先提取待测人声信号的特征向量v’,把特征向量v’输入到经过步骤s502训练的支持向量机模型,完成对待测人声信号的风格识别。实现的每一风格准确率和整个数据集准确率如下表1所示:
[0117]
表1.人声风格识别准确率表
[0118][0119][0120]
如上表所示,整个数据集的识别准确率高达98.8%,每一风格类别的识别准确率均取得了较好的效果。
[0121]
实施例2
[0122]
本实施例继续公开一种基于时频精细化分析的人声风格识别方法,采集人声信号并进行预处理,经过基频估计和谐波标记后分别提取时域和频域的人声信号精细化特征,将时频精细化特征和传统特征输入到训练好的支持向量机模型中,实现人声风格的识别,包括以下步骤:
[0123]
s1、参照实施例1中对应步骤,其中省略了做标签的操作,采集待测人声信号s
voice
并进行预处理,得到预处理后的人声信号s
pvoice
;
[0124]
s2、参照实施例1中对应步骤,对预处理后的人声信号s
pvoice
取短时元音部分进行基频估计得到基频f,再对人声信号s
pvoice
进行快速傅里叶变换得到频谱图,通过基频f对频谱图进行自适应谐波标记;
[0125]
s3、参照实施例1中对应步骤,对人声信号s
pvoice
在时域上进行精细化分析,分别提取时域精细化特征;其中,所述时域精细化特征包括单周期基频序列标准差f
std
、单周期基频序列中位数f
med
、单周期基频序列均值f
mean
、单周期基频序列中位数与均值距离f
dist
;
[0126]
s4、参照实施例1中对应步骤,对谐波标记后的频谱图进行频域精细化分析,分别提取频域精细化特征;其中,频域精细化特征包括一次谐波与二次谐波幅度比r
fir_sec
、奇数次谐波与偶数次谐波幅度比r
odd_even
、质数次谐波与非质数次谐波幅度比r
prim_none
、谐波与频谱幅度比r
harm_spect
、低次谐波与高次谐波幅度比r
low_high
、谐波变化率r
dec
、谐波峰谷比r
peak_valley
。再把步骤s3和步骤s4提取的特征组合成时频精细化特征向量v
fine
;
[0127]
s5、参照实施例1中对应步骤,结合传统特征频谱质心c
spect
和梅尔倒谱系数c
mfcc
和时频精细化特征向量v
fine
组成特征向量v’输入到训练好的支持向量机模型中得到待测人声信号的风格;
[0128]
待测人声信号特征及对应特征值如下表2所示,其中c
mfcc
有13维,分别记c
mfcc1~13
,支持向量机模型得到的人声风格识别结果为稳重磁性。
[0129]
表2.实施例2中待测人声信号特征及对应特征值表
[0130]
特征f
stdfmeanfmedfdistrfir_sec
特征值18.149136.625130.8135.8120.925特征r
odd_evenrprim_nonerharm_spectrlow_highrdec
特征值1.3001.0960.29510.0820.019特征r
peak_valleycspectcmfcc1cmfcc2cmfcc3
特征值9.937775.98627.509-2.589-1.105特征c
mfcc4cmfcc5cmfcc6cmfcc7cmfcc8
特征值-105.358-0.99610.613-18.6379.299特征c
mfcc9cmfcc10cmfcc11cmfcc12cmfcc13
特征值-21.839-37.007-20.156-5.103-26.068
[0131]
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
技术特征:
1.一种基于时频精细化分析的人声风格识别方法,其特征在于,所述人声风格识别方法包括以下步骤:s1、采集人声信号s
voice
并做好标签,构建人声风格数据集,并对s
voice
进行预处理,得到预处理后的人声信号s
pvoice
;s2、对预处理后的人声信号s
pvoice
取短时元音部分进行基频估计,得到基频f,再对人声信号s
pvoice
进行快速傅里叶变换得到频谱图,通过基频f对频谱图进行自适应谐波标记;s3、对人声信号s
pvoice
在时域上进行精细化分析,提取时域精细化特征,其中,所述时域精细化特征包括单周期基频序列标准差f
std
、单周期基频序列中位数f
med
、单周期基频序列均值f
mean
、单周期基频序列中位数与均值距离f
dist
;s4、对谐波标记后的频谱图进行频域精细化分析,提取频域精细化特征,其中,所述频域精细化特征包括一次谐波与二次谐波幅度比r
fir_sec
、奇数次谐波与偶数次谐波幅度比r
odd_even
、质数次谐波与非质数次谐波幅度比r
prim_none
、谐波与频谱幅度比r
harm_spect
、低次谐波与高次谐波幅度比r
low_high
、谐波变化率r
dec
、谐波峰谷比r
peak_valley
,然后把时域精细化特征和频域精细化特征组合成时频精细化特征向量v
fine
;s5、结合传统特征和时频精细化特征向量v
fine
组成特征向量v训练支持向量机模型,其中,所述传统特征包括频谱质心c
spect
和梅尔倒谱系数c
mfcc
;s6、使用经过训练的支持向量机模型对待测人声信号的风格进行识别。2.根据权利要求1所述的基于时频精细化分析的人声风格识别方法,其特征在于,所述步骤s1过程如下:s101、采集人声信号s
voice
,并进行标签分类,其中,所述标签分为可爱甜美、年轻时尚、成熟知性、轻声细语、稳重磁性、大气浑厚、激情力度七类;s102、对采集到的人声信号s
voice
使用fir高通滤波器滤波,去除低频噪声后得到经过预处理的人声信号s
pvoice
。3.根据权利要求1所述的基于时频精细化分析的人声风格识别方法,其特征在于,所述步骤s2过程如下:s201、对经过预处理的人声信号s
pvoice
利用信号幅度最大值确定信号的元音部分;s202、对经过预处理的人声信号s
pvoice
的元音部分通过分帧进行时域短时自相关,粗略估计出基频f0;s203、通过窄带谱能量法和迭代法进行基频精估计,首先,对步骤s202中经过时域短时自相关得到的信号通过快速傅里叶变换得到频谱,运用窄带谱能量法估计最大谱峰代表的频率f
max
,根据基频粗估计值f0计算得到最大谱峰代表的频率和基频的倍数关系其中round()为四舍五入取整函数,然后基于上述倍数关系t,再次估计出本次基频此时x为1;然后运用迭代法,判断窄带谱能量法第一次估计出来的基频f1与自相关粗略估计得到的基频f0是否满足误差小于千分之一,即|f
1-f0|<0.001f1,若满足则退出迭代,确定基频f=f1,若不满足则通过采样率变换对人声信号s
pvoice
的元音部分进行重采样,其中重采样的频率为本次基频f
x
的2的幂次方倍,迭代次数x加1,继续通过窄带谱能量法估计本次基频f
x
,
直到本次基频和上一次基频的误差小于千分之一或者迭代次数x大于50,即|f
x-f
x-1
|<0.001f
x
∪x>50,才结束迭代确定基频f=f
x
;s204、采用自适应改变谐波间距的方法在步骤s203中通过快速傅里叶变换得到频谱中,标记出所有谐波的幅度值以及下标,前三次谐波即谐波次数i<=3时,把基频f当成相邻谐波间距对fft频谱进行标记,并在附近指定范围内寻找频谱最大的峰值点幅度值和下标;采用自适应改变谐波间距的方法,从第i=4次谐波即i>3时开始动态改变谐波间距,把前2次谐波间距的均值作为本次谐波间距的预测值,并在附近一定范围内寻找频谱最大的峰值点的幅度值和下标作为该次谐波的幅度值和下标,当此范围内找不到峰值时,将扩展右边界范围继续寻找谐波进行标记,每次把范围扩大1个点进行寻找,最后得到谐波的幅度值序列[h1,h2,
…
,h
i
]以及下标序列[hi1,hi2,
…
,hi
i
],其中,h1、h2、
…
、h
i
分别表示第1、2、
…
、i次谐波的幅度,hi1、hi2、
…
、hi
i
分别表示第1、2、
…
、i次谐波的下标。4.根据权利要求3所述的基于时频精细化分析的人声风格识别方法,其特征在于,所述步骤s3过程如下:s301、对人声信号s
pvoice
在时域上做单周期互相关运算,计算出整个信号s
pvoice
的基频序列[f
t1
,f
t2
,
…
,f
tm
],其中,f
t1
、f
t2
、
…
、f
tm
分别表示第1、2、
…
、m个周期的基频;s302、计算提取时域精细化特征,所述时域精细化特征包括单周期基频序列标准差f
std
、单周期基频序列中位数f
med
、单周期基频序列均值f
mean
、单周期基频序列中位数与均值距离f
dist
,计算方法如下所示:,计算方法如下所示:,计算方法如下所示:f
dist
=f
med-f
mean
。5.根据权利要求4所述的基于时频精细化分析的人声风格识别方法,其特征在于,所述步骤s4过程如下:s401、对步骤s204中谐波标记后的频谱图进行频域精细化分析,分别提取频域精细化特征,包括一次谐波与二次谐波幅度比r
fir_sec
、奇数次谐波与偶数次谐波幅度比r
odd_even
、质数次谐波与非质数次谐波幅度比r
prim_none
、谐波与频谱幅度比r
harm_spect
、低次谐波与高次谐波幅度比r
low_high
、谐波变化率r
dec
、谐波峰谷比r
peak_valley
,计算方法如下所示:,计算方法如下所示:
式中,h
odd
表示所有奇数次谐波的幅度值之和,h
even
表示所有偶数次谐波的幅度值之和,h
prim
表示所有质数次谐波的幅度值之和,h
none
表示所有非质数次谐波的幅度值之和,h
harm
表示所有谐波的幅度值之和,h
spect
表示整个频谱幅度值之和,低次谐波是指前二十次谐波的幅度值之和h
low
,高次谐波是指二十次以上的谐波的幅度值之和h
high
,fs为信号采样率,ndd为快速傅里叶变换的点数,h
i
表示i次谐波的幅度,h
li
和h
ri
分别表示左波谷和右波谷幅度;s402、把步骤s302提取的时域精细化特征和s401提取的频域精细化特征组合成时频精细化特征向量v
fine
,即是v
fine
=[f
std
,f
med
,f
mean
,f
dist
,r
fir_sec
,r
odd_even
,r
prim_none
,r
harm_spect
,r
low_high
,r
dec
,r
peak_valley
]。6.根据权利要求5所述的基于时频精细化分析的人声风格识别方法,其特征在于,所述步骤s5过程如下:s501、提取传统特征,所述传统特征包括频谱质心c
spect
和梅尔倒谱系数c
mfcc
,然后把传统特征和时频精细化特征向量v
fine
组合成特征向量v;即是v=[v
fine
,c
spect
,c
mfcc
];s502、对数据集中的所有人声提取特征向量v训练支持向量机模型,模型训练完毕后输入特征向量,经过支持向量机模型运算得到输出分类。7.根据权利要求1所述的基于时频精细化分析的人声风格识别方法,其特征在于,所述步骤s6中,首先提取待测人声信号的特征向量v’,把特征向量v’输入到经过训练的支持向量机模型,完成对待测人声信号的风格识别。
技术总结
本发明公开了一种基于时频精细化分析的人声风格识别方法,过程如下:基频估计和谐波标记步骤,首先对人声信号取短时元音部分进行基频估计,基频估计采用时域自相关和窄带谱能量相结合的频率估计算法,然后根据估计出来的基频对频谱进行自适应谐波标记,做到准确标出频谱的所有谐波;时频精细化分析步骤,分别从时域和频域对人声信号进行精细化分析和特征提取,重点关注周期变化和谐波结构;支持向量机识别模型训练和识别步骤,用提取的特征和相应的人声风格标签进行支持向量机模型的训练,模型训练完毕后则可用于人声风格的识别,把人声信号提取出的特征向量作为输入即可得到风格。格。格。
技术研发人员:韦岗 何铮 曹燕 王一歌
受保护的技术使用者:华南理工大学
技术研发日:2023.05.23
技术公布日:2023/9/22
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/