一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种唱歌检测方法、装置、设备及存储介质与流程

2022-06-01 04:28:12 来源:中国专利 TAG:


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.图1是根据本技术实施例一提供的一种唱歌检测方法的流程图;
29.图2是根据本技术实施例一提供的唱歌检测模型的结构示意图;
30.图3是根据本技术实施例二提供的一种唱歌检测方法的流程图;
31.图4是根据本技术实施例三提供的一种唱歌检测装置的结构示意图;
32.图5是实现本技术实施例的唱歌检测方法的唱歌检测设备的结构示意图。
具体实施方式
33.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
34.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
35.实施例一
36.图1为本技术实施例一提供的一种唱歌检测方法的流程图,本实施例可适用于综合演唱时长、音高、节奏这三个因素检测用户演唱的音频数据与歌曲之间的匹配程度情况,该方法可以由唱歌检测装置来执行,该唱歌检测装置可以采用硬件和/或软件的形式实现,该唱歌检测装置可配置于唱歌检测设备中。如图1所示,该方法包括:
37.步骤101、在用户模仿歌曲演唱时,对用户采集音频数据。
38.在本实施例中,在卡拉ok、游戏、比赛、练习等场景中,用户会选定作为标准模板的歌曲,模仿该歌曲进行演唱,即唱歌,在用户模仿歌曲演唱期间,可以调用唱歌检测设备中的麦克风采集音频数据,从而得到用户唱歌的声音。
39.作为标准模板的歌曲,通常为原作者(演唱者)演唱的音频数据,也可以为除原作者之外的其他模仿者(演唱者)高质量演唱的音频数据,还可以为midi(musical instrument digital interface,乐器数字化接口)文件,等等,本实施例对此不加以限制。
40.在一些情况中,在用户模仿歌曲演唱期间,唱歌检测设备会播放这些歌曲的背景伴奏,那么,对用户采集的音频数据中包含了歌曲的背景伴奏,此时,可以对音频数据进行音轨分离,在音频数据中滤除背景伴奏、剩余用户的歌声。
41.在另一些情况中,在用户模仿歌曲演唱期间,唱歌检测设备并不会会播放这些歌曲的背景伴奏,那么,用户属于自由演唱,对用户采集的音频数据中并不包含歌曲的背景伴奏,而是用户的歌声,此时,并不对音频数据进行音轨分离,直接应用音频数据。
42.区别于卡拉ok,游戏、比赛、练习等场景通常缺乏歌曲的歌词按字滚动的功能,甚至没有伴奏,因此,常常面临以下歌曲的歌词与用户唱歌的歌声非严格对齐的问题:
43.(1)、用户自由演唱的音频数据通常节奏会有整体的偏移,相对于歌曲本身,用户演唱的节奏可能整体加快、也可能整体减慢。
44.(2)、在没有背景伴奏时,用户通常使用适合自己的音调进行演唱,导致音频数据的音高与歌曲的音高难以保持一致。
45.(3)、在娱乐性质较重的场景中,如直播、小游戏等,用户自由演唱的音频数据中常常包含静默、说话喊麦互动等非演唱的音频信号。
46.为了使歌曲的歌词与用户唱歌的歌声非严格对齐的情况下能合理地检测用户演唱的音频数据与歌曲之间的匹配程度,如果利用dtw(dynamic time warp,动态时间规划)算法对音高的曲线进行对齐规整后再计算音高的曲线之间的差异,然而,这种方法依赖基频,当基频提取不准确的时候会明显影响用户演唱的音频数据与歌曲之间的匹配程度,从而影响评分等业务质量。如果通过语谱切分实现用户演唱的音频数据与歌曲之间的对齐,然而,这种方法要求制作歌曲资源库和训练大量的语谱模型,成本较大,并且,同样有依赖
基频的问题。
47.步骤102、计算音频数据与歌曲之间在演唱时长上的偏差,作为时长差异。
48.考虑到用户自由演唱的音频数据中常常包含静默、说话、喊麦互动等非演唱的音频信号,因此,在本实施例中,可以抑制静默、说话、喊麦互动等非演唱的音频信号,统计出用户演唱的音频数据中属于用户演唱的时长,与歌曲的演唱时长上进行比较,得到两者之间在整体上的偏差,记为时长差异。
49.在本技术的一个实施例中,步骤102可以包括如下步骤:
50.步骤1021、将音频数据切分为多个音频片段。
51.为了准确地检测用户演唱的时长,可以将音频数据切分为多个长度相同的片段,记为音频片段,在每个音频片段中具有一帧或多帧音频信号。
52.示例性地,可以从音频数据的初始位置对音频数据添加窗口h
win
,按照预设的步长h
step
移动窗口h
win
,直至到达音频数据的末位,提取将窗口中的音频数据(一帧或多帧音频信号),作为一系列的音频片段x=[x1,x2,

,xi,

,xm],其中,m为音频片段的数量。
[0053]
一般情况下,步长h
step
小于等于窗口h
win
的长度。
[0054]
步骤1022、对每个音频片段计算用户演唱的置信度。
[0055]
在本实施例中,可以预选构建唱歌检测模型的结构,并训练唱歌检测模型的参数,使得唱歌检测模型可用于区分演唱或非演唱。
[0056]
一般情况下,唱歌检测模型属于深度学习的模型,唱歌检测模型的结构均不局限于人工设计的神经网络,也可以通过模型量化方法优化的神经网络,通过nas(neural architecture search,神经网络结构搜索)方法针对用户演唱歌曲的特性搜索的神经网络,等等,本实施例对此不加以限制。
[0057]
在训练唱歌检测模型时,可以构建演唱的数据集(音频数据的集合)、非演唱的数据集(音频数据的集合),演唱的数据集为正样本,非演唱的数据集为负样本,对于演唱的数据集,由于不依赖高质量的专业歌手演唱歌曲,因此,大量不同演唱水平的音频数据比较容易获取,对于非演唱的数据集,语音数据、背景音乐、静默、噪声等音频数据也比较容易获取,使得训练唱歌检测模型的成本较低。
[0058]
将对每个音频片段分别输入唱歌检测模型中,唱歌检测模型按照其结构对音频片段进行处理,输出该音频片段为用户演唱的置信度,这个过程可以表示为f:x

