HI,欢迎来到起点商标网!
24小时服务QQ:2880605093

一种基于VAD的语音状态统计方法、系统和可读存储介质与流程

2021-01-28 12:01:53|230|起点商标网
一种基于VAD的语音状态统计方法、系统和可读存储介质与流程

本发明涉及数据处理和分析领域,更具体的,涉及一种基于vad的语音状态统计方法、系统和可读存储介质。



背景技术:

在实时音视频通讯会议中,往往使用voip进行通信,语音数据要经过采集端、服务器、接收端、网络传输等模块的处理。在实际的使用场景中会出现接收端播放时没有声音的问题,但是具体问题出在哪里却不好定位。在voip通信中语音数据从采集到播放中间经过各个模块的处理和网络传输,最后到达接收端后进行播放,在中间的任一环节出现问题都可能会造成没有声音的问题。

若直接使用录制文件的方式生成的文件较大,例如音频数据实时录制按照采样率48k,采集位数2个字节计算,10秒钟的数据量是48k*2*10=960kb。而且这种录制文件的方式不能用到客户线上环境中,这种方式还可能面临侵犯客户隐私的问题。



技术实现要素:

为了解决上述至少一个技术问题,本发明提出了一种基于vad的语音状态统计方法、系统和可读存储介质。

本发明第一方面提供了一种基于vad的语音状态统计方法,包括:

按照预设第一时间间隔对语音数据进行采样,得到采样语音数据;

通过vad算法判断所述采样语音数据是否包含语音;若包含,则进行计数操作;

统计预设第二时间间隔内包含语音的采样语音数据的数量,得到第一数值;

将所述第一数值与预设的采样阈值进行判断;

若所述第一数值大于预设的采样阈值,则生成1;

若所述第一数值小于预设的采样阈值,则生成0;

按照时间顺序将生成的1或0存储在预设的数据包中,得到统计结果数据包,并进行存储。

本方案中,所述通过vad算法判断所述采样语音数据是否包含语音,具体为:

将采样语音数据进行高通滤波处理;

将经过滤波处理后的信息输入至预设的语音神经网络模型中,得到判断结果;

若包含语音,则判断结果为1;

若不包含语音,则判断结果为0。

本方案中,所述预设的语音神经网络模型,训练方法具体为:

将采样语音数据进行高通滤波处理;

对滤波处理后的信息进行特征提取;

输入初始神经网络模型中进行分类识别,得到分类结果;

计算分类结果与实际采样语音数据中分类的误差;

若所述误差超过预设的误差阈值,则持续进行训练。

本方案中,所述预设的采样阈值为通过云计算得到的采样阈值。

本方案中,所述统计结果数据包为两部分组成,一部分为标识部分,用于对统计结果进行标识;一部分为结果部分,用于存储判断的结果。

本方案中,所述第一时间间隔为20毫秒,所述第二时间间隔为200毫秒,所述统计结果数据包为存储50次结果的数据包。

本发明第二方面提供了一种基于vad的语音状态统计系统,包括存储器和处理器,所述存储器中包括基于vad的语音状态统计方法程序,所述基于vad的语音状态统计方法程序被所述处理器执行时实现如下步骤:

按照预设第一时间间隔对语音数据进行采样,得到采样语音数据;

通过vad算法判断所述采样语音数据是否包含语音;若包含,则进行计数操作;

统计预设第二时间间隔内包含语音的采样语音数据的数量,得到第一数值;

将所述第一数值与预设的采样阈值进行判断;

若所述第一数值大于预设的采样阈值,则生成1;

若所述第一数值小于预设的采样阈值,则生成0;

按照时间顺序将生成的1或0存储在预设的数据包中,得到统计结果数据包,并进行存储。

本方案中,所述通过vad算法判断所述采样语音数据是否包含语音,具体为:

将采样语音数据进行高通滤波处理;

将经过滤波处理后的信息输入至预设的语音神经网络模型中,得到判断结果;

若包含语音,则判断结果为1;

若不包含语音,则判断结果为0。

本方案中,所述预设的语音神经网络模型,训练方法具体为:

将采样语音数据进行高通滤波处理;

对滤波处理后的信息进行特征提取;

输入初始神经网络模型中进行分类识别,得到分类结果;

