一种颤音识别的方法与装置与流程

文档序号:19998822发布日期:2020-02-22 02:59阅读:1136来源:国知局
技术简介:
本专利针对现有颤音识别准确率低、定位不精准的问题,提出改进方法。通过预处理删除干扰帧,结合音调滑动窗计算标准差与目标周期,利用阈值筛选有效分组,最终通过分组比值判定颤音。该方案提升了识别精度与定位能力。
关键词:颤音识别,音调滑动窗

本发明涉及语音处理领域,尤其涉及一种颤音识别的方法与装置。



背景技术:

在歌声音调提取时,我们发现在演唱时某一个字的音调并不是固定值,而是随着时间以一定的音调值为中心波动变化。这是由于演唱者在演唱过程中受歌曲情绪的感染加上歌唱的技巧所表现出来的颤音。颤音的识别可应用于演唱评分中对颤音的打分基准,丰富演唱评分功能。

现有的颤音提取方法主要是通过截取待检测声音片段,对声音片段截去头尾固定长度,对中间数据进行分帧,并计算每一帧的音调,得到的音调序列分别以不同的周期长度分成几个片段,对相邻片段计算音调距离,音调距离最小的周期长度若小于设定的阀值,测判定为颤音。该方法针对特定的声音数据有一定的颤音检测效果,但在待检测声音片段与实际需要检测颤音的字的时间坐标存在一定误差时很容易造成颤音检测错误或者漏检,并且字的颤音位置并不固定存在于待检测声音片段中间位置,也可能存在于一段固定音高之后,对于上述情况,现有方法不能很好的检测颤音。

目前,针对上述问题,还没有提出一种能够有效解决问题的技术方案。



技术实现要素:

本发明提供了一种颤音识别方法与装置,有效解决了现有颤音识别准确度不高的问题,不仅提高了颤音识别的精度,同时可精确定位颤音位置和颤音时长。

一方面,本发明提供了一种颤音识别的方法,包括:

获取待检测音频数据,对所述待检测音频数据根据预设分帧滑动窗长度和步进进行分帧,识别并删除清音帧和低音强尾音帧后,得到有效音频检测片段;

判断所述有效音频检测片段长度是否满足预设颤音最小时长要求;

当满足所述预设颤音最小时长要求时,计算所述有效音频检测片段所有帧的音调,得到音调序列;

对所述音调序列根据预设音调滑动窗长度和步进进行分组,计算每一分组的音调标准差和目标周期,获取所有分组对应的音调标准差序列和目标周期序列;

删除音调标准差大于预设标准差阈值以及目标周期大于预设颤音周期最小值或小于预设颤音周期最大值的分组;

计算删除后剩余分组数与删除前总组数的比值,若比值大于一预设参数,将待检测音频数据判定为颤音信号。

在一个实施例中,所述计算每一个分组的目标周期的方法为:

根据至少一个预设周期值将每一分组的音调划分成至少两个音调序列分段;

针对每一个预设的周期值,计算所述音调序列中至少两个相邻音调序列分段之间的音调距离值,获取计算所得的音调距离值的平均值作为所述预设周期值对应的音调距离;

获取所有与所述预设周期值对应的音调距离,构成音调距离序列,将所述音调距离序列中最小的音调距离作为所述分组对应的目标周期。

在一个实施例中,识别所述清音帧和低音强尾音帧的方法为:

在待检测音频数据的前半部分,将低于预设过零率下限值的数据帧识别为清音帧;

在待检测音频数据的后半部分,将帧电平小于预设帧电平下限的数据帧识别为低音强尾音帧。

在一个实施例中,计算所述有效音频检测片段所有帧的音调,得到音调序列后,还包括:

对所述音调序列做滤波处理,将滤波后的音调序列平均音调作为所述有效检测音频片段的音频信号音调。

在一个实施例中,当所述待检测音频数据判定为非颤音信号时,输出非颤音信号判定结果的同时,将所述音频信号音调作为待检测音频数据音调进行输出。

另一方面,本发明还提供了一种颤音识别的装置,包括:

截取模块,用于获取待检测音频数据,对所述待检测音频数据根据预设分帧滑动窗长度和步进进行分帧,识别并删除清音帧和低音强尾音帧后,得到有效音频检测片段;