p,其中,f为唱歌检测模型,x为音频片段,p为置信度,p=[p1,p2,

,pi,

,pm],pi∈[0,1],表示第i个音频片段的置信度,置信度越高,表示用户正常歌唱的可能性越该,置信度越低,表示用户正常歌唱的可能性越低。
[0059]
在一个示例中,如图2所示,可加载已完成训练的唱歌检测模型至内存运行,该唱歌检测模型包括编码器encoder、解码器decoder,编码器encoder具有第一卷积块convblock_1、第二卷积块convblock_2、第三卷积块convblock_3、第四卷积块convblock_4。
[0060]
其中,第一卷积块convblock_1、第二卷积块convblock_2、第三卷积块convblock_3、第四卷积块convblock_4均为卷积块(convolution block),卷积块为对一些包含卷积层的结构进行的封装。
[0061]
进一步地,第一卷积块convblock_1、第二卷积块convblock_2、第三卷积块
convblock_3、第四卷积块convblock_4的结构可以依据唱歌评分、唱歌技巧练习等业务的需求进行设置,第一卷积块convblock_1、第二卷积块convblock_2、第三卷积块convblock_3、第四卷积块convblock_4的结构可以相同、也可以不同,本实施例对此不加以限制。
[0062]
由于编码器encoder用于对梅尔频谱特征进行编码,从梅尔频谱特征中提取高纬度的特征,因此,第一卷积块convblock_1、第二卷积块convblock_2、第三卷积块convblock_3、第四卷积块convblock_4输出的特征的通道channel数量依次递增。
[0063]
例如,第一卷积块convblock_1中包含一个卷积层,该卷积层输出的特征的通道数量为64,第二卷积块convblock_2中包含一个卷积层,该卷积层输出的特征的通道数量为128,第三卷积块convblock_3中包含两个卷积层,这两个卷积层输出的特征的通道数量均为256、第四卷积块convblock_4中包含两个卷积层,这两个卷积层输出的特征的通道数量均为512。
[0064]
又例如,第一卷积块convblock_1中包含两个卷积层,这两个卷积层输出的特征的通道数量均为64,第二卷积块convblock_2中包含两个卷积层,这两个卷积层输出的特征的通道数量均为128,第三卷积块convblock_3中包含两个卷积层,该两个卷积层输出的特征的通道数量均为256、第四卷积块convblock_4中包含两个卷积层,该两个卷积层输出的特征的通道数量均为512。
[0065]
在预处理的阶段,可以将音频片段转换为频谱信号,从该频谱信号中提取梅尔mel频谱特征,实现从音频片段中提取梅尔频谱特征。
[0066]
在编码器encoder阶段,将梅尔频谱特征输入第一卷积块convblock_1进行卷积处理,得到第一音频特征。
[0067]
将第一音频特征输入第二卷积块convblock_2进行卷积处理,得到第二音频特征。
[0068]
将第二音频特征输入第三卷积块convblock_3进行卷积处理,得到第三音频特征。
[0069]
将第三音频特征输入第四卷积块convblock_4进行卷积处理,得到第四音频特征。
[0070]
通过torch.mean等方法沿通道的维度对第四音频特征计算平均值,得到特征序列。
[0071]
在解码器decoder阶段,将特征序列输入解码器decoder中,采用多头注意力multi head attention的机制对特征序列融合时序上的上下文信息,得到目标特征。
[0072]
通过sigmoid等方法对目标特征进行激活,得到用户在音频片段中演唱的置信度。
[0073]
步骤1023、按照置信度计算音频数据中用户演唱的时长,作为用户唱歌时长。
[0074]
针对每个音频片段,其置信度表示表示用户正常歌唱的可能性,针对所有音频片段,可以将其整体的置信度映射为音频数据中用户演唱的时长,记为用户唱歌时长。
[0075]
一般情况下,用户唱歌时长与整体的置信度正相关,即,整体的置信度越高,用户唱歌时长越大,反之,整体的置信度越低,用户唱歌时长越小。
[0076]
在一种映射的方式中,对置信度取阈值,若置信度大于预设的阈值,则表示置信度较高,可以确定音频片段中用户正在演唱,若置信度小于或等于预设的阈值,则表示置信度较低,可以确定音频片段中用户并非演唱,从而统计用户正在演唱的音频片段的数量,表示如下:
[0077][0078]
其中,n
sing
为用户正在演唱的音频片段的数量,m为所有音频片段的数量,pi为第i个音频片段的置信度,τ为阈值,[p
i-τ]