计算分类结果与实际采样语音数据中分类的误差;

若所述误差超过预设的误差阈值,则持续进行训练。

本方案中,所述预设的采样阈值为通过云计算得到的采样阈值。

本方案中,所述统计结果数据包为两部分组成,一部分为标识部分,用于对统计结果进行标识;一部分为结果部分,用于存储判断的结果。

本方案中,所述第一时间间隔为20毫秒,所述第二时间间隔为200毫秒,所述统计结果数据包为存储50次结果的数据包。

本发明第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质中包括基于vad的语音状态统计方法程序,所述基于vad的语音状态统计方法程序被处理器执行时,实现如上述任一项所述的一种基于vad的语音状态统计方法的步骤。

本发明提供了一种基于vad的语音状态统计方法,该方法着重针对采集端,通过使用int64的变量来实时统计10秒内的语音状态,可以通过输出变量的十六进制数据查看在出现问题的时间段内采集端是否正常采集语音数据,从而定位是否是在采集端出现的问题,使得定位更加方便。本发明着重针对采集端采集到的原始音频数据,基于vad算法进行语音状态统计,从源头上判断采集到的数据是否有语音,从而确定问题是否出现在采集端。本发明可以直接使用一个int64的变量来实时记录10秒钟的语音数据状态,只占用4个字节,并且可以直接使用到客户环境,将状态数据输出到日志中,直接查看状态,简洁高效。

附图说明

图1示出了本发明一种基于vad的语音状态统计方法的流程图;

图2示出了本发明结果数据包的示意图;

图3示出了本发明一种基于vad的语音状态统计系统的框图。

具体实施方式

为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。

vad,也就是语音端点检测技术,是voiceactivitydetection的缩写。这个技术的主要任务是从带有噪声的语音中准确的定位出语音的开始和结束点,因为语音中含有很长的静音,也就是把静音和实际语音分离开来,因为是语音数据的原始处理,所以vad是语音信号处理过程的关键技术之一。

图1示出了本发明一种基于vad的语音状态统计方法的流程图。

如图1所示,本发明提供了一种基于vad的语音状态统计方法,包括:

s102,按照预设第一时间间隔对语音数据进行采样,得到采样语音数据;

s104,通过vad算法判断所述采样语音数据是否包含语音;若包含,则进行计数操作;

s106,统计预设第二时间间隔内包含语音的采样语音数据的数量,得到第一数值;

s108,将所述第一数值与预设的采样阈值进行判断;

若所述第一数值大于预设的采样阈值,则生成1;

若所述第一数值小于预设的采样阈值,则生成0;

s110,按照时间顺序将生成的1或0存储在预设的数据包中,得到统计结果数据包,并进行存储。

需要说明的是,本申请主要是在采集端,也就是语音生成端进行语音信号的采集。首先,按照预设第一时间间隔对语音数据进行采样,得到采样语音数据。其中,采集的间隔可以进行调整。例如,若要采集20毫秒的数据,则麦克风每10毫秒采集回调一次原始语音数据,对采集到的语音数据进行分帧处理,取20毫秒的数据作为一帧数据,这里取200毫秒做为一个计时统计单位,则在一个统计单位内共统计10帧数据。在采集到语音数据之后,通过vad算法判断所述采样语音数据是否包含语音;若包含,则进行计数操作。例如,引入变量vad_state_200ms记录统计在200毫秒内vadstatus为1的次数。引入变量vad_count_10s记录10秒钟内处理的音频包数。引入变量vad_state_10s来存储10秒的统计结果。

将每一帧数据送入到vad算法中进行vad判断,将vad对一帧数据的语音或非语音的判断结果记为vadstatus,其中vadstatus为1表示语音,vadstatus为0表示非语音。然后统计预设第二时间间隔内包含语音的采样语音数据的数量,得到第一数值。例如,每一帧数据进行vad算法判断,当vadstatus为1时,累计vad_status_count的值。再将所述第一数值与预设的采样阈值进行判断。在每一个统计单位内都能获取到10个vad的判断结果,统计处理后与阈值进行比较判断后得到一个统计结果,因此10秒钟(即500帧)内共计50个统计结果。若所述第一数值大于预设的采样阈值,则生成1;若所述第一数值小于预设的采样阈值,则生成0;按照时间顺序将生成的1或0存储在预设的数据包中,得到统计结果数据包,并进行存储。本发明中可以将每个统计结果按位存储到一个类型为int64的统计变量中,最后将变量输出到对应到日志文件中即可。例如,当处理到第10帧数据时,将vad_status_count与阈值进行比较,当vad_status_count大于阈值,则将数据1存放到vad_state_10s的第0位上,如图2统计结果按位存储图所示。依次类推,当处理到20帧时,存储到第1位。当到达10秒钟,即500帧时,将数据存储到第49位上。此时即获取最终的10秒统计结果。