判断模块,用于判断所述有效音频检测片段长度是否满足预设颤音最小时长要求;

音调序列获取模块,用于当满足所述预设颤音最小时长要求时,根据计算所述有效音频检测片段所有帧的音调,得到音调序列;

分组计算模块,用于对所述音调序列根据预设音调滑动窗长度和步进进行分组,计算每一分组的音调标准差和目标周期,获取所有分组对应的音调标准差序列和目标周期序列;

删除模块,用于删除所述音调标准差大于预设标准差阈值以及所述目标周期大于预设颤音周期最小值或小于预设颤音周期最大值的分组;

判定模块,用于计算删除后剩余分组数与删除前总组数的比值,若比值大于一预设参数,将待检测音频数据判定为颤音信号。

在一个实施例中,所述分组计算模块,具体包括:

音调序列分段模块,用于根据至少一个预设周期值将每一分组的音调划分成至少两个音调序列分段;

音调距离计算模块,用于针对每一个预设的周期值,计算所述音调序列中至少两个相邻音调序列分段之间的音调距离值,获取计算所得的音调距离值的平均值作为所述预设周期值对应的音调距离;

分组目标周期确定模块,用于获取所有与所述预设周期值对应的音调距离,构成音调距离序列,将所述音调距离序列中最小的音调距离作为所述分组对应的目标周期。

在一个实施例中,所述截取模块还包括:

清音帧识别模块,用于在待检测音频数据的前半部分,将低于预设过零率下限值的数据帧识别为清音帧;

低音强尾音帧识别模块,用于在待检测音频数据的后半部分,将帧电平小于预设帧电平下限的数据帧识别为低音强尾音帧。

在一个实施例中,所述音调序列获取模块包括:

滤波模块,用于对所述音调序列做滤波处理;

平均音调计算模块,用于计算滤波后音调序列的平均音调,并将所述平均音调作为所述有效检测音频片段的音频信号音调。

在一个实施例中,其特征在于,在判断模块之后,还包括:

非颤音识别输出模块,用于当所述待检测音频数据判定为非颤音信号时,输出非颤音信号判定结果的同时,将所述音频信号音调作为待检测音频数据音调进行输出。

本发明从对待检测音频数据截取方法做改进出发,识别待检测音频数据帧中的清音帧和低音强尾音帧,最大限度地提取了有效音频检测片段;同时,本发明改进了颤音周期的检测方法,通过采用音调滑动窗法获取颤音周期,可有效屏蔽非颤音信号对检测结果的影响。本发明方法与现有方法相比,不能极大地提高了颤音识别的准确度,并且可精确定位颤音位置和颤音时长。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一种颤音识别方法的流程示意图;

图2是本发明一种颤音识别装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本说明书中,诸如第一和第二这样的形容词仅可以用于将一个元素或动作与另一元素或动作进行区分,而不必要求或暗示任何实际的这种关系或顺序。在环境允许的情况下,参照元素或部件或步骤(等)不应解释为局限于仅元素、部件、或步骤中的一个,而可以是元素、部件、或步骤中的一个或多个等。

在本说明书中,为了便于描述,附图中所示的各个部分的尺寸并不是按照实际的比例关系绘制的。

如图1所示,为本发明一种颤音识别方法的流程示意图。

s11、获取待检测音频数据,对所述待检测音频数据根据预设分帧滑动窗长度和步进进行分帧,识别并删除清音帧和低音强尾音数据后,得到有效音频检测片段;

s12、判断所述有效音频检测片段长度是否满足预设颤音最小时长要求;

s13、当满足所述预设颤音最小时长要求时,计算所述有效音频检测片段所有帧的音调,得到音调序列;

s14、对所述音调序列根据预设音调滑动窗长度和步进进行分组,计算每一分组的音调标准差和目标周期,获取所有分组对应的音调标准差序列和目标周期序列;

s15、删除音调标准差大于预设标准差阈值以及目标周期大于预设颤音周期最小值或小于预设颤音周期最大值的分组;

s16、计算删除后剩余分组数与删除前总组数的比值,若比值大于一预设参数,将待检测音频数据判定为颤音信号。