表示在pi》τ时,结果为1,在pi≤τ时,结果为0。
[0079]
将该数量与零进行比较。
[0080]
若数量大于零,则计算数量减去预设的常数的差值,计算差值乘以步长的乘积,计算乘积与窗口的和值,将和值赋值为音频数据中用户演唱的时长,作为用户唱歌时长。
[0081]
若数量等于零,则将零赋值为音频数据中用户演唱的时长,作为用户唱歌时长。
[0082]
上述过程可以表示如下:
[0083][0084]
其中,t为用户唱歌时长,n
sing
为用户正在演唱的音频片段的数量,α为常数,如1,h
win
为窗口(长度)、h
step
为步长。
[0085]
步骤1024、查询歌曲中、演唱者演唱的时长,作为参考唱歌时长。
[0086]
在本实施例中,可以预先对作为标准模板的歌曲计算演唱者演唱的时长,记为参考唱歌时长,在服务器中建立歌曲与参考唱歌时长之间的映射关系,在用户模仿该歌曲演唱时,依据歌曲的id、名称等信息向服务器查询该歌曲的的参考唱歌时长。
[0087]
进一步而言,对用户演唱时录制的音频数据计算用户唱歌时长的方式,与,对演唱者演唱时录制的歌曲计算参考唱歌时长的方式相同。
[0088]
步骤1025、计算用户唱歌时长与参考唱歌时长之间的偏差,作为时长差异。
[0089]
在本实施例中,可以比较用户唱歌时长与参考唱歌时长,计算用户唱歌时长与参考唱歌时长之间的偏差,记为时长差异。
[0090]
示例性地,可以对用户唱歌时长与参考唱歌时长之间的差值取绝对值,计算绝对值与参考唱歌时长之间的比值,作为时长差异,表示如下:
[0091]
feat=abs(t
ref-t)/t
ref
[0092]
其中,feat为时长差异,abs()为取绝对值,t
ref
为参考唱歌时长,t为用户唱歌时长。
[0093]
步骤103、计算音频数据与歌曲之间在高音上的相似度,作为音高相似度。
[0094]
针对用户在模仿歌曲演唱时会按照自己的习惯调整音调的情况,本实施例在音高上对用户演唱的音频数据与歌曲进行比较,得到两者之间的相似度,记为音高相似度,从而对音调调整鲁棒。
[0095]
在本技术的一个实施例中,步骤103可以包括如下步骤:
[0096]
步骤1031、分别计算音频数据中每帧音频信号的基频。
[0097]
在本实施例中,可以对音频数据进行分帧处理,划分出每帧音频信号,针对每帧音频信号,可以通过自相关、机器学习等方法得到每帧音频信号的基频[f1,f2,

,fi,

,fm],其中,m为帧数,fi为第i帧音频信号的基频。
[0098]
步骤1032、按照预设的律制将基频转换为音频数据在高音上的特征,作为用户高
音特征。
[0099]
一般情况下,歌曲符合标准的音律,用户模仿歌曲演唱的音频数据也符合标准的音律,因此,可以按照预设的律制(规定音阶中各个音的由来及其精确音高的数学方法)将基频按照一定的函数转换为音频数据在高音上的特征,记为用户高音特征p=[p1,p2,

,pm],其中,m为帧数。
[0100]
以十二平均律作为律制的示例,十二平均律是指八度的音程按波长比例平均分成十二等份,每一等份称为一个半音(小二度)。
[0101]
在本示例中,映射的函数如下:
[0102][0103]
其中,p为用户音高特征,f为基频。
[0104]
步骤1033、分别计算每个用户高音特征偏离整体用户高音特征的程度,作为用户偏离特征。
[0105]
在用户自由演唱的场景下,用户往往会选择舒适的音调进行演唱,实际演唱的音高与歌曲的音高存在偏移,直接比较两者的绝对音高是不全面的,对此,在本实施例中,可以计算每个用户高音特征偏离整体用户高音特征的程度,记为用户偏离特征。
[0106]
示例性地,可以从整体用户音高特征中取中值,将每个音高特征分别减去中值,获得用户偏离特征,此时,用户偏离特征又可称之为零中值音高特征,这个过程表示如下:
[0107]
p
zeromedian
=p-median(p)
[0108]
其中,p
zeromedian
为用户偏离特征,p为用户音高特征,median()表示取中值。
[0109]
用户偏离特征采用相对音高,避免因起调不同导致的匹配程度不一致的情况,相比起使用均值,中值不容易受个别用户音高特征离群(整体用户音高特征)值的影响。
[0110]
步骤1034、对用户高音特征进行差分处理,获得用户差分特征。
[0111]
除了用户偏离特征之外,在本实施例中,可以对用户高音特征进行差分处理,记为用户差分特征。
[0112]
以一阶差分为例,可以确定用户高音特征之间的排序,针对排序为第二位至最后一位(倒数第一位)的用户高音特征,分别减去排序在前一位的用户高音特征,获得用户差分特征,此时,户差分特征又可称之为零差分音高特征,这个过程表示如下:
[0113]
p
derivation
=p[2:n]-p[1:n-1]
[0114]
其中,p
derivation
表示用户差分特征,p[2:n]表示第二位至最后一位(倒数第一位)的用户高音特征,p[1:n-1]表示第一位至最后第二位(倒数第二位)的用户高音特征。
[0115]
当然,除了一阶差分之外,还可以使用二阶差分、三阶差分等高阶差分及其组合计算用户差分特征,等等,本实施例对此不加以限制。
[0116]
用户差分特征关注的是两个音高值变化的幅值和持续时长,同样使得它不易受整体音调调整的影响,也更符合用户自由演唱的场景。
[0117]
步骤1035、查询歌曲在高音上的特征,作为歌曲高音特征。
[0118]
在本实施例中,可以预先对作为标准模板的歌曲计算在高音上的特征,记为歌曲高音特征其中,n为帧数。在服务器中建立歌曲与歌曲高音特征之
间的映射关系,在用户模仿该歌曲演唱时,依据歌曲的id、名称等信息向服务器查询该歌曲的歌曲高音特征。
[0119]
进一步而言,对用户演唱时录制的音频数据计算用户高音特征的方式,与,对演唱者演唱时录制的歌曲计算歌曲高音特征的方式相同。
[0120]
步骤1036、查询每个歌曲高音特征偏离整体歌曲高音特征的程度,作为歌曲偏离特征。
[0121]
在本实施例中,可以预先对作为标准模板的歌曲计算每个歌曲高音特征偏离整体歌曲高音特征的程度,记为歌曲偏离特征在服务器中建立歌曲与歌曲偏离特征之间的映射关系,在用户模仿该歌曲演唱时,依据歌曲的id、名称等信息向服务器查询该歌曲的歌曲偏离特征。
[0122]
进一步而言,对用户演唱时录制的音频数据计算用户偏离特征的方式,与,对演唱者演唱时录制的歌曲计算歌曲偏离特征的方式相同。
[0123]
步骤1037、查询对歌曲高音特征进行差分处理获得的歌曲差分特征。
[0124]
在本实施例中,可以预先对作为标准模板的歌曲的歌曲高音特征进行差分处理,记为歌曲差分特征在服务器中建立歌曲与歌曲差分特征之间的映射关系,在用户模仿该歌曲演唱时,依据歌曲的id、名称等信息向服务器查询该歌曲的歌曲差分特征。
[0125]
进一步而言,对用户演唱时录制的音频数据计算用户差分特征的方式,与,对演唱者演唱时录制的歌曲计算歌曲差分特征的方式相同。
[0126]
步骤1038、分别计算用户高音特征与歌曲高音特征之间的相似度、用户偏离特征与歌曲偏离特征之间的相似度、用户差分特征与歌曲差分特征之间的相似度,作为音高相似度。
[0127]
在本实施例中,音高相似度包括三个维度,分别为用户高音特征与歌曲高音特征之间的相似度、用户偏离特征与歌曲偏离特征之间的相似度、用户差分特征与歌曲差分特征之间的相似度。
[0128]
对于用户高音特征p与歌曲高音特征p
ref
之间的相似度,可以计算用户高音特征p与歌曲高音特征p
ref
之间的距离矩阵dist,其中之间的距离矩阵dist,其中其中,pi为第i个用户高音特征,为第j个歌曲高音特征,利用dtw及其变体、优化版本等非线性规整算法匹配两个序列用户高音特征p与歌曲高音特征p
ref
,求解得到的dtw距离,为用户高音特征p与歌曲高音特征p
ref
之间的相似度。
[0129]
对于用户偏离特征p
zeromedian
与歌曲偏离特征之间的相似度,可以计算用户偏离特征p
zeromedian
与歌曲偏离特征之间的距离矩阵,利用dtw及其变体、优化版本等非线性规整算法匹配用户偏离特征p
zeromedian
与歌曲偏离特征求解得到的dtw距离,为用户偏离特征p
zeromedian
与歌曲偏离特征之间的相似度。
[0130]
对于用户差分特征p
derivation
与歌曲差分特征之间的相似度之间的相似
度,可以计算用户差分特征p
derivation
与歌曲差分特征之间的距离矩阵,利用dtw及其变体、优化版本等非线性规整算法匹配用户差分特征p
derivation
与歌曲差分特征求解得到的dtw距离,为用户差分特征p
derivation
与歌曲差分特征之间的相似度。
[0131]
步骤104、计算音频数据与歌曲之间在节奏上的相似度,作为节奏相似度。
[0132]
在音乐中,节奏表示有规律的音高变化。在用户在模仿歌曲演唱时中,轻微的节奏整体性变快或变慢不会影响对唱歌好坏的判断,因此,针对用户在模仿歌曲演唱时会按照自己的习惯调整节奏、使得节奏整体偏移情况,本实施例在节奏上对用户演唱的音频数据与歌曲进行比较,得到两者之间的相似度,记为节奏相似度,从而对节奏调整鲁棒,使得用户模仿歌曲演唱允许一定程度的节奏整体性变化。
[0133]
在本技术的一个实施例中,步骤104可以包括如下步骤:
[0134]
步骤1041、查询音频数据在音高上的用户音高特征、歌曲在音高上的歌曲音高特征。
[0135]
在本实施例中,预先分别计算音频数据中每帧音频信号的基频,按照预设的律制将基频转换为音频数据在高音上的特征,作为用户高音特征,并缓存用户高音特征,此时,可以在缓存中查询音频数据在音高上的用户音高特征。
[0136]
以及,预先对作为标准模板的歌曲计算在高音上的特征,记为歌曲高音特征。在服务器中建立歌曲与歌曲高音特征之间的映射关系,此时,可以依据歌曲的id、名称等信息向服务器查询该歌曲的歌曲高音特征。
[0137]
当然,若在先已依据歌曲的id、名称等信息向服务器查询该歌曲的歌曲高音特征,并缓存歌曲高音特征,则可以在缓存中查询歌曲在音高上的歌曲音高特征。
[0138]
步骤1042、分别将用户音高特征拟合为第一路径,将歌曲音高特征拟合为第二路径。
[0139]
在本实施例中,可以使用dtw及其变体、优化版本等非线性规整算法将用户音高特征拟合为路径,记为第一路径,第一路径可用于表达音频数据的节奏,以及,使用dtw及其变体、优化版本等非线性规整算法将歌曲音高特征拟合为路径,记为第二路径,第二路径可用于表达歌曲的节奏。
[0140]
示例性地,第一路径、第二路径均为直线。
[0141]
步骤1043、计算第一路径与第二路径之间在整体上的误差,作为节奏相似度。
[0142]
在本实施例中,可以在整体上比较第一路径与第二路径,计算第一路径与第二路径之间在整体上的误差,记为节奏相似度。
[0143]
在具体实现中,分别从第一路径中提取多个第一点、从第二路径中提取多个第二点,将第一点与第二点进行匹配,针对相互匹配的第一点与第二点,计算第一点与第二点之间的第一距离(如欧式距离),对每个第一距离取第一平方,对所有第一平方计算第一平均值,对第一平均值开方,获得第一路径与第二路径之间在整体上的误差,作为节奏相似度,表示如下:
[0144][0145]
其中,∈为第一路径与第二路径之间在整体上的误差,k表示相互匹配的第一点与第二点的数量,∈i表示第i个相互匹配的第一点与第二点之间的第一距离。
[0146]
步骤1044、分别从音频数据中提取第一功率谱、从歌曲中提取第二功率谱。
[0147]
在本实施例中,可以使用预设的特征算子对音频数据中计算功率谱,尤其为短时功率谱,如mfcc(mel frequency cepstrum coefficient,梅尔频率倒谱系数)、线性频率倒谱系数、bark(巴克顿)频率倒谱系数等,记为第一功率谱,同理,可以使用预设的特征算子对歌曲(数据本身)中计算功率谱,尤其为短时功率谱,如mfcc、线性频率倒谱系数、bark频率倒谱系数等,记为第二功率谱。
[0148]
步骤1045、分别将第一功率谱拟合为第三路径,将第二功率谱拟合为第四路径。
[0149]
在本实施例中,可以使用dtw及其变体、优化版本等非线性规整算法将第一功率谱拟合为路径,记为第三路径,第三路径可用于表达音频数据的节奏,以及,使用dtw及其变体、优化版本等非线性规整算法将第二功率谱拟合为路径,记为第四路径,第四路径可用于表达歌曲的节奏。
[0150]
示例性地,第三路径、第四路径均为直线。
[0151]
步骤1046、计算第三路径与第四路径之间在整体上的误差,作为节奏相似度。
[0152]
在本实施例中,可以在整体上比较第三路径与第四路径,计算第三路径与第四路径之间在整体上的误差,记为节奏相似度。
[0153]
在具体实现中,可以分别从第三路径中提取多个第三点、从第四路径中提取多个第四点,将第三点与第四点进行匹配,针对相互匹配的第三点与第四点,计算第三点与第四点之间的第二距离(如欧氏距离),对每个第二距离取第二平方,对所有第二平方计算第二平均值,对第二平均值开方,获得第三路径与第四路径之间在整体上的误差,作为节奏相似度,表示如下:
[0154][0155]
其中,∈为第三路径与第四路径之间在整体上的误差,k表示相互匹配的第三点与第四点的数量,∈i表示第i个相互匹配的第三点与第四点之间的第二距离。
[0156]
若用户演唱的音频数据与歌曲的节奏完全一致,则dtw及其变体、优化版本等非线性规整算法下计算的路径(即第一路径、第二路径、第三路径、第四路径)近似于距离矩阵的对角线,此时,拟合误差较小;若用户演唱的音频数据与歌曲的节奏整体上存在偏差,则dtw及其变体、优化版本等非线性规整算法下的路径(即第一路径、第二路径、第三路径、第四路径)与距离矩阵对角线存在一定的夹角,但由于出现的是整体偏快或整体偏慢,拟合误差同样相对较小。
[0157]
依赖音高的节奏相似度与提取音高的特征的准确性有关,而依赖功率谱的节奏相似度可不受音高影响,并具有表达音频包络的能力。
[0158]
步骤105、将时长差异、音高相似度与节奏相似度拼接为目标特征。
[0159]
在本实施例中,可以对时长差异、音高相似度与节奏相似度进行融合操作,如连接concatenate,从而时长差异、音高相似度与节奏相似度拼接为一个整体的特征,记为目标特征。
[0160]
步骤106、根据目标特征检测音频数据与歌曲之间的匹配程度。
[0161]
针对多模态的目标特征,可以将目标特征映射为音频数据与歌曲之间的匹配程度。
[0162]
在具体实现中,可以预先生成决策树(decision tree,dt),其生成算法有id3、c4.5和c5.0等。决策树是一种树形结构,其中每个内部节点表示一个属性上的判断,每个分支代表一个判断结果的输出,最后每个叶节点代表一种分类结果(即目标特征检测音频数据与歌曲之间的匹配程度)。
[0163]
加载决策树至内存运行,将目标特征输入决策树中进行处理,以输出音频数据与歌曲之间的匹配程度。
[0164]
在本实施例中,在用户模仿歌曲演唱时,对用户采集音频数据;计算音频数据与歌曲之间在演唱时长上的偏差,作为时长差异;计算音频数据与歌曲之间在高音上的相似度,作为音高相似度;计算音频数据与歌曲之间在节奏上的相似度,作为节奏相似度;将时长差异、音高相似度与节奏相似度拼接为目标特征;根据目标特征检测音频数据与歌曲之间的匹配程度。通过演唱的时长计算音频数据与歌曲的偏差,可区分演唱、非演唱,抑制静默、说话、喊麦互动等非演唱的操作对于匹配程度的影响,在音高、节奏上计算音频数据与歌曲之间的相似度,可在用户演唱的音频数据在音调、节奏上整体出现偏移的情况下提高鲁棒性,将这三个方面的特征融合为目标特征,这多模态的目标特征可以提高音频数据与歌曲之间的匹配程度的准确度。
[0165]
实施例二
[0166]
图3为本技术实施例二提供的一种唱歌检测方法的流程图,本实施例在上述实施例的基础上增加了评分的业务操作。如图3所示,该方法包括:
[0167]
步骤301、在用户模仿歌曲演唱时,对用户采集音频数据。
[0168]
步骤302、计算音频数据与歌曲之间在演唱时长上的偏差,作为时长差异。
[0169]
步骤303、计算音频数据与歌曲之间在高音上的相似度,作为音高相似度。
[0170]
步骤304、计算音频数据与歌曲之间在节奏上的相似度,作为节奏相似度。
[0171]
步骤305、将时长差异、音高相似度与节奏相似度拼接为目标特征。
[0172]
步骤306、根据目标特征检测音频数据与歌曲之间的匹配程度。
[0173]
步骤307、将匹配程度映射为用户模仿歌曲演唱的评分。
[0174]
在卡拉ok、游戏等场景中,可以将用户演唱的音频数据与歌曲之间的匹配程度映射为用户模仿歌曲演唱的评分,从而将该评分应用于业务操作,例如,显示评分,按照评分对用户进行排序,根据评分分析用户唱歌的劣势,等等。
[0175]
一般情况下,评分与匹配程度正相关,即,匹配程度越高,评分越高,反之,匹配程度越低,评分越低。
[0176]
对于一些简单的场景,可以直接将匹配程度赋值为用户模仿歌曲演唱的评分,或者,将匹配程度放大至指定范围(如[0,100])内的数值,作为用户模仿歌曲演唱的评分,等等,本实施例对此不加以限制。
[0177]
对于一些复杂的场景,除了用户演唱的音频数据与歌曲之间的匹配程度之外,还可能参加其他因素,通过加权求和等方式生成用户模仿歌曲演唱的评分,例如,用户的动作与演唱者的动作之间的匹配程度,等等,本实施例对此不加以限制。
[0178]
实施例三
[0179]
图4为本技术实施例三提供的一种唱歌检测装置的结构示意图。如图4所示,该装置包括:
[0180]
音频数据采集模块401,用于在用户模仿歌曲演唱时,对所述用户采集音频数据;
[0181]
时长差异计算模块402,用于计算所述音频数据与所述歌曲之间在演唱时长上的偏差,作为时长差异;
[0182]
音高相似度计算模块403,用于计算所述音频数据与所述歌曲之间在高音上的相似度,作为音高相似度;
[0183]
节奏相似度计算模块404,用于计算所述音频数据与所述歌曲之间在节奏上的相似度,作为节奏相似度;
[0184]
目标特征拼接模块405,用于将所述时长差异、所述音高相似度与所述节奏相似度拼接为目标特征;
[0185]
匹配程度计算模块406,用于根据所述目标特征检测所述音频数据与所述歌曲之间的匹配程度。
[0186]
在本技术的一个实施例中,所述时长差异计算模块402包括:
[0187]
音频片段切分模块,用于将所述音频数据切分为多个音频片段;
[0188]
置信度计算模块,用于对每个所述音频片段计算所述用户演唱的置信度;
[0189]
用户唱歌时长计算模块,用于按照所述置信度计算所述音频数据中所述用户演唱的时长,作为用户唱歌时长;
[0190]
参考唱歌时长查询模块,用于查询所述歌曲中、演唱者演唱的时长,作为参考唱歌时长;
[0191]
时长偏差计算模块,用于计算所述用户唱歌时长与所述参考唱歌时长之间的偏差,作为时长差异。
[0192]
在本技术的一个实施例中,所述音频片段切分模块包括:
[0193]
窗口添加模块,用于对所述音频数据添加窗口,按照预设的步长移动所述窗口;
[0194]
窗口提取模块,用于提取将所述窗口中的所述音频数据,作为音频片段。
[0195]
在本技术的一个实施例中,所述置信度计算模块包括:
[0196]
唱歌检测模型加载模块,用于加载唱歌检测模型,所述唱歌检测模型包括编码器、解码器,所述编码器具有第一卷积块、第二卷积块、第三卷积块、第四卷积块;
[0197]
梅尔频谱特征提取模块,用于从所述音频片段中提取所述梅尔频谱特征;
[0198]
第一卷积处理模块,用于将所述梅尔频谱特征输入所述第一卷积块进行卷积处理,得到第一音频特征;
[0199]
第二卷积处理模块,用于将所述第一音频特征输入所述第二卷积块进行卷积处理,得到第二音频特征;
[0200]
第三卷积处理模块,用于将所述第二音频特征输入所述第三卷积块进行卷积处理,得到第三音频特征;
[0201]
第四卷积处理模块,用于将所述第三音频特征输入所述第四卷积块进行卷积处理,得到第四音频特征;
[0202]
序列处理模块,用于沿通道的维度对所述第四音频特征计算平均值,得到特征序列;
[0203]
特征融合模块,用于将所述特征序列输入所述解码器中,采用多头注意力的机制对所述特征序列融合时序上的上下文信息,得到目标特征;
[0204]
特征激活模块,用于对所述目标特征进行激活,得到所述用户在所述音频片段中演唱的置信度。
[0205]
在本技术的一个实施例中,所述用户唱歌时长计算模块包括:
[0206]
演唱确定模块,用于若所述置信度大于预设的阈值,则确定所述音频片段中所述用户正在演唱;
[0207]
数量统计模块,用于统计所述用户正在演唱的所述音频片段的数量;
[0208]
数量计算模块,用于若所述数量大于零,则计算所述数量减去预设的常数的差值,计算所述差值乘以所述步长的乘积,计算所述乘积与所述窗口的和值,将所述和值赋值为所述音频数据中所述用户演唱的时长,作为用户唱歌时长;
[0209]
时长置零模块,用于若所述数量等于零,则将零赋值为所述音频数据中所述用户演唱的时长,作为用户唱歌时长。
[0210]
在本技术的一个实施例中,所述时长偏差计算模块包括:
[0211]
差值计算模块,用于对所述用户唱歌时长与所述参考唱歌时长之间的差值取绝对值;
[0212]
比值计算模块,用于计算所述绝对值与所述参考唱歌时长之间的比值,作为时长差异。
[0213]
在本技术的一个实施例中,所述音高相似度计算模块403包括:
[0214]
基频计算模块,用于分别计算所述音频数据中每帧音频信号的基频;
[0215]
用户高音特征转换模块,用于按照预设的律制将所述基频转换为所述音频数据在高音上的特征,作为用户高音特征;
[0216]
用户偏离特征计算模块,用于分别计算每个所述用户高音特征偏离整体所述用户高音特征的程度,作为用户偏离特征;
[0217]
用户差分特征计算模块,用于对所述用户高音特征进行差分处理,获得用户差分特征;
[0218]
歌曲高音特征查询模块,用于查询所述歌曲在高音上的特征,作为歌曲高音特征;
[0219]
歌曲偏离特征查询模块,用于查询每个所述歌曲高音特征偏离整体所述歌曲高音特征的程度,作为歌曲偏离特征;
[0220]
歌曲差分特征查询模块,用于查询对所述歌曲高音特征进行差分处理获得的歌曲差分特征;
[0221]
多特征相似度计算模块,用于分别计算所述用户高音特征与所述歌曲高音特征之间的相似度、所述用户偏离特征与所述歌曲偏离特征之间的相似度、所述用户差分特征与所述歌曲差分特征之间的相似度,作为音高相似度。
[0222]
在本技术的一个实施例中,所述用户偏离特征计算模块包括:
[0223]
中值提取模块,用于从整体所述用户音高特征中取中值;
[0224]
中值偏离计算模块,用于将每个所述音高特征分别减去所述中值,获得用户偏离特征。
[0225]
在本技术的一个实施例中,所述用户差分特征计算模块包括:
[0226]
高音特征排序模块,用于确定所述用户高音特征之间的排序;
[0227]
一阶差分处理模块,用于针对排序为第二位至最后一位的所述用户高音特征,分别减去排序在前一位的所述用户高音特征,获得用户差分特征。
[0228]
在本技术的一个实施例中,所述节奏相似度计算模块404包括:
[0229]
音高特征查询模块,用于查询所述音频数据在音高上的用户音高特征、所述歌曲在音高上的歌曲音高特征;
[0230]
音高路径拟合模块,用于分别将所述用户音高特征拟合为第一路径,将所述歌曲音高特征拟合为第二路径;
[0231]
音高路径误差计算模块,用于计算所述第一路径与所述第二路径之间在整体上的误差,作为节奏相似度;
[0232]
功率谱提取模块,用于分别从所述音频数据中提取第一功率谱、从所述歌曲中提取第二功率谱;
[0233]
功率谱路径拟合模块,用于分别将所述第一功率谱拟合为第三路径,将所述第二功率谱拟合为第四路径;
[0234]
功率谱路径误差计算模块,用于计算所述第三路径与所述第四路径之间在整体上的误差,作为节奏相似度。
[0235]
在本技术的一个实施例中,所述音高路径误差计算模块包括:
[0236]
音高点提取模块,用于分别从所述第一路径中提取多个第一点、从所述第二路径中提取多个第二点;
[0237]
音高点距离计算模块,用于针对相互匹配的所述第一点与所述第二点,计算所述第一点与所述第二点之间的第一距离;
[0238]
音高点处理计算模块,用于对每个所述第一距离取第一平方,对所有所述第一平方计算第一平均值,对所述第一平均值开方,获得所述第一路径与所述第二路径之间在整体上的误差,作为节奏相似度。
[0239]
在本技术的一个实施例中,所述功率谱路径误差计算模块包括:
[0240]
功率谱点提取模块,用于分别从所述第三路径中提取多个第三点、从所述第四路径中提取多个第四点;
[0241]
功率谱点距离计算模块,用于针对相互匹配的所述第三点与所述第四点,计算所述第三点与所述第四点之间的第二距离;
[0242]
功率谱点处理计算模块,用于对每个所述第二距离取第二平方,对所有所述第二平方计算第二平均值,对所述第二平均值开方,获得所述第三路径与所述第四路径之间在整体上的误差,作为节奏相似度。
[0243]
在本技术的一个实施例中,所述匹配程度计算模块406包括:
[0244]
决策树加载模块,用于加载决策树;
[0245]
决策树处理模块,用于将所述目标特征输入所述决策树中进行处理,以输出所述
音频数据与所述歌曲之间的匹配程度。
[0246]
在本技术的一个实施例中,还包括:
[0247]
评分映射模块,用于将所述匹配程度映射为所述用户模仿所述歌曲演唱的评分。
[0248]
本技术实施例所提供的唱歌检测装置可执行本技术任意实施例所提供的唱歌检测方法,具备执行唱歌检测方法相应的功能模块和有益效果。
[0249]
实施例四
[0250]
图5示出了可以用来实施本技术的实施例的唱歌检测设备10的结构示意图。唱歌检测设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。唱歌检测设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本技术的实现。
[0251]
如图5所示,唱歌检测设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(rom)12、随机访问存储器(ram)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(rom)12中的计算机程序或者从存储单元18加载到随机访问存储器(ram)13中的计算机程序,来执行各种适当的动作和处理。在ram 13中,还可存储唱歌检测设备10操作所需的各种程序和数据。处理器11、rom 12以及ram 13通过总线14彼此相连。输入/输出(i/o)接口15也连接至总线14。
[0252]
唱歌检测设备10中的多个部件连接至i/o接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许唱歌检测设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0253]
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如唱歌检测方法。
[0254]
在一些实施例中,唱歌检测方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由rom 12和/或通信单元19而被载入和/或安装到唱歌检测设备10上。当计算机程序加载到ram 13并由处理器11执行时,可以执行上文描述的唱歌检测方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行唱歌检测方法。
[0255]
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器
可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0256]
用于实施本技术的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0257]
在本技术的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0258]
为了提供与用户的交互,可以在唱歌检测设备上实施此处描述的系统和技术,该唱歌检测设备具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给唱歌检测设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0259]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、区块链网络和互联网。
[0260]
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务中,存在的管理难度大,业务扩展性弱的缺陷。
[0261]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本技术中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本技术的技术方案所期望的结果,本文在此不进行限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献