根据本发明实施例,所述通过vad算法判断所述采样语音数据是否包含语音,具体为:

将采样语音数据进行高通滤波处理;

将经过滤波处理后的信息输入至预设的语音神经网络模型中,得到判断结果;

若包含语音,则判断结果为1;

若不包含语音,则判断结果为0。

需要说明的是,采样的语音数据中往往存在一些噪声,所以需要进行高通滤波处理,去除噪声。具体可以将音频信号通过一个高通滤波器,截止频率大约为200hz。这一步的目的是移除信号当中的直流偏置分量和一些低频噪声。虽然在低于200hz的部分仍然有部分语音信息,但是不会对语音信号造成很大的影响。然后将经过滤波处理后的信息输入至预设的语音神经网络模型中,得到判断结果。所述的语音神经网络模型为预设的训练好的神经网络模型,所述神经网络模型可以是根据大量的历史数据进行训练而得,通过大量数据的训练和迭代,能够确保输出数据的准确。在语音神经网络模型判断时,若包含语音,则判断结果为1;若不包含语音,则判断结果为0,将得到的结果1进行计数处理。

根据本发明实施例,所述预设的语音神经网络模型,训练方法具体为:

将采样语音数据进行高通滤波处理;

对滤波处理后的信息进行特征提取;

输入初始神经网络模型中进行分类识别,得到分类结果;

计算分类结果与实际采样语音数据中分类的误差;

若所述误差超过预设的误差阈值,则持续进行训练。

需要说明的是,语音神经网络模型的训练需要大量的数据,这些数据可以是服务器中的历史数据。在获取了数据之后,需要对其进行预处理,本申请是将采样语音数据进行高通滤波处理,过滤掉一些噪音,可以提高数据分析的准确性。然后对滤波处理后的信息进行特征提取,获取信息的特征值。然后输入初始神经网络模型中进行分类识别,获取到分类结果,本申请中分类结果可以为语音信息和非语音信息。在获取到分类结果之后,计算所述分类结果与实际采样语音数据中分类的误差,此过程主要是判断神经网络模型的准确性,如果误差较大说明神经网络仍需要加强训练。也就是说,若所述误差超过预设的误差阈值,则持续进行训练。若误差小于预设的误差阈值,则说明此时的神经网络模型满足训练结束条件,可以进行分析和预测。指的说明的是,本申请的语音神经网络是持续性进行的,也就是说,有新的数据输入到语音神经网络模型中,不仅可以进行处理得到分析结果,也可以作为训练元素进行新的训练,这样本申请的语音神经网络可以实时进行训练和迭代,保证了数据结果的准确性。

根据本发明实施例,所述预设的采样阈值为通过云计算得到的采样阈值。

需要说明的是,采样阈值可以为本领域技术人员根据经验或者实际需要进行预先设置,本申请还可以通过云计算进行计算得到,得到的阈值为动态调整的。所述云计算为获取了多个参数之后,通过云技术进行分析和计算得到的采样阈值,经过云计算得到的阈值可以更好满足当前状态下对语音状态的判断,并且使得判断结果更加准确。

根据本发明实施例,所述统计结果数据包为两部分组成,一部分为标识部分,用于对统计结果进行标识;一部分为结果部分,用于存储判断的结果。

如图2所示,在结果数据包的前面50-63位可以是标识部分,用于标识每个结果数据包的索引信息。在结果数据包的0-49部分可以是结果部分,用于存储判断的结果。判断结果按位存储,以此类推,当处理到20帧时,存储到第1位。当到达10秒钟,即500帧时,将数据存储到第49位上。此时即获取最终的10秒统计结果。