步骤s11中,在实际的识别过程中,对音频数据进行计算和分析之前要首先对音频数据进行归一化处理,将不同位宽的脉冲编码调制pcm(pulsecodemodulation)音频数据值归一化到-1~+1范围,使不同位宽的音频数据所表示的幅度在同一量级,方便后续的运算、分析。

归一化公式如下所示:

其中,val表示pcm音频数据,它以定点数表示。nval归一化后的音频数据值,它以浮点数据表示。bitnum表示定点val数据的位宽。

即,首先需要根据上述方法对获取的待检测音频数据做归一化处理,归一化处理结束之后,还需要对归一化之后的音频数据做低通滤波。优选的,滤波频点为8000hz。低通滤波的目的是为了滤除对音调提取贡献较小的人声谐波信号和高频的噪声、音乐信号,提高音调提取准确度。有关低通滤波器的参数计算和实现为行业通用知识,这里不再细述。

为了能够最大限度地截取对颤音识别有用的有效音频检测片段,需要把对音调提取会造成干扰的清音数据、较低音强的尾音数据等删除掉。

在本发明中,采用分帧滑动窗,即采用预设分帧滑动窗长度和步进进行分帧,识别清音帧、低音强尾音帧,具体的操作过程如下所述:

首先,对分帧滑动窗的规格进行设定:

一般情况下,窗函数采用汉明窗,滑动窗的分帧长度,取值范围为20~40毫秒的数据,优选地,取30毫秒的数据。换算成数据个数为framelen=frametime*fs/1000。其中,frametime表示分帧长度的时间长度,单位毫秒,fs表示采样率。

分帧滑动窗的分帧步进,取值范围为1~10毫秒的数据,优选1毫秒。换算成数据个数为framehop=framehoptime*fs/1000。其中framehoptime表示分帧步进的时间长度,单位毫秒。

然后,进行清音判定。清音数据存在于一个字的起始部分,清音是不经过声带发声产生的声音,绝大部分声母是清音,韵母都为浊音,音调的提取主要是依靠浊音数据。清音数据在频域上看没有固定基频和谐波,频率集中在高频部分,无法作为音调提取有效数据。这里,可以通过过零率来识别清音帧。过零率的检测方法如下公式所示:

式中,wl表示滑动窗的分帧长度,sign(k)表示窗内数据的符号,当数据大于零时符号为1,小于零时符号为-1,等于0时符号为0。在48khz或44.1khz采样率倍频到96k或88.2k采样率下,我们优选清音过零率下限为0.1,即当zcr>0.1时,识别为清音帧。

由于对一个字来说,清音往往存在于一个字的开始部分,因此,在清音判定时,为了节省运行的时间,可以只对这个字前半部分的音频数据进行清音判定。即:设这个字所有音频数据的分帧表示为f1~fn,n表示帧序号,对前n/2个分帧做清音判定,查找所有被判定为清音的分帧中的最大帧序号surdend,以此做为清音帧结束帧,即,surdend之前的帧都判定为清音帧。

接下来进行低音强尾音帧的识别。低音强在这里指的是可进行分析处理的最小音强,如果声音信号低于设定的低音强值则认为声音信号相对平均音强过小或与噪声信号无法区分,不对该声音信号进行分析和处理。

颤音一般存在于一句歌词的最后一个字,在实际情况中,最后一个字在唱到末尾时,声音音量会减小,导致音强变小。由于人声音频数据的较小音强对应的数据帧内的有效音频与噪音对应的音频往往无法区分,这同样不利于音调的提取,因此,需要把尾音数据中的较低音强截去处理。某一个字中出现的颤音,可能是在清音后直接出现,也可能是有一段平稳的音调后,在尾部出现颤音,现有的方法直接将一个字的音频数据末尾去掉的操作,很容易把颤音信号截掉从而造成误判。

本发明的方法是通过计算平均音强解决上述问题,具体操作为:

计算所有数据帧的帧电平和平均电平,公式如下:

式中,data(n,k)表示音频第n帧中的第k个数据,wl表示滑动窗的分帧长度,unit(n)表示第n帧的数据均方和,zerosdb表示相对静音对应的电平值,这里我们取-127,即在zerosdb以下的电平都为静音,unitdb(n)表示第n帧的电平值,avgdb表示平均电平,m表示帧序号,n表示总帧个数。

然后,将电平转换为音强,公式如下:

unitsi(n)=unintdb-zerosdb;

avgsi=avgdb-zerosdb;

其中unitsi(n)表示第n帧的音强,avgsi表示平均音强,这里以1db表示一个强度等级,可表示强度范围在0~127,直观易于显示。

由于对一个字来说,尾音数据存在于一个字的末尾部分,因此,在较低音强的尾音数据的判定时,为了节省运行的时间,可以只对这个字后半部分的音频数据进行判定。一种执行的方式为:对这个字后n/2个分帧的音强做判断,找到音强小于(avgsi-20)的帧序号的最小值sistart,可认为在sistart之后的所有帧的音强较小,可识别为低音强尾音帧。

在成功识别完清音帧和较低音强尾音数据之后,删除清音帧和低音强尾音帧,得到对颤音识别有用的有效音频检测片段。

然后,执行步骤s12,判断有效音频检测片段长度是否满足预设颤音最小时长要求,具体实现方法如下所述:

计算s11步骤中得到的sistart与surdend之间的差值,div=sistart-surdend。若div大于最小有效帧个数minframenum,则继续进行下一步运算;若div小于最小有效帧个数minframenum,则不满足颤音计算条件,判定为非颤音。最小有效帧个数minframenum根据颤音最小时长tmintime得到,具体计算公式为:

minframenum=(tmintime+100)/framehop

式中,framehop代表音频数据滑动窗分帧步进,tmintime代表颤音最小时长。颤音最小时长是指可产生颤音的字的最小时长,若某字的时长小于颤音最小时长认为该字不满足发出颤音的条件。一般字的时长在大于0.9秒时颤音出现的比率增大,可达到70%以上,小于0.9秒后颤音出现的比例大幅度下限,一般在50%以下。这里建议颤音最小时长参数设置的范围在0.7~1.1秒。

步骤s13中,当有效音频检测片段时长大于预设颤音最小时长要求时,对获取的有效音频检测片段进行音调提取。

音调提取的方法可采用自相关法、平均幅度差分函数或倒谱法,计算所有有效数据帧所对应的音调序列,同时采用滤波的方法,平滑音调计算中产生的噪点。

具体地,滤波的方法可以采用5点中值滤波,结合对超过5个点的偏移平均音调的点做修正处理。在音调提取过程中,若待提取的音频信号混有音乐信号、鼓声、环境噪声等,均会对提取的音调值造成较大影响,如果不对这些音调值处理,会对后续颤音周期的判定造成较大影响,甚至造成误判。

首先计算音调序列的平均音调avgtone,接下来对提取的音调值序列tone(n)进行修正,修正方法如下公式所示:

根据上述修正公式,进而得到有效的音调序列。

步骤s14中,对步骤s13中得到的音调序列根据预设音调滑动窗长度和步进进行分组,计算每一分组的音调标准差和目标周期,获取所有分组对应的音调标准差序列和目标周期序列。

对音调序列根据音调滑动窗长度和步进进行分组,音调滑动窗大小设为tonewlen,音调滑动窗步进设为tonewhop。

音调滑动窗长度tonewlen代表音调序列的个数,建议音调滑动窗长度对应的时间取值范围为500~800ms,由于一般音调滑动窗长度的选取为颤音平均周期的3~4倍时,便可以很好地计算每组内的颤音周期。根据颤音周期的上下限138~192ms,这里优选600ms的数据帧作为音调滑动窗长度tonewlen,对应的音调个数为time/framehoptime,对应的音调滑动窗大小根据如下公式计算得到:

其中,round()表示四舍五入运算,framehoptime表示分帧步进的时间长度,单位毫秒。

音调滑动窗步进tonewhop代表音调滑动窗每次步进的帧数,即音调个数,为一帧长度的整数倍,取值范围为1~10倍,取值较小时音调分组数量多,计算精度高,颤音判定准确度高,但是运算量大,取值较大时音调分组数量少,运算速度快,颤音判定准确度低。这里我们优选取值为6。

