用于数据中台的数据智能清洗方法
技术领域
本发明涉及数据处理技术领域,具体涉及用于数据中台的数据智能清洗方法。
背景技术
在AI数字人进行语音识别的场景中,往往需要对获取到的语音信号数据进行处理,因为在采集语音信号时,信号中往往存在噪声,因此需要对获得的语音信号进行去噪处理。常用的一种语音去噪方法为频谱减法,该方法通过对于语音信号的频谱进行处理,将噪声的频谱从语音信号中减去,以实现去除噪声的效果。在传统方法中往往利用静音段采样的方法获取噪声谱即在语音信号中选择一个只包含噪声的静音段作为噪声谱,同时噪声具有时变性,即噪声的频谱并不是固定不变的,可能随着时间发生变化。综上传统进行噪声谱估计的方法,可能会导致估计出的噪声谱和实际噪声谱不匹配,进而影响去噪效果不显著或失去正常语音信号数据的细节信息。
在现有技术中,传统利用静音段采样的方法并不适用与噪声表现和正常语音信号数据表现相似的情况,例如进行语音识别时,除了需要识别的语音源,还有其他语音源,在这种情况下该方法不能很好的进行噪声谱的估计;同时传统静音段采样的方法其噪声谱往往是固定的,通过固定权重来获得噪声谱,这样不能很好的适应噪声的时变性,因此需要根据语音信号的变化自适应权重。
发明内容
为了解决上述问题,本发明提供用于数据中台的数据智能清洗方法。
本发明的用于数据中台的数据智能清洗方法采用如下技术方案:
本发明一个实施例提供了用于数据中台的数据智能清洗方法,该方法包括以下步骤:
采集语音信号数据,记为原始语音数据;
将原始语音数据分成多个短时帧,将任意一个短时帧记为参考短时帧;获取参考短时帧的第一极值序列,根据第一极值序列的数据间隔构建直角坐标系;根据直角坐标系中的数据点的分布获得多个数据区间;将任意一个数据区间记为参考数据区间,根据参考数据区间中数据的变化与对应时间段内的原始语音数据的变化,获得参考数据区间的纯噪声程度;通过比较预设阈值与参考数据区间的纯噪声程度的数值大小获得噪声数据区间和非噪声数据区间;根据噪声数据区间之间的相似性与非噪声数据区间之间的差异性获得每个噪声数据区间的最终权重;
根据每个噪声数据区间的最终权重对原始语音数据进行去噪。
进一步的,所述将原始语音数据分成多个短时帧,将任意一个短时帧记为参考短时帧;获取参考短时帧的第一极值序列,根据第一极值序列的数据间隔构建直角坐标系,包括的具体步骤如下:
将原始语音数据分成多个短时帧,将任意一个短时帧记为参考短时帧;
获取参考短时帧中的所有极值点;将极值点按照采集时间从早到晚的顺序进行排列,获得第一极值序列;在第一极值序列中,将第一个数据点与第二个数据点的时间间隔记为,第二个数据点与第三个数据点的时间间隔记为/>,然后获得第一极值序列中所有相邻数据点的时间间隔/>,其中/>表示差值序号;以差值序号为横坐标,时间间隔/>为纵坐标,构建直角坐标系。
进一步的,所述根据直角坐标系中的数据点的分布获得多个数据区间,包括的具体步骤如下:
使用最小二乘法对直角坐标系中的数据点进行曲线拟合;对拟合曲线进行求导,获得拟合曲线中每个数据点的一阶导数和二阶导数,获得拟合曲线中一阶导数为零、二阶导数不为零的数据点,记为参考数据点,若连续两个参考数据点之间的时间间隔小于预设阈值时,将这两个参考数据点划归在同一数据区间中,然后对所有参考数据点进行判断,获得多个数据区间。
进一步的,所述根据参考数据区间中数据的变化与对应时间段内的原始语音数据的变化,获得参考数据区间的纯噪声程度,包括的具体步骤如下:
获取原始语音数据的拟合曲线在时间区间/>内的定积分、参考数据区间的拟合曲线/>在时间区间/>内的定积分以及拟合曲线/>在时间区间/>内的数据点的方差;根据原始语音数据的拟合曲线/>在时间区间/>内的定积分、参考数据区间的拟合曲线/>在时间区间/>内的定积分以及拟合曲线/>在时间区间/>内的数据点的方差获得参考数据区间的纯噪声程度。
进一步的,所述根据原始语音数据的拟合曲线在时间区间/>内的定积分、参考数据区间的拟合曲线/>在时间区间/>内的定积分以及拟合曲线/>在时间区间/>内的数据点的方差获得参考数据区间的纯噪声程度,包括的具体步骤如下:
式中,表示参考数据区间的纯噪声程度,/>表示参考数据区间对应的时间区间,/>表示时间区间的下限,/>表示时间区间的上限;/>表示原始语音信号数据的拟合曲线,/>表示参考数据区间的拟合曲线,/>表示拟合曲线/>在时间区间内的数据点的方差,/>表示线性归一化函数;/>表示在时间区间/>中,对原始语音信号数据的拟合曲线/>求定积分;/>表示在拟合曲线/>在时间区间/>内的定积分。
进一步的,所述通过比较预设阈值与参考数据区间的纯噪声程度的数值大小获得噪声数据区间和非噪声数据区间,包括的具体步骤如下:
预设阈值,当纯噪声程度大于/>时,将对应的参考数据区间记为噪声数据区间;当纯噪声程度小于等于/>时,将对应的参考数据区间记为非噪声数据区间。
进一步的,所述根据噪声数据区间之间的相似性与非噪声数据区间之间的差异性获得每个噪声数据区间的最终权重,包括的具体步骤如下:
获取不同噪声数据区间的纯噪声程度的差值、不同噪声数据区间的相似性以及不同非噪声数据区间纯噪声程度的差值,根据不同噪声数据区间的纯噪声程度的差值、不同噪声数据区间的相似性以及不同非噪声数据区间纯噪声程度的差值获得每个噪声数据区间的最终权重。
进一步的,所述根据不同噪声数据区间的纯噪声程度的差值、不同噪声数据区间的相似性以及不同非噪声数据区间纯噪声程度的差值获得每个噪声数据区间的最终权重,包括的具体步骤如下:
式中,表示第/>个噪声数据区间的权重,/>表示第/>个噪声数据区间的纯噪声程度,/>表示第/>个噪声数据区间的纯噪声程度,/>表示第/>个噪声数据区间与第/>个噪声数据区间的相似性,/>表示第/>个非噪声数据区间的纯噪声程度,/>表示噪声数据区间的数量,/>表示非噪声区间的数量,/>表示以自然常数为底的指数函数;
根据所有噪声数据区间的权重对每个数据区间的权重进行归一化,获得每个数据区间的最终权重。
进一步的,所述根据所有噪声数据区间的权重对每个数据区间的权重进行归一化,获得每个数据区间的最终权重,包括的具体步骤如下:
式中,表示第/>个噪声数据区间的最终权重,/>表示第/>个噪声数据区间的权重,表示噪声数据区间的数量。
进一步的,所述根据每个噪声数据区间的最终权重对原始语音数据进行去噪,包括的具体步骤如下:
对每个噪声数据区间进行快速傅里叶变换,得到对应的频谱,根据获得的每个噪声数据区间的最终权重对频谱中的每个数据点进行加权,获得噪声数据区间对应的短时帧的噪声谱;根据获得的每个短时帧的噪声谱通过频谱减法对原始语音数据进行去噪,获得去噪后的语音信号数据。
本发明的技术方案的有益效果是:在通过频谱减法对语音信号进行去噪时,因为语音信号中存在不同的声源,这会导致传统的频谱减法在对噪声谱进行去噪是不准确的,因此本发明通过对原始语音信号进行分析,首先获得原始语音数据的短时帧,进而根据短时帧中数据的变化获得多个数据区间;然后根据数据区间之间数据变化的差异性来获得噪声数据区间与非噪声数据区间,然后通过噪声数据区间与非噪声数据区间之间的纯噪声程度的差异来获得每个噪声数据区间的权重,进而根据获得的权重通过频谱减法来对原始语音数据进行去噪。本发明能够对存在多个声源的语音数据进行区分,进而对原始语音数据的去噪更彻底,使得能够清晰的识别原始语音数据中包含的有用的语音数据信息。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的用于数据中台的数据智能清洗方法的步骤流程图;
图2为语音信号的变化示意图。
具体实施方式
为了更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的用于数据中台的数据智能清洗方法,其具体实施方式、结构、特征及其功效,详细说明如下。在下述说明中,不同的“一个实施例”指的不一定是同一实施例。此外,一或多个实施例中的特定特征、结构或特点可由任何合适形式组合。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。
下面结合附图具体的说明本发明所提供的用于数据中台的数据智能清洗方法的具体方案。
请参阅图1,其示出了本发明一个实施例提供的用于数据中台的数据智能清洗方法的步骤流程图,该方法包括以下步骤:
S001.采集语音信号数据,并对获得的语音信号数据进行预处理;
本实施例的主要目的是对语音信号数据进行去噪处理,因此首先需要采集语音信号数据;语音信号处理系统通过收集所要处理的语音信号数据,将语音信号数据传输到语音处理系统中,然后对获得的语音信号数据进行数据插值处理,在这里使用线性插值算法对语音信号数据进行插值,该算法为现有公知技术,在此不再进行赘述;将处理后的语音信号数据记为原始语音数据。
S002.对原始数据进行分段;
需要说明的是,当原始语音数据中存在不同语音源时,那么不同语音源产生的信号特征是不同的;而相同语音源产生的信号其信号特征又是相似的。因此本案将从这种差异性和相似性来区分出噪声数据段,从而实现自适应噪声谱的估计。其具体过程如下:
首先将获取到的原始语音数据分成短时帧,每个短时帧持续时间为20ms,不足20ms时,以剩下的原始语音数据为一个短时帧,进而获得多个短时帧,将任意一个短时帧记为参考短时帧语音数据。然后对参考短时帧的语音数据应用窗函数进行加窗处理,以减少频谱泄露的影响,本实施例采用汉宁窗;上述短时帧技术与加窗技术均为现有公知技术,在此不再进行赘述。
进一步的,由于每个人个体的差异,每个人的声音特征是独特的,这包括声音的音高、音色等方面,不同人具有不同的声带结构和大小,这会导致它们在说话是产生不同的频率分布,即噪声和要识别的语音具有不同的频率,那么为了区分出噪声的数据段,应该对短时帧中的数据段进行分段处理,将不同频率的数据段进行分段。
在参考短时帧语音数据中,首先获得参考短时帧语音数据中的所有极值点,包含极大值与极小值;将极值点按照采集时间从早到晚的顺序进行排列,获得第一极值序列。然后在第一极值序列中,第一个数据点与第二个数据点的时间间隔记为,第二个数据点与第三个数据点的时间间隔记为/>,然后获得第一极值序列中所有相邻数据点的时间间隔/>,其中/>表示序号,然后以序号为横坐标,时间间隔/>为纵坐标,构建直角坐标系。
如图2所示,横坐标t表示序号,纵坐标span表示时间间隔,其中第一段较为平稳的语音数据(未发生起伏),其相邻极致点之间的间隔较为平稳,这表明这段时间内的语音数据的频率较为一致,可能来自同一个语音源;而发生起伏的数据段,其时间间隔不断变化,表明其频率变化较为复杂,这可能是由于要识别的语音信号受到噪声(其他语音源)的影响;导致它们声音信号在时间和频率上相互重叠,这种重叠和干扰会导致频率的变化,从而是的其频率变化较为复杂;最后一段其时间间隔平稳且其时间间隔略小于第一段的时间间隔这表明该段时间内的语音信号可能来自另一个语音源,并且该语音源的频率高于第一段语音信号的频率。
进一步的,为了准确找到噪声数据段,根据构建的直角坐标系中曲线的变化进行时间段的划分。首先,使用最小二乘法对直角坐标系中的数据点进行曲线拟合,获得拟合曲线,记拟合曲线的表达式为;对拟合曲线进行求导,获得拟合曲线中每个数据点的一阶导数和二阶导数,找到拟合曲线中一阶导数为零、二阶导数不为零的数据点,包含若干个数据点,记为参考数据点,若连续两个参考数据点之间的时间间隔小于/>ms(毫秒),则认为这两个相邻的参考数据点为同一段数据变化的点,将这两个数据点划归在同一数据区间中,然后对所有参考数据点进行划分,获得多个数据区间。
至此,获得参考短时帧语音数据的多个数据区间。
S003.计算数据区间中的纯噪声程度,并识别出噪声数据段;
需要说明的是,经过对参考短时帧语音数据进行分段后,每个数据区间中的数据分布较为一致,那么对于每个分段对应时间段其都对应以下四种情况之一:第一,单纯的语音数据;第二,只有噪声;第三,噪声和要是识别的语音数据都存在;第四,噪声和要识别的语音都不存在。对于四种情况其特征如下:
第一种情况,在该类时间段中,只有要识别的语音数据,即只有一个人说话的情况,其声音特征比较一致,因此其时间段中的频率变化较为一致即相邻极值点的时间间隔一致;
第二种情况,有其他人在旁边说话的情况,即存在多个声源时,其声音成分较为复杂,因此其时间段中其频率变化较为复杂即不一致。同时由于噪声的语音源距离录音设备较远,因此其振幅较小;
第三种情况,噪声和要识别的语音都存在,在这种情况下,其声音成分也较为复杂,但是由于两种语音源同时产生语音信号,它们的振幅会相互叠加,形成一个总体的振幅,即其振幅较大;
第四种情况,没有语音源产生信号,因此其振幅为0,那么对于这样的时间段则进行摒弃,不对其做出处理。
进一步的,在摒弃第四种情况后,便可利用参考短时帧语音数据中数据点的振幅大小和频率变化的一致性计算得到每一个数据区间的纯噪声程度,其振幅越小,频率越小,则纯噪声程度越大。记任意一个数据区间为参考数据区间,则参考数据区间中纯噪声程度的计算公式如下:
式中,表示参考数据区间的纯噪声程度,/>表示参考数据区间对应的时间区间,/>表示时间区间的下限,/>表示时间区间的上限;/>表示原始语音信号数据的拟合曲线,/>表示构建的二维坐标系中数据点的拟合曲线,/>表示拟合曲线在时间区间/>内的数据点的方差,/>表示线性归一化函数。
具体的,表示在时间区间/>中,对原始语音信号数据的拟合曲线/>求定积分,定积分表示/>在时间区间/>内与横坐标围成的曲边梯形的面积,因为获得的数据只存在正值,因此所求定积分也为正;其表示原始语音信号数据的振幅响应大小,其数据越小,表示原始语音信号数据的振幅响应越小,因此受到噪声的干扰程度越小,那么纯噪声程度越小;/>表示在拟合曲线/>在时间区间/>内的定积分,其也表示信号的平稳程度,该值越大,则表示信号的平稳程度越大,则纯噪声程度越小。/>表示拟合曲线在时间区间/>内的数据点的方差,方差表示信号的波动程度,方差越大,说明信号的波动程度越小,因此受到噪声的影响程度越大。
根据获得的参考数据区间的纯噪声程度,预设阈值,当纯噪声程度大于/>时,表示该参考数据区间受到噪声的影响程度较大,则将对应的数据区间记为噪声数据区间;当纯噪声程度小于等于/>时,表示该参考数据区间受到噪声的影响程度较小,则将对应的数据区间记为非噪声数据区间。
至此,获得了噪声数据区间和非噪声数据区间。
S004.获得每个噪声数据区间的权重;
根据计算获得的每个参考数据区间的纯噪声程度,利用参考数据区间之间的相似性和参考数据区间之间的差异性得到参考数据区间的权重,从而在进行噪声谱构建的过程中,加权平均得到噪声谱,即实现自适应的噪声谱的估计。
需要说明的是,在多个参考数据区间中,其幅度的变化差异较大,并且其极值点相邻时间间隔之间的一致性都不好,则参考数据区间之间的相似性较小,又因为纯噪声程度便是基于幅度的变化和相邻时间间隔计算而来,因此可利用纯噪声程度的差值大小表征多个参考数据区间之间的相似性,差值越小,相似性越高,则其权重越大;同理对于噪声数据段和其他数据段之间的差异性也可用纯噪声程度的差值表现,差值越大,其差异性越大,则其权重越大。则权重的计算公式如下:
式中,表示第/>个噪声数据区间的权重,/>表示第/>个噪声数据区间的纯噪声程度,/>表示第/>个噪声数据区间的纯噪声程度,/>表示第/>个噪声数据区间与第/>个噪声数据区间的相似性,/>表示第/>个非噪声数据区间的纯噪声程度,/>表示噪声数据区间的数量,/>表示非噪声区间的数量,/>表示以自然常数为底的指数函数。
具体的,表示第/>个噪声数据区间与第/>个噪声数据区间的差异,其差异程度越大,则权重越大, />表示在噪声数据区间中,第/>个噪声数据区间与其他噪声数据区间之间纯噪声程度的差值的均值,该值越小,则说明第/>个噪声数据区间与其他噪声区间之间的相似越大,/>表示第/>个噪声数据区间与第/>个噪声数据区间的相似性,本实施例用DTW算法(动态时间规整)来计算两个序列的DTW距离,DTW距离表示两个数据序列的相似性,DTW的值越小,其相似越大,因此权重越大;/>表示第/>个噪声数据区间与其他非噪声区间之间的差异性。其中DTW算法为现有公知技术,在此不再进行赘述。
根据所有噪声数据区间的权重对每个数据区间的权重进行归一化,获得每个数据区间的最终权重,包括的具体步骤如下:
式中,表示第/>个噪声数据区间的最终权重,/>表示第/>个噪声数据区间的权重,表示噪声数据区间的数量。
至此,获得了每个噪声数据区间的最终权重。
S005.对原始语音信号数据进行去噪;
对每个噪声数据区间进行快速傅里叶变换,得到对应的频谱,根据获得的每个噪声数据区间的最终权重对频谱中的每个数据进点行加权,获得噪声数据区间对应的短时帧的噪声谱。
根据获得的每个短时帧的噪声谱然后通过频谱减法对原始语音信号数据进行去噪,该算法为现有公知技术,在此不再进行赘述;进而获得去噪后的语音信号数据。
通过以上步骤,完成了用于数据中台的数据智能清洗方法。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。