根据本发明实施例,所述第一时间间隔为20毫秒,所述第二时间间隔为200毫秒,所述统计结果数据包为存储50次结果的数据包。

需要说明的是,本发明采用第一时间间隔为20毫秒,所述第二时间间隔为200毫秒,所述统计结果数据包为存储50次结果的数据包的模式,只占用4个字节,并且可以直接使用到客户环境,将状态数据输出到日志中,直接查看状态,简洁高效。

图3示出了本发明一种基于vad的语音状态统计系统的框图。

如图3所示,本发明公开了一种基于vad的语音状态统计系统3,包括存储器31和处理器32,所述存储器中包括基于vad的语音状态统计方法程序,所述基于vad的语音状态统计方法程序被所述处理器执行时实现如下步骤:

按照预设第一时间间隔对语音数据进行采样,得到采样语音数据;

通过vad算法判断所述采样语音数据是否包含语音;若包含,则进行计数操作;

统计预设第二时间间隔内包含语音的采样语音数据的数量,得到第一数值;

将所述第一数值与预设的采样阈值进行判断;

若所述第一数值大于预设的采样阈值,则生成1;

若所述第一数值小于预设的采样阈值,则生成0;

按照时间顺序将生成的1或0存储在预设的数据包中,得到统计结果数据包,并进行存储。

需要说明的是,本申请主要是在采集端,也就是语音生成端进行语音信号的采集。首先,按照预设第一时间间隔对语音数据进行采样,得到采样语音数据。其中,采集的间隔可以进行调整。例如,若要采集20毫秒的数据,则麦克风每10毫秒采集回调一次原始语音数据,对采集到的语音数据进行分帧处理,取20毫秒的数据作为一帧数据,这里取200毫秒做为一个计时统计单位,则在一个统计单位内共统计10帧数据。在采集到语音数据之后,通过vad算法判断所述采样语音数据是否包含语音;若包含,则进行计数操作。例如,引入变量vad_state_200ms记录统计在200毫秒内vadstatus为1的次数。引入变量vad_count_10s记录10秒钟内处理的音频包数。引入变量vad_state_10s来存储10秒的统计结果。

将每一帧数据送入到vad算法中进行vad判断,将vad对一帧数据的语音或非语音的判断结果记为vadstatus,其中vadstatus为1表示语音,vadstatus为0表示非语音。然后统计预设第二时间间隔内包含语音的采样语音数据的数量,得到第一数值。例如,每一帧数据进行vad算法判断,当vadstatus为1时,累计vad_status_count的值。再将所述第一数值与预设的采样阈值进行判断。在每一个统计单位内都能获取到10个vad的判断结果,统计处理后与阈值进行比较判断后得到一个统计结果,因此10秒钟内共计50个统计结果。若所述第一数值大于预设的采样阈值,则生成1;若所述第一数值小于预设的采样阈值,则生成0;按照时间顺序将生成的1或0存储在预设的数据包中,得到统计结果数据包,并进行存储。本发明中可以将每个统计结果按位存储到一个类型为int64的统计变量中,最后将变量输出到对应到日志文件中即可。例如,当处理到第10帧数据时,将vad_status_count与阈值进行比较,当vad_status_count大于阈值,则将数据1存放到vad_state_10s的第0位上,如图2统计结果按位存储图所示。依次类推,当处理到20帧时,存储到第1位。当到达10秒钟,即500帧时,将数据存储到第49位上。此时即获取最终的10秒统计结果。

根据本发明实施例,所述通过vad算法判断所述采样语音数据是否包含语音,具体为:

将采样语音数据进行高通滤波处理;

将经过滤波处理后的信息输入至预设的语音神经网络模型中,得到判断结果;

若包含语音,则判断结果为1;

若不包含语音,则判断结果为0。

需要说明的是,采样的语音数据中往往存在一些噪声,所以需要进行高通滤波处理,去除噪声。具体可以将音频信号通过一个高通滤波器,截止频率大约为200hz。这一步的目的是移除信号当中的直流偏置分量和一些低频噪声。虽然在低于200hz的部分仍然有部分语音信息,但是不会对语音信号造成很大的影响。然后将经过滤波处理后的信息输入至预设的语音神经网络模型中,得到判断结果。所述的语音神经网络模型为预设的训练好的神经网络模型,所述神经网络模型可以是根据大量的历史数据进行训练而得,通过大量数据的训练和迭代,能够确保输出数据的准确。在语音神经网络模型判断时,若包含语音,则判断结果为1;若不包含语音,则判断结果为0,将得到的结果1进行计数处理。

