颤音检测方法、计算机设备、存储介质和计算机程序产品与流程

文档序号:32788084发布日期:2023-01-03 20:02阅读:134来源:国知局
技术简介:
本专利针对现有颤音检测准确率低、易受噪声干扰的问题,提出一种基于基频序列分析的改进方法。通过歌词切分获取基频片段,结合带通滤波降噪,再基于波动幅度与频率判断颤音特征,有效提升检测精度。
关键词:颤音检测,基频分析

1.本技术涉及音频信号处理技术领域,特别是涉及一种颤音检测方法、计算机设备、存储介质和计算机程序产品。


背景技术:

2.颤音是音乐领域中一项比较重要的声乐表现技巧,通常使用乐器或者通过歌唱来展现颤音。由于个体差异,每个人在歌唱中展现的颤音也各不相同。
3.传统技术中,往往通过检测人声信号的过零率来判断人声信号中的颤音,但是实际的人声信号中常存在噪点,容易对人声信号的信号波动产生干扰,使得根据人声信号的过零率来检测颤音的方式的准确率较低。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种能够提高用户干声的颤音检测准确率的颤音检测方法、计算机设备、计算机可读存储介质和计算机程序产品。
5.第一方面,本技术提供了一种颤音检测方法。所述方法包括:
6.对待检测干声的基频序列进行歌词切分处理,得到所述待检测干声中各个歌词对应的基频片段;
7.对每个基频片段进行滤波处理,得到所述每个基频片段对应的降噪基频片段;
8.确定所述每个降噪基频片段的波动幅度和波动频率;
9.根据所述每个降噪基频片段的波动幅度和波动频率是否满足预设颤音条件,得到所述每个降噪基频片段的颤音检测结果,其中每个降噪基频片段的颤音检测结果为所述待检测干声的目标颤音检测结果。
10.在其中一个实施例中,对每个基频片段进行滤波处理,得到所述每个基频片段对应的降噪基频片段,包括:
11.根据预设带宽范围和预设滤波器阶数,对滤波器进行仿真处理,得到所述滤波器的多项式系数;
12.根据所述滤波器的多项式系数,对所述每个基频片段进行带通滤波处理,得到所述每个基频片段对应的降噪基频片段。
13.在其中一个实施例中,根据所述滤波器的多项式系数,对所述每个基频片段进行带通滤波处理,得到所述每个基频片段对应的降噪基频片段,包括:
14.根据所述滤波器的多项式系数,对所述每个基频片段进行正向滤波处理,得到所述每个基频片段对应的正向降噪基频片段;
15.对每个正向降噪基频片段进行反向滤波处理,得到所述每个正向降噪基频片段对应的反向降噪基频片段;
16.对每个反向降噪基频片段进行翻转处理,得到所述每个基频片段对应的降噪基频片段。
17.在其中一个实施例中,根据所述滤波器的多项式系数,对所述每个基频片段进行带通滤波处理,得到所述每个基频片段对应的降噪基频片段,包括:
18.根据所述滤波器的多项式系数,对所述每个基频片段进行反向滤波处理,得到所述每个基频片段对应的反向降噪基频片段;
19.对每个反向降噪基频片段再次进行反向滤波处理,得到所述每个基频片段对应的降噪基频片段。
20.在其中一个实施例中,对待检测干声的基频序列进行歌词切分处理,得到所述待检测干声中各个歌词对应的基频片段,包括:
21.对所述待检测干声进行语音识别,得到所述待检测干声对应的各个歌词;
22.根据所述待检测干声对应的各个歌词,对所述待检测干声的基频序列进行切分,得到所述各个歌词对应的基频片段。
23.在其中一个实施例中,在对待检测干声的基频序列进行歌词切分处理,得到所述待检测干声中各个歌词对应的基频片段之前,还包括:
24.根据帧间隔,得到所述待检测干声的基频采样率;
25.根据所述基频采样率,对所述待检测干声进行基频提取处理,得到所述待检测干声的初始基频序列;所述初始基频序列的单位为频率;
26.根据频率与音符之间的映射关系,对所述待检测干声的初始基频序列进行单位转换处理,得到所述待检测干声的基频序列;所述基频序列的单位为音符。
27.在其中一个实施例中,确定所述每个降噪基频片段的波动幅度和波动频率,包括:
28.根据所述每个降噪基频片段中的波峰间距和波谷间距,得到所述每个降噪基频片段的波动周期;
29.根据所述每个降噪基频片段的波动周期和所述待检测干声的基频采样率,得到所述每个降噪基频片段的波动频率。
30.在其中一个实施例中,根据所述每个降噪基频片段的波动幅度和波动频率是否满足预设颤音条件,得到所述每个降噪基频片段的颤音检测结果,包括:
31.根据所述每个降噪基频片段的波动幅度中的波峰和波谷,得到所述每个降噪基频片段在预设幅度范围内的波峰数量和波谷数量;
32.根据所述每个降噪基频片段在预设幅度范围内的波峰数量和波谷数量是否满足预设颤音条件,以及所述波动频率是否满足预设颤音条件,得到所述每个降噪基频片段的颤音检测结果。
33.在其中一个实施例中,根据所述每个降噪基频片段在预设幅度范围内的波峰数量和波谷数量是否满足预设颤音条件,以及所述波动频率是否满足预设颤音条件,得到所述每个降噪基频片段的颤音检测结果,包括:
34.针对所述每个降噪基频片段,在所述降噪基频片段的预设幅度范围内的波峰数量满足预设波峰数量条件、波谷数量满足预设波谷数量条件且所述波动频率满足预设波动频率条件的情况下,确认所述降噪基频片段属于颤音。
35.第二方面,本技术还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
36.对待检测干声的基频序列进行歌词切分处理,得到所述待检测干声中各个歌词对
应的基频片段;
37.对每个基频片段进行滤波处理,得到所述每个基频片段对应的降噪基频片段;
38.确定所述每个降噪基频片段的波动幅度和波动频率;
39.根据所述每个降噪基频片段的波动幅度和波动频率是否满足预设颤音条件,得到所述每个降噪基频片段的颤音检测结果,其中每个降噪基频片段的颤音检测结果为所述待检测干声的颤音检测结果。
40.第三方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
41.对待检测干声的基频序列进行歌词切分处理,得到所述待检测干声中各个歌词对应的基频片段;
42.对每个基频片段进行滤波处理,得到所述每个基频片段对应的降噪基频片段;
43.确定所述每个降噪基频片段的波动幅度和波动频率;
44.根据所述每个降噪基频片段的波动幅度和波动频率是否满足预设颤音条件,得到所述每个降噪基频片段的颤音检测结果,其中每个降噪基频片段的颤音检测结果为所述待检测干声的颤音检测结果。
45.第四方面,本技术还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
46.对待检测干声的基频序列进行歌词切分处理,得到所述待检测干声中各个歌词对应的基频片段;
47.对每个基频片段进行滤波处理,得到所述每个基频片段对应的降噪基频片段;
48.确定所述每个降噪基频片段的波动幅度和波动频率;
49.根据所述每个降噪基频片段的波动幅度和波动频率是否满足预设颤音条件,得到所述每个降噪基频片段的颤音检测结果,其中每个降噪基频片段的颤音检测结果为所述待检测干声的颤音检测结果。
50.上述颤音检测方法、计算机设备、存储介质和计算机程序产品,对待检测干声的基频序列进行歌词切分处理,得到待检测干声中各个歌词对应的基频片段;对每个基频片段进行滤波处理,得到每个基频片段对应的降噪基频片段;确定每个降噪基频片段的波动幅度和波动频率;根据每个降噪基频片段的波动幅度和波动频率是否满足预设颤音条件,得到每个降噪基频片段的颤音检测结果,其中每个降噪基频片段的颤音检测结果为待检测干声的颤音检测结果,实现了对待检测干声的颤音检测,通过对待检测干声的基频序列进行颤音检测,能够避免因人声差异而导致颤音检测失效的问题,并通过对待检测干声的基频序列进行歌词切分,能够对待检测干声的颤音进行更细粒度的判断,以提高颤音检测的精确度,还通过对基频片段进行滤波处理,来避免旋律趋势和噪声对颤音检测的影响,大大提高了颤音检测的准确度和鲁棒性。
附图说明
51.图1为一个实施例中颤音检测方法的应用环境图;
52.图2为一个实施例中颤音检测方法的流程示意图;
53.图3为一个实施例中得到每个基频片段对应的降噪基频片段步骤的流程示意图;
54.图4为一个实施例中每个基频片段对应的降噪基频片段的对比结果示意图;
55.图5为一个实施例中“在”、“一”、“起”这三个歌词对应的基频片段示意图;
56.图6为一个实施例中确认降噪基频片段是否属于颤音步骤的流程示意图;
57.图7为另一个实施例中颤音检测方法的流程示意图;
58.图8为又一个实施例中颤音检测方法的流程示意图;
59.图9为一个实施例中计算机设备的内部结构图。
具体实施方式
60.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
61.本技术实施例提供的颤音检测方法,可以应用于如图1所示的应用环境中。其中,终端101通过网络与服务器102进行通信。终端101可以获取用户的干声,也可以提供颤音检测的相关服务;服务器102可以泛指提供颤音检测相关服务的后台系统。数据存储系统可以存储服务器102需要处理的数据。数据存储系统可以集成在服务器102上,也可以放在云上或其他网络服务器上。其中,终端101可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器102可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
62.在一种实施方式中,终端101获取待检测干声,终端101对待检测干声的基频序列进行歌词切分处理,得到待检测干声中各个歌词对应的基频片段;对每个基频片段进行滤波处理,得到每个基频片段对应的降噪基频片段;确定每个降噪基频片段的波动幅度和波动频率;根据每个降噪基频片段的波动幅度和波动频率是否满足预设颤音条件,得到每个降噪基频片段的颤音检测结果,其中每个降噪基频片段的颤音检测结果为待检测干声的颤音检测结果。因此,上述颤音检测方法的执行主体可以是终端101。
63.在一种实施方式中,上述颤音检测方法也可以基于服务器102单独实现。例如,服务器102可以从后台数据库中获取待检测干声,并通过执行上述颤音检测方法,得到待检测干声的目标颤音检测结果。
64.在一种实施方式中,上述颤音检测方法也可以基于终端101与服务器之间的交互进行实现。例如,终端101在获取待检测干声后,将待检测干声发送至服务器102,服务器102通过执行上述颤音检测方法,得到待检测干声的目标颤音检测结果。再例如,服务器可以后台的数据库中获取到干声,将待检测干声发送至终端101,终端101通过执行上述颤音检测方法,得到待检测干声的目标颤音检测结果。
65.由上可知,本示例性实施方式中,上述颤音检测方法的执行主体可以是上述终端101或服务器102,还可以应用于包括终端101和服务器102的系统,并通过终端101和服务器102的交互实现,本公开对此不做限定。
66.在一个实施例中,如图2所示,提供了一种颤音检测方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
67.步骤s201,对待检测干声的基频序列进行歌词切分处理,得到待检测干声中各个
歌词对应的基频片段。
68.其中,待检测干声是指需要进行颤音检测的干声。干声是指音频领域中未经过任何空间性质处理、后期处理或者加工的纯人声。基频是指待检测干声中最低的频率,基频用于决定声音的音调。基频序列是指多个基频组成的数据。基频片段是指基频序列中的一段基频。
69.具体地,终端获取到用户的待检测干声;根据帧间隔,对待检测干声进行基频提取处理,得到待检测干声的基频序列;例如,根据帧间隔,通过概率yin(probabilistic yin,pyin)技术对待检测干声进行基频提取处理,得到待检测干声的基频序列;再例如,根据帧间隔,通过crepe(convolutional representation for pitch estimation)技术对待检测干声进行基频提取处理,得到待检测干声的基频序列;又例如,根据帧间隔,通过harvest基频提取器对待检测干声进行基频提取处理,得到待检测干声的基频序列。终端在获取待检测干声的基频序列后,由于人声的颤音往往依附于歌词中的某个字,因此,终端可以对基频序列进行歌词切分,得到待检测干声中各个歌词对应的基频片段,以便更精确的检测出待检测干声中的颤音部分。
70.需要说明的是,歌词切分处理的歌词的粒度可以是单个字,也可以是两个字,还可以是三个字,在此不进行具体限定。例如,终端获取到一首用户唱的歌曲《小路》的干声,然后将该干声转换为基频序列,根据歌曲《小路》中每一个字的歌词,将基频序列进行切分,得到每一个字的歌词对应的基频片段。
71.步骤s202,对每个基频片段进行滤波处理,得到每个基频片段对应的降噪基频片段。其中,降噪基频片段指的是经过滤波降噪处理后得到的基频片段。
72.步骤s203,确定每个降噪基频片段的波动幅度和波动频率。
73.步骤s204,根据每个降噪基频片段的波动幅度和波动频率是否满足预设颤音条件,得到每个降噪基频片段的颤音检测结果,其中每个降噪基频片段的颤音检测结果为待检测干声的颤音检测结果。
74.其中,波动幅度是指降噪基频片段的音调曲线的变化的宽度。
75.颤音检测结果用于指示待检测干声在各个歌词下的颤音判断结果。例如,待检测干声的歌词包括“在”、“一”、“起”这三个歌词,目标颤音检测结果会指示歌词“在”对应的待检测干声是否为颤音,歌词“一”对应的待检测干声是否为颤音,以及歌词“起”对应的待检测干声是否为颤音。
76.具体地,人声的基频波动范围一般在4hz至8hz,为避免高频噪声和低频的旋律趋势对基频序列的波动产生干扰,终端将基频序列的每个基频片段,输入到带通滤波器中进行滤波处理,得到带通滤波器输出的每个基频片段对应的降噪基频片段;人声的基频波动幅度一般在30至150个音分(cent),终端可以计算得到每个降噪基频片段的波动幅度和波动频率,针对每个降噪基频片段,根据降噪基频片段在预设波动频率条件和预设幅度范围内的信号波动情况,得到每个降噪基频片段的颤音检测结果;根据所有降噪基频片段的颤音检测结果,来得到待检测干声的颤音检测结果。
77.上述颤音检测方法中,对待检测干声的基频序列进行歌词切分处理,得到待检测干声中各个歌词对应的基频片段;对每个基频片段进行滤波处理,得到每个基频片段对应的降噪基频片段;确定每个降噪基频片段的波动幅度和波动频率;根据每个降噪基频片段
的波动幅度和波动频率是否满足预设颤音条件,得到每个降噪基频片段的颤音检测结果,其中每个降噪基频片段的颤音检测结果为待检测干声的颤音检测结果,实现了对待检测干声的颤音检测,通过对待检测干声的基频序列进行颤音检测,能够避免因人声差异而导致颤音检测失效的问题,并通过对待检测干声的基频序列进行歌词切分,能够对待检测干声的颤音进行更细粒度的判断,以提高颤音检测的精确度,还通过对基频片段进行滤波处理,来避免旋律趋势和噪声对颤音检测的影响,大大提高了颤音检测的准确度和鲁棒性。
78.在一个实施例中,如图3所示,上述步骤s202,对每个基频片段进行滤波处理,得到每个基频片段对应的降噪基频片段,具体包括如下内容:
79.步骤s301,根据预设带宽范围和预设滤波器阶数,对滤波器进行仿真处理,得到滤波器的多项式系数。
80.其中,预设带宽范围可以设置为[4,20]hz。滤波器指的是用于对特定频率以外的频率进行消除的滤波电路。滤波器可以是巴特沃兹滤波器(butterworth filter),当然也可以是其他的带通滤波器,例如,切比雪夫滤波器(chebyshev filter)和椭圆滤波器(elliptic filter)等。预设滤波器阶数用于确定滤波器的结构。预设滤波器阶数可以是一阶、二阶、三阶等等,预设滤波器阶数的数值越大,滤波器结构越接近目标带宽。
[0081]
具体地,终端根据预设带宽范围和预设滤波器阶数,构建得到带通结构的滤波器;对滤波器进行仿真模拟处理,得到滤波器的多项式系数;其中,多项式系数包括分子多项式系数和分母多项式系数。
[0082]
以巴特沃兹滤波器为例,将预设带宽范围设置为[4,20]hz,将预设滤波器阶数设置为二阶,进而构建得到二阶带通结构的巴特沃兹滤波器,其表达式h(z)如下所示:
[0083][0084]
其中,z表示二阶带通结构的巴特沃兹滤波器的频域;z的上标-1和-2分别表示阶数;b0、b1和b2均为分子多项式系数;a0、a1和a2均为分母多项式系数。
[0085]
通过对该二阶带通结构的巴特沃兹滤波器进行仿真处理,得到该滤波器的各项系数:b0=0.1122,b1=0,b2=-0.1122,a0=1.0000,a1=-1.7581,a2=0.7757。
[0086]
步骤s302,根据滤波器的多项式系数,对每个基频片段进行带通滤波处理,得到每个基频片段对应的降噪基频片段。
[0087]
其中,多项式系数是指滤波器的表达式中的系数。多项式系数也可以看作滤波器中的延迟模块的权重。
[0088]
具体地,终端获取到分子多项式系数、分母多项式系数和滤波器后,通过该滤波器对每个基频片段进行带通滤波处理,得到每个基频片段对应的降噪基频片段;其中,该带通滤波处理包括零相位滤波处理,通过对每个基频片段进行零相位滤波处理,使得得到的降噪基频片段的相位与原基频片段的相位相同,进而降噪基频片段能够维持原基频片段的变化走向。
[0089]
以一首用户唱的歌曲《小路》的干声为例,在用户的干声的31.5s至34.6s,可以提取出“在”、“一”、“起”这三个歌词对应的基频序列,图4为通过该滤波器对每个基频片段进行带通滤波处理,得到每个基频片段对应的降噪基频片段的对比结果示意图。图4中左侧的三幅图为“在”、“一”、“起”这三个歌词对应的基频序列;图4中右侧的三幅图为“在”、“一”、“起”这三个歌词的基频序列对应的降噪基频片段,其纵坐标表示待检测干声的音分;由图4可知,“在”、“一”、“起”这三个歌词对应的基频序列与降噪基频序列的相位相同,并且由于带通滤波处理,使得降噪基频序列中的噪声明显少于基频序列中的噪声;例如,歌词“在”的基频序列的横坐标120至140之间的噪声被过滤了,再例如,歌词“一”的基频序列的横坐标100至140之间的噪声被过滤了,又例如,歌词“起”的基频序列的横坐标0至50之间的噪声被过滤了,使得右侧的音频曲线比左侧的音频曲线更平滑。
[0090]
本实施例中,终端根据预设带宽范围和预设滤波器阶数,对滤波器进行仿真处理,得到滤波器的多项式系数,并根据滤波器的多项式系数,对每个基频片段进行带通滤波处理,得到每个基频片段对应的降噪基频片段,能够降低每个基频片段中的低频和高频噪声对基频片段的干扰,以提高针对基频片段的颤音检测的准确率。
[0091]
在一个实施例中,根据滤波器的多项式系数,对每个基频片段进行带通滤波处理,得到每个基频片段对应的降噪基频片段,具体包括如下内容:根据滤波器的多项式系数,对每个基频片段进行正向滤波处理,得到每个基频片段对应的正向降噪基频片段;对每个正向降噪基频片段进行反向滤波处理,得到每个正向降噪基频片段对应的反向降噪基频片段;对每个反向降噪基频片段进行翻转处理,得到每个基频片段对应的降噪基频片段。
[0092]
其中,正向滤波处理指的是将基频片段按顺序滤波;反向滤波指的是将基频片段翻转后再进行滤波。
[0093]
在实际应用中,终端可以根据滤波器的多项式系数,对每个基频片段进行frr滤波处理。具体地,终端根据滤波器的多项式系数,对每个基频片段按顺序进行滤波处理,得到每个基频片段对应的正向降噪基频片段;然后对正向降噪基频片段进行翻转处理,得到翻转降噪基频片段;再将翻转降噪基频片段输入到滤波器中进行滤波处理,得到每个翻转降噪基频片段对应的反向降噪基频片段;对每个反向降噪基频片段进行再次翻转处理,得到每个基频片段对应的降噪基频片段。其中,每个降噪基频片段的相位与对应的基频片段的相位相同。
[0094]
举例说明,终端在获取到分子多项式系数b0、b1和b2,以及分母多项式系数a0、a1和a2后,根据滤波器的多项式系数,对每个基频片段进行frr滤波处理的实现过程可以通过以下公式进行表示:
[0095][0096]
其中,y1(n)表示为正向降噪基频片段;y2(n)表示为翻转降噪基频片段;y3(n)表示为反向降噪基频片段;y(n)表示为降噪基频片段。
[0097]
本实施例中,终端获取到滤波器的多项式系数后,根据滤波器的多项式系数,对每个基频片段进行正向滤波处理,得到每个基频片段对应的正向降噪基频片段;对每个正向降噪基频片段进行反向滤波处理,得到每个正向降噪基频片段对应的反向降噪基频片段;对每个反向降噪基频片段进行翻转处理,得到每个基频片段对应的降噪基频片段;使得获取到的降噪基频片段在能够保持原始基频片段的相位的同时,还能够降低每个基频片段中的低频和高频噪声对基频片段的干扰,以提高针对基频片段的颤音检测的准确率。
[0098]
在一个实施例中,根据滤波器的多项式系数,对每个基频片段进行带通滤波处理,得到每个基频片段对应的降噪基频片段,包括:根据滤波器的多项式系数,对每个基频片段进行反向滤波处理,得到每个基频片段对应的反向降噪基频片段;对每个反向降噪基频片段再次进行反向滤波处理,得到每个基频片段对应的降噪基频片段。
[0099]
在实际应用中,终端可以根据滤波器的多项式系数,对每个基频片段进行rrf滤波处理。具体地,终端根据滤波器的多项式系数,对每个基频片段进行翻转处理,得到每个基频片段对应的第一翻转基频片段;然后将每个第一翻转基频片段输入到滤波器中进行滤波处理,得到反向降噪基频片段;对每个反向降噪基频片段再次进行翻转处理,得到每个反向降噪基频片段对应的第二翻转基频片段;将第二翻转基频片段再次输入到滤波器中进行滤波处理,得到每个第二翻转基频片段对应的降噪基频片段,将该降噪基频片段作为每个基频片段对应的降噪基频片段。其中,每个降噪基频片段的相位与对应的基频片段的相位相同。
[0100]
本实施例中,终端获取到滤波器的多项式系数后,根据滤波器的多项式系数,对每个基频片段进行反向滤波处理,得到每个基频片段对应的反向降噪基频片段;对每个反向降噪基频片段再次进行反向滤波处理,得到每个基频片段对应的降噪基频片段;使得获取到的降噪基频片段在能够保持原始基频片段的相位的同时,还能够降低每个基频片段中的低频和高频噪声对基频片段的干扰,以提高针对基频片段的颤音检测的准确率。
[0101]
在一个实施例中,上述步骤s201,对待检测干声的基频序列进行歌词切分处理,得到待检测干声中各个歌词对应的基频片段,具体包括如下内容:对待检测干声进行语音识别,得到待检测干声对应的各个歌词;根据待检测干声对应的各个歌词,对待检测干声的基频序列进行切分,得到各个歌词对应的基频片段。
[0102]
具体地,终端可以通过自动语音识别技术(automatic speech recognition,asr),对待检测干声的基频序列进行语音识别处理,得到待检测干声对应的各个歌词;然后按照预设的歌词粒度,对基频序列进行切分,得到各个歌词对应的基频片段。
[0103]
以一首用户唱的歌曲《小路》为例,终端通过自动语音识别技术对用户的干声进行语音识别处理,得到用户的干声在31.5s至34.6s片段内包含歌词“在”、“一”、“起”;假设预设的歌词粒度为单个字,对基频序列进行切分处理,得到基频序列中的歌词“在”对应的基频片段,歌词“一”对应的基频片段,以及歌词“起”对应的基频片段;其中,“在”、“一”、“起”这三个歌词对应的基频片段如图5所示。
[0104]
在终端的计算能力和处理能力有限时,终端还可以通过对计算力要求较低的语音端点检测技术(voice activity detection,vad)对待检测干声的基频序列进行有效能量判断,得到基频序列中的有效能量,然后利用待检测干声的qrc格式的歌词文件,对携带有效能量的基频序列中的歌词进行起止时间预测,得到基频序列中歌词的起止时间;然后按照预设的歌词粒度和基频序列中的歌词的起止时间,对基频序列进行切分,得到各个歌词对应的基频片段;其中,歌词的起止时间是指用户在唱该歌词时,发声的开始时间和发声的结束时间。
[0105]
本实施例中,通过对待检测干声进行语音识别,得到待检测干声对应的各个歌词;然后根据待检测干声对应的各个歌词,对待检测干声的基频序列进行切分,得到各个歌词对应的基频片段,能够实现对待检测干声的颤音进行更细粒度的颤音检测,以提高颤音检
测的精确度。
[0106]
在一个实施例中,在对待检测干声的基频序列进行歌词切分处理,得到待检测干声中各个歌词对应的基频片段之前,还包括:根据帧间隔,得到待检测干声的基频采样率;根据基频采样率,对待检测干声进行基频提取处理,得到待检测干声的初始基频序列;初始基频序列的单位为频率;根据频率与音符之间的映射关系,对待检测干声的初始基频序列进行单位转换处理,得到待检测干声的基频序列;基频序列的单位为音符。
[0107]
其中,帧间隔是指待检测干声中的音频帧传输之间的时间间隔。基频采样率是指每秒从待检测干声中提取并组成基频的采样个数。
[0108]
具体地,终端获取针对待检测干声的帧间隔,然后将该帧间隔的倒数,作为基频采样率;进而终端根据帧间隔和基频采样率,通过基频提取工具(例如,概率yin技术,crepe技术和harvest基频提取器)对待检测干声进行基频提取处理,得到待检测干声的初始基频序列,其中,初始基频序列的单位为频率。
[0109]
进一步地,为符合用户的听觉习惯,可以将初始基频序列的频率单位转换为音符单位。终端根据频率与音符之间的映射关系(或者转换关系),对待检测干声的初始基频序列进行单位转换处理,得到待检测干声的基频序列,其中,基频序列的单位为音符。频率与音符之间的映射关系可以通过如下公式进行表示:
[0110][0111]
其中,c表示音符编号;f表示频率。
[0112]
实际应用中,可以将帧间隔设置为5ms,则基频序列的基频采样率为1/5ms=1/0.005s=200hz,待检测干声的基频序列可以表示为x(n),其中,n=0,1,2,3,