对音调序列进行分组之后,需要计算每个分组内的音调标准差和目标周期。

计算每个分组内的音调标准差sdtone的公式如下:

式中,n表示分组号,tone_m表示分组内的音调序列,avgtone_m表示分组内音调序列的平均音调值。

计算任一个分组的目标周期的方法如下所示:

步骤1、根据至少一个预设周期值将每一分组的音调划分成至少两个音调序列分段;

步骤2、针对每一个预设的周期值,计算所述音调序列中至少两个相邻音调序列分段之间的音调距离值,获取计算所得的音调距离值的平均值作为所述预设周期值对应的音调距离;

步骤3、获取所有与所述预设周期值对应的音调距离,构成音调距离序列,将所述音调距离序列中最小的音调距离作为所述分组对应的目标周期。

在步骤1中,首先要确定至少一个预设周期值。这里,本发明首先根据颤音周期上下限,确定至少一个预设周期值,取值范围在100~300毫秒。换算为音调点数公式如下所示:

其中segsize表示一预设周期内的音调序列点数,即周期长度。segtime表示预设周期时间,单位为毫秒。采用等间距步进确定预设周期值,步进取值范围可在1~30毫秒之间。步进取值越小,计算量越大,目标周期检测越接近真实值,步进取值越大,计算量越小,目标周期检测精确度下降。优选取值为10毫秒。换算成音调个数为round(10/framehoptime)。对应预设周期取值为100、110、120、…300(单位为毫秒)。

接下来以任一个预设周期值为窗,将一个分组的音调序列分成至少两段,多余部分舍去。然后计算至少两个相邻音调序列分段之间的音调距离值,取相邻段音调距离值的平均值作为该预设周期对应的音调距离。

音调分段方法和音调距离计算公式如下所示:

k=1~segnum

其中d(k)表示第k个相邻音调段的音调距离,segtone指被待检测周期分隔的音调数据段;k指示第几个相邻音调段。

该预设周期值对应的音调距离testd为

当前分组对应的目标周期为ttrill=min(testd(n)),n=1~testnum

其中ttrill表示当前分组对应的目标周期,testnum表示预设周期值的个数。

按照上述方法对所有分组内的音调标准差和目标周期进行计算,最后得到所有分组对应的音调标准差序列和目标周期序列。

上述目标周期计算过程中,通过对目标周期进行分段依次判断,避免了整体判断取平均值方法中,非颤音段对整体判断中颤音周期平均值造成的干扰,造成误判,另外,通过上述步骤,还可提取颤音准确时长和颤音位置等信息。

最后,执行步骤s15,删除音调标准差大于预设标准差阈值以及目标周期大于预设颤音周期最小值或小于预设颤音周期最大值的分组。

具体处理过程为:

首先需定义音调标准差下限sdivlimit和颤音周期上、下限(ttimeh/ttimel)。

其中,音调标准差下限sdivlimit,即为音调序列标准差的最小值,低于音调标准差下限表示音调波动起伏平缓,高于音调标准差下限认为音调的波动起伏达到颤音音调起伏标准。一般颤音的频率起伏在1.843~11.703hz。人声基频范围一般为70~800hz左右,随着基频的增高,颤音起伏增加。根据如下频率音调转换公式,

公式中pitch表示音调,basefreq表示基频。计算人声基频与人声基频叠加颤音频率起伏值的音调差值最小值mindiv_tone,以(mindiv_tone/2)作为音调标准差下限。这里计算得到的最小值为0.1,在基频800hz,颤音频率起伏值11.703hz计算得到。

颤音周期上、下限(ttimeh/ttimel)表示颤音时音调起伏周期的最大最小周期值,超过颤音周期上限或低于颤音周期下限都不能判定为颤音。颤音周期范围为138~192ms,预留一定的容错空间,这里我们将颤音周期上限取为200ms,颤音周期下限取为135ms。

标记音调标准差sdtone(n)<sdivlimit的分组序号n,这些分组标准差小于sdivlimit,为非颤音分组。