根据本发明实施例,所述预设的语音神经网络模型,训练方法具体为:

将采样语音数据进行高通滤波处理;

对滤波处理后的信息进行特征提取;

输入初始神经网络模型中进行分类识别,得到分类结果;

计算分类结果与实际采样语音数据中分类的误差;

若所述误差超过预设的误差阈值,则持续进行训练。

需要说明的是,语音神经网络模型的训练需要大量的数据,这些数据可以是服务器中的历史数据。在获取了数据之后,需要对其进行预处理,本申请是将采样语音数据进行高通滤波处理,过滤掉一些噪音,可以提高数据分析的准确性。然后对滤波处理后的信息进行特征提取,获取信息的特征值。然后输入初始神经网络模型中进行分类识别,获取到分类结果,本申请中分类结果可以为语音信息和非语音信息。在获取到分类结果之后,计算所述分类结果与实际采样语音数据中分类的误差,此过程主要是判断神经网络模型的准确性,如果误差较大说明神经网络仍需要加强训练。也就是说,若所述误差超过预设的误差阈值,则持续进行训练。若误差小于预设的误差阈值,则说明此时的神经网络模型满足训练结束条件,可以进行分析和预测。指的说明的是,本申请的语音神经网络是持续性进行的,也就是说,有新的数据输入到语音神经网络模型中,不仅可以进行处理得到分析结果,也可以作为训练元素进行新的训练,这样本申请的语音神经网络可以实时进行训练和迭代,保证了数据结果的准确性。

根据本发明实施例,所述预设的采样阈值为通过云计算得到的采样阈值。

需要说明的是,采样阈值可以为本领域技术人员根据经验或者实际需要进行预先设置,本申请还可以通过云计算进行计算得到,得到的阈值为动态调整的。所述云计算为获取了多个参数之后,通过云技术进行分析和计算得到的采样阈值,经过云计算得到的阈值可以更好满足当前状态下对语音状态的判断,并且使得判断结果更加准确。

根据本发明实施例,所述统计结果数据包为两部分组成,一部分为标识部分,用于对统计结果进行标识;一部分为结果部分,用于存储判断的结果。

如图2所示,在结果数据包的前面50-63位可以是标识部分,用于标识每个结果数据包的索引信息。在结果数据包的0-49部分可以是结果部分,用于存储判断的结果。判断结果按位存储,以此类推,当处理到20帧时,存储到第1位。当到达10秒钟,即500帧时,将数据存储到第49位上。此时即获取最终的10秒统计结果。

根据本发明实施例,所述第一时间间隔为20毫秒,所述第二时间间隔为200毫秒,所述统计结果数据包为存储50次结果的数据包。

需要说明的是,本发明采用第一时间间隔为20毫秒,所述第二时间间隔为200毫秒,所述统计结果数据包为存储50次结果的数据包的模式,只占用4个字节,并且可以直接使用到客户环境,将状态数据输出到日志中,直接查看状态,简洁高效。

本发明第三方面还提供了一种计算机可读存储介质,所述计算机可读存储介质中包括基于vad的语音状态统计方法程序,所述基于vad的语音状态统计方法程序被处理器执行时,实现如上述任一项所述的一种基于vad的语音状态统计方法的步骤。

本发明提供了一种基于vad的语音状态统计方法,该方法着重针对采集端,通过使用int64的变量来实时统计10秒内的语音状态,可以通过输出变量的十六进制数据查看在出现问题的时间段内采集端是否正常采集语音数据,从而定位是否是在采集端出现的问题,使得定位更加方便。本发明着重针对采集端采集到的原始音频数据,基于vad算法进行语音状态统计,从源头上判断采集到的数据是否有语音,从而确定问题是否出现在采集端。本发明可以直接使用一个int64的变量来实时记录10秒钟的语音数据状态,只占用4个字节,并且可以直接使用到客户环境,将状态数据输出到日志中,直接查看状态,简洁高效。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。

此文章来源于网络,如有侵权,请联系删除

tips