,n-1,而n表示基频序列的总帧数。
[0113]
本实施例中,终端根据帧间隔,得到待检测干声的基频采样率;一方面,可以利用基频采样率从待检测干声中提取出基频序列,另一方面,可以通过基频采样率来得到基频序列的波动频率;然后根据基频采样率,对待检测干声进行基频提取处理,得到待检测干声的初始基频序列;进而根据频率与音符之间的映射关系,对待检测干声的初始基频序列进行单位转换处理,得到待检测干声的基频序列,实现了待检测干声的基频序列的合理提取,并对基频序列的单位进行了合理转换,使得后续对基频序列的分析更符合用户的听觉效果。
[0114]
在一个实施例中,上述步骤s203,确定每个降噪基频片段的波动幅度和波动频率,具体包括如下内容:根据每个降噪基频片段中的波峰间距和波谷间距,得到每个降噪基频片段的波动周期;根据每个降噪基频片段的波动周期和待检测干声的基频采样率,得到每个降噪基频片段的波动频率。
[0115]
其中,波峰间距是指相邻两个波峰之间的距离;波峰是指在降噪基频片段的一个波长范围内,波幅的最大值。波谷间距是指相邻两个波谷之间的距离;波谷是指在降噪基频片段的一个波长范围内,波幅的最小值。
[0116]
其中,波动频率是指信号在单位时间内经历周期性变化的次数。
[0117]
具体地,终端根据每个降噪基频片段中各个波峰的幅度值,得到每个降噪基频片段中的波峰序列,根据每个降噪基频片段中各个波谷的幅度值,得到每个降噪基频片段中
2.1,-0.3]半音范围内包含有波峰4个、波谷4个,图4中右侧第二幅图在[0.3,2.1]半音范围和[-2.1,-0.3]半音范围内包含有波峰1个、波谷3个,图4中右侧第三幅图在[0.3,2.1]半音范围和[-2.1,-0.3]半音范围内包含有波峰5个、波谷6个。
[0128]
进一步地,终端判断每个降噪基频片段在预设幅度范围内的波峰数量是否满足预设波峰数量条件,其波谷数量是否满足预设波谷数量条件,以及波动频率是否满足预设波动频率条件,进而终端根据每个降噪基频片段是否满足上述三项条件来确定每个降噪基频片段对应的颤音检测结果。
[0129]
本实施例中,终端根据每个降噪基频片段的波动幅度中的波峰和波谷,得到每个降噪基频片段在预设幅度范围内的波峰数量和波谷数量;根据每个降噪基频片段在预设幅度范围内的波峰数量和波谷数量是否满足预设颤音条件,以及波动频率是否满足预设颤音条件,得到每个降噪基频片段的颤音检测结果。采用本方法,能够通过降噪基频片段的滤波程度来设置的预设幅度范围,进而通过降噪基频片段在预设幅度范围内的波峰数量、波谷数量和波动频率来确定降噪基频片段对应的颤音检测结果,实现了降噪基频片段的合理的颤音检测,而非根据常规的基频波动幅度来设置预设幅度范围,提高了颤音检测的准确度。
[0130]
在一个实施例中,根据每个降噪基频片段在预设幅度范围内的波峰数量和波谷数量是否满足预设颤音条件,以及波动频率是否满足预设颤音条件,得到每个降噪基频片段的颤音检测结果,具体包括如下内容:针对每个降噪基频片段,在降噪基频片段的预设幅度范围内的波峰数量满足预设波峰数量条件、波谷数量满足预设波谷数量条件且波动频率满足预设波动频率条件的情况下,确认降噪基频片段属于颤音。
[0131]
其中,预设波峰数量条件和预设波谷数量条件分别指的是属于颤音的基频片段的波峰数量范围和波谷数量范围。预设波动频率条件指的是属于颤音的基频片段的波动频率的范围。可见,预设颤音条件(包括预设波峰数量条件、预设波谷数量条件以及预设波动频率条件)是符合颤音特点的条件。
[0132]
具体地,终端针对每个降噪基频片段,获取基频片段中的波峰序列、波谷序列和波动频率;先根据预设幅度范围,从降噪基频序列的波峰序列和波谷序列中,筛选出满足预设幅度范围的波峰序列和波谷序列,将降噪基频序列中不在该预设幅度范围内的基频波动视为无效波动。在降噪基频序列的波峰序列和波谷序列中不存在满足预设幅度范围的波峰序列和波谷序列的情况下,确认该降噪基频片段不属于颤音。在降噪基频序列的波峰序列和波谷序列中存在满足预设幅度范围的波峰序列和波谷序列的情况下,继续判断该降噪基频序列的预设幅度范围内的波峰数量和波谷数量是否均满足预设波峰数量条件和预设波谷数量条件;在降噪基频片段的预设幅度范围内的波峰数量和波谷数量至少有一个不满足预设波峰数量条件和预设波谷数量条件的情况下,确认该降噪基频片段不属于颤音;在降噪基频片段的预设幅度范围内的波峰数量和波谷数量均满足预设波峰数量条件和预设波谷数量条件的情况下,继续判断该降噪基频序列波动频率是否满足预设波动频率条件;在该降噪基频序列波动频率不满足预设波动频率条件,确认该降噪基频片段不属于颤音;在该降噪基频序列波动频率满足预设波动频率条件,确认该降噪基频片段属于颤音。
[0133]
举例说明,图6为确认降噪基频片段是否属于颤音的流程示意图,如图6所示,终端针对每个降噪基频片段,获取基频片段中的波峰序列pks(i)、波谷序列vly(j)和波动频率f;预设幅度范围可以设置为[0.3,2.1]半音范围和[-2.1,-0.3]半音范围,然后判断降噪基
频序列的波峰序列pks(i)是否大于或等于0.3半音并且小于或等于2.1半音,以及降噪基频序列的波谷序列vly(j)是否大于或等于-2.1半音并且小于或等于-0.3半音;进而判断降噪基频片段的波峰序列pks(i)在[0.3,2.1]半音范围内的波峰数量(标记为np)是否大于或等于2,以及该降噪基频片段的波谷序列vly(j)在[-2.1,-0.3]半音范围内的波谷数量(标记为nv)是否大于或等于2;预设波动频率条件可以设置为[4,8]hz,最后判断降噪基频序列的波动频率f是否在[4,8]hz范围内;在上述三个判断的结果均为是的情况下,确认该降噪基频片段属于颤音,否则,确认该降噪基频片段不属于颤音。
[0134]
例如,由图4中右侧第一幅图可知,歌词“在”的降噪基频片段在[0.3,2.1]半音和[-2.1,-0.3]半音范围内包含有波峰4个、波谷4个,其波动频率f为5.5,通过图6的流程示意图判断后得到歌词“在”属于颤音;由图4中右侧第二幅图可知,歌词“一”的降噪基频片段在[0.3,2.1]半音范围和[-2.1,-0.3]半音范围内包含有波峰1个、波谷3个,通过图6的流程示意图判断后得到歌词“一”不属于颤音;图4中右侧第三幅图在[0.3,2.1]半音范围和[-2.1,-0.3]半音范围内包含有波峰5个、波谷6个,其波动频率f为4.8,通过图6的流程示意图判断后得到歌词“起”属于颤音。
[0135]
本实施例中,终端针对每个降噪基频片段,在降噪基频片段的预设幅度范围内的波峰数量满足预设波峰数量条件、波谷数量满足预设波谷数量条件且波动频率满足预设波动频率条件的情况下,确认降噪基频片段属于颤音,实现了对待检测干声的基频序列中各个基频片段的颤音检测,从而得到待检测干声中的颤音片段,实现了对待检测干声的颤音进行更细粒度的判断,提高了颤音检测的精确度。
[0136]
在一个实施例中,如图7所示,提供了另一种颤音检测方法,以该方法应用于终端为例进行说明,包括以下步骤:
[0137]
步骤s701,根据帧间隔,得到待检测干声的基频采样率;根据基频采样率,对待检测干声进行基频提取处理,得到待检测干声的初始基频序列;初始基频序列的单位为频率。
[0138]
步骤s702,根据频率与音符之间的映射关系,对待检测干声的初始基频序列进行单位转换处理,得到待检测干声的基频序列;基频序列的单位为音符。
[0139]
步骤s703,对待检测干声进行语音识别,得到待检测干声对应的各个歌词;根据待检测干声对应的各个歌词,对待检测干声的基频序列进行切分,得到各个歌词对应的基频片段。
[0140]
步骤s704,根据预设带宽范围和预设滤波器阶数,对滤波器进行仿真处理,得到滤波器的多项式系数;根据滤波器的多项式系数,对每个基频片段进行带通滤波处理,得到每个基频片段对应的降噪基频片段。
[0141]
其中,步骤s704具体可以通过如下步骤进行实现:步骤s704-11,根据滤波器的多项式系数,对每个基频片段进行正向滤波处理,得到每个基频片段对应的正向降噪基频片段。步骤s704-12,对每个正向降噪基频片段进行反向滤波处理,得到每个正向降噪基频片段对应的反向降噪基频片段;对每个反向降噪基频片段进行翻转处理,得到每个基频片段对应的降噪基频片段。
[0142]
其中,步骤s704具体还可以通过如下步骤进行实现:步骤s704-21,根据滤波器的多项式系数,对每个基频片段进行反向滤波处理,得到每个基频片段对应的反向降噪基频片段。步骤s704-22,对每个反向降噪基频片段再次进行反向滤波处理,得到每个基频片段
对应的降噪基频片段。
[0143]
步骤s705,根据每个降噪基频片段中的波峰间距和波谷间距,得到每个降噪基频片段的波动周期;根据每个降噪基频片段的波动周期和待检测干声的基频采样率,得到每个降噪基频片段的波动频率。
[0144]
步骤s706,根据每个降噪基频片段的波动幅度中的波峰和波谷,得到每个降噪基频片段在预设幅度范围内的波峰数量和波谷数量。
[0145]
步骤s707,针对每个降噪基频片段,在降噪基频片段的预设幅度范围内的波峰数量是否满足预设颤音条件、波谷数量满足预设波谷数量条件且波动频率满足预设波动频率条件的情况下,确认降噪基频片段属于颤音。
[0146]
需要说明的的是,步骤s704-11、步骤s704-12和步骤s704-21、步骤s704-22为步骤s704示例的两种执行方式,两者之间为并列关系,实际应用中,可以两者选一个进行执行,也可以两者并列执行并综合两者的结果来得到最终的降噪基频片段。
[0147]
上述颤音检测方法,能够实现以下有益效果:对待检测干声的基频序列进行歌词切分处理,得到待检测干声中各个歌词对应的基频片段;对每个基频片段进行滤波处理,得到每个基频片段对应的降噪基频片段;根据每个降噪基频片段的波动幅度和波动频率,得到每个降噪基频片段的颤音检测结果,并作为待检测干声的目标颤音检测结果,实现了对待检测干声的颤音检测,通过对待检测干声的基频序列进行颤音检测,能够避免因人声差异而导致颤音检测失效的问题,并通过对待检测干声的基频序列进行歌词切分,能够对待检测干声的颤音进行更细粒度的判断,以提高颤音检测的精确度,还通过对基频片段进行滤波处理,来避免旋律趋势和噪声对颤音检测的影响,大大提高了颤音检测的准确度和鲁棒性。
[0148]
为了更清晰阐明本公开实施例提供的颤音检测方法,以下以一个具体的实施例对上述颤音检测方法进行具体说明。如图8所示,提供了又一种颤音检测方法,可以应用于图1中的终端,具体包括如下内容:
[0149]
(1)基频提取:终端获取用户的高质量的待检测干声,然后终端将帧间隔设置为5ms,则基频序列的基频采样率为1/5ms=1/0.005s=200hz,通过基频提取工具,从该待检测干声中提取出有效的初始基频序列x(n),其中,n=0,1,2,3,