根据目标周期序列,标记目标周期ttrill(n)>ttimeh同时ttrill(n)<ttimel的分组序号n,这些分组序号的周期值不在颤音周期上下限之间,为非颤音。删除音调标准差和目标周期标记的非颤音分组,统计剩下的分组个数为trillnum。

然后,执行步骤s16,计算删除后剩余分组数与删除前总组数的比值,若比值大于一预设参数,将待检测音频数据判定为颤音信号,即当预设参数为0.3时:

当trillnum/toneteamnum>0.3时,判定为颤音;

当trillnum/toneteamnum<=0.3时,判定为非颤音;

其中toneteamnum表示删除分组前的总组数。

另外,在实际的运算过程中,可对待检测音频数据、有效音频检测片段的时长进行判断,当待测音频数据或有效音频检测片段的时长小于颤音时长最小时长时,直接标记为非颤音,只执行后续的音调值提取计算过程,节省运算的时间。

当判断到待检测音频数据或有效音频检测片段为非颤音信号时,则判定为非颤音信号,同时输出该音频信号音调作为待检测音频数据音调,识别流程终止。

本发明还公开了一种颤音识别的装置,如图2所示,包括:

截取模块21,用于获取待检测音频数据,对待检测音频数据根据预设分帧滑动窗长度和步进进行分帧,识别并删除清音帧和低音强尾音帧后,得到有效音频检测片段;

判断模块22,用于判断上述有效音频检测片段长度是否满足预设颤音最小时长要求;

音调序列获取模块23,用于当满足上述预设颤音最小时长要求时,根据计算上述有效音频检测片段所有帧的音调,得到音调序列;

分组计算模块24,用于对上述音调序列根据预设音调滑动窗长度和步进进行分组,计算每一分组的音调标准差和目标周期,获取所有分组对应的音调标准差序列和目标周期序列;

删除模块25,用于删除所述音调标准差大于预设标准差阈值以及所述目标周期大于预设颤音周期最小值或小于预设颤音周期最大值的分组;

判定模块26,用于计算删除后剩余分组数与删除前总组数的比值,若比值大于一预设参数,将待检测音频数据判定为颤音信号。

优选地,上述分组计算模块24还包括:

音调序列分段模块241,用于根据至少一个预设周期值将每一分组的音调划分成至少两个音调序列分段;

音调距离计算模块242,用于针对每一个预设的周期值,计算所述音调序列中至少两个相邻音调序列分段之间的音调距离值,获取计算所得的音调距离值的平均值作为该预设周期值对应的音调距离;

分组目标周期确定模块243,用于获取所有与预设周期值对应的音调距离,构成音调距离序列,将所述音调距离序列中最小的音调距离作为上述分组对应的目标周期。

优选地,截取模块21还包括:

清音帧识别模块211,用于在待检测音频数据的前半部分,将低于预设过零率下限值的数据帧识别为清音帧;

低音强尾音帧识别模块212,用于在待检测音频数据的后半部分,将帧电平小于预设帧电平下限的数据帧识别为低音强尾音帧。

优选地,上述音调序列获取模块23还包括:

滤波模块231,用于对上述音调序列做滤波处理;

平均音调计算模块232,用于计算滤波后音调序列的平均音调,并将平均音调作为有效检测音频片段的音频信号音调。

优选地,上述颤音识别装置还包括:

非颤音识别输出模块27,用于当上述有效音频检测片段长度判定为非颤音信号时,输出非颤音信号判定结果,同时将音频信号音调作为待检测音频数据音调进行输出。

从以上的描述中,可以看出,本发明从对待检测音频数据截取方法做改进出发,识别待检测音频数据帧中的清音帧和低音强尾音帧,最大限度地提取了有效音频检测片段;同时,本发明改进了颤音周期的检测方法,通过采用音调滑动窗法获取颤音周期,可有效屏蔽非颤音信号对检测结果的影响。本发明方法与现有方法相比,不能极大地提高了颤音识别的准确度,并且可精确定位颤音位置和颤音时长。

至此,已详细描述了本发明。为了避免蒙蔽本发明的构思,没有对本领域所公知的一些细节进行描述。本领域技术人员根据上面的描述,完全可以明白如何实施本发明公开的技术方案。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 留言:0条
  • 还没有人留言评论。精彩留言会获得点赞!