,n-1,而n表示基频序列的总帧数,基频提取工具包括:概率yin技术、crepe技术和harvest基频提取器。进而根据如下所示的频率与音符之间的映射关系,对待检测干声的初始基频序列进行单位转换处理,得到待检测干声的基频序列。
[0150][0151]
(2)歌词切分:由于人声的颤音往往依附于歌词中的单个字,所以终端可以通过自动语音识别技术(automatic speech recognition,asr),对待检测干声的基频序列进行语音识别处理,得到待检测干声中的各个歌词;然后按照单个字的歌词粒度,对基频序列进行切分,得到各个歌词对应的基频片段。
[0152]
(3)基频滤波:为避免高频噪声和低频的旋律趋势对基频序列的波动产生干扰,终端将预设带宽范围设置为[4,20]hz,将预设滤波器阶数设置为二阶,进而构建得到二阶带通结构的巴特沃兹滤波器,其表达式h(z)如下所示:
[0153][0154]
其中,z表示二阶带通结构的巴特沃兹滤波器的频域;z的上标-1和-2分别表示阶数;b0、b1和b2均为分子多项式系数;a0、a1和a2均为分母多项式系数。
[0155]
通过对该二阶带通结构的巴特沃兹滤波器进行仿真处理,得到该滤波器的各项系数:b0=0.1122,b1=0,b2=-0.1122,a0=1.0000,a1=-1.7581,a2=0.7757。然后根据分子多项式系数b0、b1和b2,以及分母多项式系数a0、a1和a2,通过该滤波器对每个基频片段进行零相位带通滤波处理,得到每个基频片段对应的降噪基频片段。
[0156]
(4)基频波动周期估计:终端可以根据每个降噪基频片段中所有波峰间距和波谷间距的平均值,得到每个降噪基频片段的波动周期;波动周期可以通过如下公式进行表示:
[0157][0158]
其中,表示为波动周期;i表示降噪基频片段的波峰的总数量;j表示降噪基频片段的波谷的总数量;δp(i)表示波峰序列中第i个波峰位置和第i-1个波峰位置之间的间距,即δp(i)=pks(i)-pks(i-1),其中pks(i)表示波峰序列;δv(j)表示波谷序列中第j个波谷位置和第j-1个波谷位置之间的间距,即δv(j)=vly(j)-vly(j-1),其中vly(j)表示波谷序列。
[0159]
终端根据每个降噪基频片段的波动周期和待检测干声的基频采样率,得到每个降噪基频片段的波动频率,波动频率可以通过如下公式进行表示:
[0160][0161]
其中,f表示波动频率;fs表示基频采样率。由步骤(1)可知,fs=200hz。
[0162]
(5)颤音判断:终端可以将预设幅度范围设置为[0.3,2.1]和[-2.1,-0.3],然后判断降噪基频序列的波峰序列pks(i)是否大于或等于0.3并且小于或等于2.1,以及降噪基频序列的波谷序列vly(j)是否大于或等于-2.1并且小于或等于-0.3;进而判断降噪基频片段的波峰序列pks(i)在[0.3,2.1]范围内的波峰数量(标记为np)是否大于或等于2,以及该降噪基频片段的波谷序列vly(j)在[-2.1,-0.3]范围内的波谷数量(标记为nv)是否大于或等于2;预设波动频率条件可以设置为[4,8]hz,最后判断降噪基频序列的波动频率f是否在[4,8]hz范围内;在上述三个判断的结果均为是的情况下,确认该降噪基频片段属于颤音,否则,确认该降噪基频片段不属于颤音;最终得到用户的待检测干声的目标颤音检测结果。
[0163]
在本实施例中,能够更精确的检测出待检测干声中的颤音部分,还能够避免用户的待检测干声由于音调的走向趋势的影响导致颤音检测失效,同时通过基频率波中的预设带宽范围的设置能够有效规避不合理频率影响,具有更高的检测准确度与鲁棒性。
[0164]
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个
阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0165]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、移动蜂窝网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种颤音检测方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
[0166]
本领域技术人员可以理解,图9中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0167]
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
[0168]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
[0169]
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
[0170]
需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
[0171]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形
处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
[0172]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0173]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 留言:0条
  • 还没有人留言评论。精彩留言会获得点赞!