基于神经网络的音频丢包修复方法、设备和系统与流程
本发明涉及音频数据处理领域,具体涉及一种基于神经网络的音频丢包修复方法、设备和系统。
背景技术:
随着影音设备、移动通信的普及,蓝牙技术的发展,人们越来越多地采用无线收发数据的方式来进行影音数据的无线传输,例如蓝牙音箱、蓝牙耳机、蓝牙鼠标、蓝牙键盘、蓝牙遥控器等越多的蓝牙产品出现在人们的生活中。
其中蓝牙音箱、蓝牙耳机主要应用了蓝牙通话及蓝牙音乐播放等功能,而蓝牙在传输这些音频的时候是将音频数据以一个数据包接一个数据包的形式通过主机(手机、电脑等)传输给蓝牙播放设备播放。在传输过程中,由于是无线传输往往会受到其它无线信号的干扰、或者由于障碍物或距离的原因、导致传输过程数据包的丢失,如果不对这些数据进行修复,那么在播放端就会出现不连续或者是杂音。特别是蓝牙通话模式下,丢失信号会直接影响电话通话的体验感受,严重时甚至影响沟通。因此需要对蓝牙丢包数据进行修复。
针对蓝牙丢包数据的修复,常见的传统修复方式有:
1.静音处理,对丢失的数据用静音数据替换,避免其它刺耳的杂音。这种静音处理方式,方法简单但性能有限,只能避免杂音但丢失的信号是没有恢复的。
2.波形替换,通过语音信号的基音周期或其它相关算法计算相关信号,用相似信号替换。其原理是基于语音短时平稳,可以用相似波形替换,但是现实语音信号也是存在元音、辅音切换、以及语速、语调的不停变化的,所以用相似信号替换很难恢复这种变化信号。另外语音信号能量也是在不停变化的,要较好的恢复出来也需要更多的额外处理,当信号丢失比较严重的时候,由于相似信号的重复使用,也会导致机器声的产生。
为了实现对丢失的音频数据包进行修复,现有技术中,常利用高级算法进行预测、修复,例如,采用神经网络学习音频数据帧与帧之间的非线性模型,而后,根据非线性模型在频域上重构丢失的数据,以此来获得当前丢失数据的时域估计;这种构建非线性模型的方式,通常利用当前音频数据帧之前已接收的音频数据帧来学习模型,由此,预测得到当前丢失的数据,也就是在时域上根据前面的帧来预测后面的音频数据帧。这种方式虽然能够预测、估计丢失的数据,从而对丢失的数据进行修复,但是,当之前的音频数据帧也存在丢包现象时,会导致神经网络学习的非线性模型不够精确,从而导致基于该模型无法准确地预测丢失的音频数据帧。
因此,如何利用新的神经网络模型来修复丢失的音频数据包,提高修复准确率成为亟待解决的技术问题。
技术实现要素:
基于上述现状,本发明的主要目的在于提供一种基于神经网络的音频丢包修复方法、设备和系统,以修复丢失的音频数据包,提高修复准确率。
为实现上述目的,本发明采用的技术方案如下:
根据第一方面,本发明实施例公开了一种基于神经网络的音频数据丢包修复方法,包括:
步骤s101,获取音频数据包,音频数据包包括若干帧音频数据帧,若干帧音频数据帧中至少包含多个语音信号帧,语音信号帧为包含语音信号的音频数据帧;步骤s103,当若干帧音频数据帧中存在丢失语音信号帧的丢帧情况后,确定丢失的语音信号帧在若干帧音频数据帧中所处的位置得到丢帧的位置信息;所处的位置包括第一预设位置或第二预设位置;步骤s105,根据丢帧的位置信息选择用于修复丢帧情况的神经网络模型,神经网络模型包括第一修复模型和第二修复模型,其中,第一修复模型用于修复处于第一预设位置的语音信号帧,第二修复模型用于修复处于第二预设位置的语音信号帧;及步骤s107,将若干帧音频数据帧送入选择的神经网络模型,以对丢失的语音信号帧进行修复。
可选地,若干帧音频数据帧中还包括非语音信号帧;在步骤s101和步骤s103之间还包括:步骤s102,按预设算法区分若干帧音频数据帧中的语音信号帧和非语音信号帧;在步骤s103中,丢帧的位置信息为丢失的语音信号帧在语音信号帧组中所处的位置,语音信号组包括n帧语音信号帧,其中,n为大于或等于5的整数。
可选地,步骤s103包括:步骤s1031,通过观察窗在多个语音信号帧中顺序滑动,以对多个语音信号帧进行n帧一组的分组;步骤s1032,针对处于观察窗内的语音信号帧,确定是否存在丢帧的情况;及步骤s1033,当处于观察窗内的语音信号帧存在丢帧的情况后,确定丢失的语音信号帧在观察窗内的位置,以得到丢帧的位置信息;步骤s107包括:在观察窗内对丢失的语音信号帧进行修复。
可选地,在步骤s107之后,还包括:将恢复的语音信号帧更新至观察窗内对应的丢帧位置帧。
可选地,在步骤s1031中,采用迭代替换的滑动方式滑动观察窗,以使处于观察窗内的前k帧语音信号帧滑出观察窗,处于观察窗外的后k帧语音信号帧滑入观察窗内,其中,n为大于或等于1的整数。
可选地,k为1。
可选地,步骤s1033包括:确定丢失的语音信号帧在观察窗内的位置未包含处于观察窗内的最后一帧,并作为第一预设位置;步骤s105包括:将处于观察窗内的语音信号帧送入第一修复模型,以修复丢失的语音信号帧,其中,第一修复模型的输入数据中包括处于观察窗内的最后一帧。
可选地,步骤s1033包括:确定丢失的语音信号帧至少为2帧,丢帧的位置为处于观察窗内的最后一帧和处于观察窗内的其它位置帧,并作为第二预设位置;步骤s105包括:将处于观察窗内的、其它位置帧之前的语音信号帧送入第二修复模型,以修复位于其它位置帧的语音信号帧,其中,第二修复模型的输入数据为处于观察窗内的、其它位置帧之前的语音信号帧,且未包含处于观察窗内的最后一帧。
可选地,在步骤s102之后,还包括:对非语音信号帧的音频信号进行淡化包络处理。
根据第二方面,本发明实施例公开了一种基于神经网络的音频数据丢包修复装置,包括:数据获取模块,用于获取音频数据包,音频数据包包括若干帧音频数据帧,若干帧音频数据帧中至少包含多个语音信号帧,语音信号帧为包含语音信号的音频数据帧;位置确定模块,用于当若干帧音频数据帧中存在丢失语音信号帧的丢帧情况后,确定丢失的语音信号帧在若干帧音频数据帧中所处的位置得到丢帧的位置信息;所处的位置包括第一预设位置或第二预设位置;模型选择模块,用于根据丢帧的位置信息选择用于修复丢帧情况的神经网络模型,神经网络模型包括第一修复模型和第二修复模型,其中,第一修复模型用于修复处于第一预设位置的语音信号帧,第二修复模型用于修复处于第二预设位置的语音信号帧;及数据修复模块,用于将若干帧音频数据帧送入选择的神经网络模型,以对丢失的语音信号帧进行修复。
可选地,若干帧音频数据帧中还包括非语音信号帧;还包括:信号区分模块,用于按预设算法区分若干帧音频数据帧中的语音信号帧和非语音信号帧;丢帧的位置信息为丢失的语音信号帧在语音信号帧组中所处的位置,语音信号组包括n帧语音信号帧,其中,n为大于或等于5的整数。
可选地,位置确定模块包括:滑窗分组单元,用于通过观察窗在多个语音信号帧中顺序滑动,以对多个语音信号帧进行n帧一组的分组;丢帧确定单元,用于针对处于观察窗内的语音信号帧,确定是否存在丢帧的情况;及位置获取单元,用于当处于观察窗内的语音信号帧存在丢帧的情况后,确定丢失的语音信号帧在观察窗内的位置,以得到丢帧的位置信息;数据修复模块包括:在观察窗内对丢失的语音信号帧进行修复。
可选地,还包括:数据更新模块,用于将恢复的语音信号帧更新至观察窗内对应的丢帧位置帧。
可选地,滑窗分组单元采用迭代替换的滑动方式滑动观察窗,以使处于观察窗内的前k帧语音信号帧滑出观察窗,处于观察窗外的后k帧语音信号帧滑入观察窗内,其中,n为大于或等于1的整数。
可选地,k为1。
可选地,位置获取单元包括:确定丢失的语音信号帧在观察窗内的位置未包含处于观察窗内的最后一帧,并作为第一预设位置;模型选择模块包括:将处于观察窗内的语音信号帧送入第一修复模型,以修复丢失的语音信号帧,其中,第一修复模型的输入数据中包括处于观察窗内的最后一帧。
可选地,位置获取单元包括:确定丢失的语音信号帧至少为2帧,丢帧的位置为处于观察窗内的最后一帧和处于观察窗内的其它位置帧,并作为第二预设位置;模型选择模块包括:将处于观察窗内的、其它位置帧之前的语音信号帧送入第二修复模型,以修复位于其它位置帧的语音信号帧,其中,第二修复模型的输入数据为处于观察窗内的、其它位置帧之前的语音信号帧,且未包含处于观察窗内的最后一帧。
可选地,还包括:淡化包络模块,用于对非语音信号帧的音频信号进行淡化包络处理。
可选地,神经网络的模型包括第一修复模型和第二修复模型,神经网络训练装置包括:样本获取模块,用于获取待学习的语音信号样本数据,语音信号样本数据以n帧语音信号帧为一组,其中,n为大于或等于5的整数,语音信号帧为包含语音信号的音频数据帧;第一剔除模块,用于在每组n帧语音信号帧中剔除第一预设位置的语音信号帧得到第一输入样本;第二剔除模块,用于在每组n帧语音信号帧中剔除第二预设位置的语音信号帧得到第二输入样本,第一预设位置与第二预设位置的位置不同;及训练模块,用于将第一输入样本和第二输入样本分别输入至第一修复模型和第二修复模型,以分别训练第一修复模型和第二修复模型,第一修复模型用于修复处于第一预设位置的语音信号帧,第二修复模型用于修复处于第二预设位置的语音信号帧。
可选地,训练模块用于分别训练第一修复模型和第二修复模型包括:通过反复迭代训练第一修复模型和第二修复模型。
可选地,训练模块包括第一训练单元和/或第二训练单元,其中:第一训练单元用于反复迭代训练第一修复模型,包括:在第i次迭代后得到第i个语音信号帧,其中,i为正整数;判断第i个语音信号帧与被剔除的第一预设位置的语音信号帧之间的第一误差是否在预设范围内;如果第一误差在预设范围内,则输出第i次迭代所得到的模型参数,以固化第一修复模型;第二训练单元用于反复迭代训练第二修复模型,包括:在第j次迭代后得到第j个语音信号帧,其中,j为正整数;判断第j个语音信号帧与被剔除的第二预设位置的语音信号帧之间的第二误差是否在预设范围内;如果第二误差在预设范围内,则输出第j次迭代所得到的模型参数,以固化第二修复模型。
可选地,样本获取模块用于通过预设长度的观察窗对语音信号样本数据以n帧语音信号帧为一组;在观察窗内运行第一剔除模块、第二剔除模块和训练模块。
可选地,第一预设位置为处于观察窗内且未包含处于观察窗内的最后一帧;训练模块用于通过处于观察窗内的第一预设位置之前和之后的语音信号帧训练第一修复模型。
可选地,第一预设位置为非处于观察窗内的第一帧。
可选地,第二预设位置包括处于观察窗内的最后一帧;训练模块用于通过处于观察窗内的第一预设位置之前的语音信号帧训练第二修复模型。
根据第三方面,本发明实施例公开了一种音频设备,包括:处理器,用于实现上述第一方面任意公开的方法。
可选地,音频设备为具有音频播放功能的耳机、移动终端或智能穿戴设备。
根据第四方面,本发明实施例公开了一种音频信号交互系统,包括:第一设备和第二设备;第一设备将音频数据包发送给第二设备;第二设备用于实现上述第一方面任意公开的方法。
可选地,第一设备为移动终端,第二设备为耳机。
根据第五方面,本发明实施例公开了一种计算机可读存储介质,其上存储有计算机程序,存储介质中存储的计算机程序用于被执行实现上述第一方面任意公开的方法。
根据第六方面,本发明实施例公开了一种音频设备的芯片,其上具有集成电路,集成电路被设计成用于实现上述第一方面任意公开的方法。
依据本发明实施例公开的一种神经网络训练方法及音频丢包修复方法、设备和系统,获取的音频数据包包括若干帧音频数据帧,当若干帧音频数据帧中存在丢失语音信号帧的丢帧情况后,确定丢失的语音信号帧在若干帧音频数据帧中所处的位置得到丢帧的位置信息;而后,根据丢帧的位置信息选择用于修复丢帧情况的神经网络模型,将若干帧音频数据帧送入选择的神经网络模型,以对丢失的语音信号帧进行修复。由于第一修复模型和第二修复模型分别适用于修复不同丢帧位置的语音信号帧,因此,在确定丢失的语音信号帧所处的位置后,可以根据丢帧的位置选择对应的修复模型,相对于现有技术中,采用同样的修复模型来修复不同的丢帧情况,本发明实施例的方案能够适应选择修复模型,对丢失语音信号帧的修复更有针对性,继而,提高修复准确率。
作为可选的方案,按预设算法区分若干帧音频数据帧中的语音信号帧和非语音信号帧,丢帧的位置信息为丢失的语音信号帧在语音信号帧组中所处的位置,由此,可以实现针对语音信号帧的丢包数据进行修复,减少类非语音信号帧所带来的干扰,提高了修复准确率。
作为可选的方案,通过观察窗在多个语音信号帧中顺序滑动,将恢复的语音信号帧更新至观察窗内对应的丢帧位置帧,由此可以使得修复模型的输入数据是不缺失的,完善修复模型输入的参考数据,提高了修复的准确性。
作为可选的方案,采用迭代替换的滑动方式滑动观察窗,以使处于观察窗内的前k帧语音信号帧滑出观察窗,处于观察窗外的后k帧语音信号帧滑入观察窗内,可以保证神经网络输入数据的数量,相应地,处于观察窗内的前k帧语音信号帧滑出观察窗,可以减小系统输出数据的额外延时,也就是,能够及时地输出语音信号帧。
作为可选的方案,由于非语音信号帧所包含的有用信息较少,对非语音信号帧的音频信号进行淡化包络处理,可以提高数据处理效率,并且,由于非语音信号帧并未送入修复模型中,因此,可以减少神经网络对语音信号帧修复、训练的压力,提高修复的准确性。
本发明的其他有益效果,将在具体实施方式中通过具体技术特征和技术方案的介绍来阐述,本领域技术人员通过这些技术特征和技术方案的介绍,应能理解所述技术特征和技术方案带来的有益技术效果。
附图说明
以下将参照附图对根据本发明实施例进行描述。图中:
图1为本实施例公开的一种基于神经网络的音频数据丢包修复方法流程图;
图2为本实施例公开的一种通过观察窗确定丢帧位置的方法流程图;
图3为本实施例公开的一种滑窗分组修复的示例示意图;
图4为本实施例公开的一种用于音频丢包修复的神经网络训练方法流程图;
图5a和图5b为本实施例公开的一种剔除预设位置的示例示意图,其中,图5a为本实施例中剔除第一预设位置的示例示意图,图5b为本实施例中剔除第二预设位置的示例示意图;
图6为本实施例公开的一种基于神经网络的音频数据丢包修复装置结构示意图。
具体实施方式
为了利用新的神经网络模型来修复丢失的音频数据包,提高修复准确率,本实施例公开了一种基于神经网络的音频数据丢包修复方法,请参考图1,为本实施例公开的一种基于神经网络的音频数据丢包修复方法流程图,该音频数据丢包修复方法包括:
步骤s101,获取音频数据包。本实施例中,所称音频数据包包括若干帧音频数据帧,若干帧音频数据帧中至少包含多个语音信号帧,语音信号帧为包含语音信号的音频数据帧。具体地,若干帧音频信号帧中,可以存在一些帧是纯粹的语音信号;也可以存在一些帧是纯粹的噪声信号;还可以存在一些帧中既包含了语音信号,也包含了噪声信号,也就是,噪声信号和语音信号同时存在于同一帧中。在具体实施过程中,音频数据包具有包头信息,根据包头信息可以区分不同的音频数据帧序号。
步骤s103,当若干帧音频数据帧中存在丢失语音信号帧的丢帧情况后,确定丢失的语音信号帧在若干帧音频数据帧中所处的位置得到丢帧的位置信息。在具体实施例中,可以通过现有的方式来确定是否存在丢失语音信号帧的丢帧情况,例如,可以通过对语音信号帧的时频特征进行统计,根据统计量来估计缺失的特征,由此,可以确定是否丢失语音信号帧;当存在丢失语音信号帧的丢帧情况后,根据统计的结果可以确定语音信号帧所处的位置。所处的位置包括第一预设位置或第二预设位置,具体地,第一预设位置和第二预设位置的具体位置不同。本实施例中,所称位置信息可以采用帧号来表示,可以是丢失的语音信号帧在若干帧音频数据帧中的帧号,也可以是多个语音信号帧中的帧号,还可以是处于同一组语音信号帧内的帧号。
步骤s105,根据丢帧的位置信息选择用于修复丢帧情况的神经网络模型。本实施例中,神经网络模型包括第一修复模型和第二修复模型,第一修复模型和第二修复模型分别适用于修复不同丢帧位置的语音信号帧。本实施例中,区分了丢帧位置的情形,针对不同的丢帧位置,选择采用第一修复模型或第二修复模型对丢失的信号帧进行修复,使得在修复丢失的信号帧时,更具有针对性,提高修复准确率。
需要说明的是,在神经网络训练的过程中,可以用不同的输入样本对修复模型进行训练,从而,分别训练得到第一修复模型和第二修复模型的权值、参数,具体地,请参见下文描述。
步骤s107,将若干帧音频数据帧送入选择的神经网络模型,以对丢失的语音信号帧进行修复。在具体实施过程中,在选择第一修复模型或第二修复模型对丢失的语音信号帧进行修复得到相应的语音信号数据后,可以将修复得到的语音信号数据插入丢失的信号帧的位置,得到完整的语音信号,发送至音频输出设备播放语音信号。本实施例中,第一修复模型用于修复处于第一预设位置的语音信号帧,第二修复模型用于修复处于第二预设位置的语音信号帧,也就是,第一修复模型是采用剔除了第一预设位置的样本训练得到,第二修复模型是采用剔除了第二预设位置的样本训练得到。
若干帧音频数据帧中包括语音信号帧和非语音信号帧,为了筛选出语音信号帧,提高修复的针对性,在可选的实施例中,请参考图1,在步骤s101和步骤s103之间还包括:
步骤s102,按预设算法区分若干帧音频数据帧中的语音信号帧和非语音信号帧。本实施例中,并不限制具体的预设算法,可以是例如神经网络算法,也可以是其它的频谱分析法,只要能够区分语音信号帧和非语音信号帧即可。作为示例,在获取音频数据后,将获取的音频数据送入前置神经网络算法,通过前置神经网络算法来区分各帧音频数据帧是语音信号帧,还是非语音信号帧。
为了减少神经网络对语音信号帧修复、训练的压力,提高修复的准确性,在可选的实施例中,在步骤s102之后,还包括:对非语音信号帧的音频信号进行淡化包络处理。本实施例中,所称淡化包络处理可以是简单的复制替换或者简单淡入淡出。本实施例中,由于非语音信号帧所包含的有用信息较少,对非语音信号帧的音频信号进行淡化包络处理,可以提高数据处理效率,并且,由于非语音信号帧并未送入修复模型中,因此,可以减少神经网络对语音信号帧修复、训练的压力,提高修复的准确性。
在可选的实施例中,在步骤s103中,丢帧的位置信息为丢失的语音信号帧在语音信号帧组中所处的位置,语音信号组包括n帧语音信号帧,其中,n为大于或等于5的整数。具体地,当区分语音信号帧和非语音信号帧后,可以对语音信号帧进行分组,得到多组语音信号帧,每组语音信号帧中包含n帧语音信号帧,而后,确定丢失的语音信号帧在本组内的位置,例如在本组内的帧号。
在具体实施过程中,可以通过观察窗的方式来划分各个语音信号帧组,具体地,请参考图2,为本实施例公开的一种通过观察窗确定丢帧位置的方法流程图,该方法包括:
步骤s1031,通过观察窗在多个语音信号帧中顺序滑动。本实施例中,可以通过预设长度n的观察窗进行滑动,从而对多个语音信号帧进行n帧一组的分组,也就是,观察窗的长度也就是组内的语音信号帧的帧数。
步骤s1032,针对处于观察窗内的语音信号帧,确定是否存在丢帧的情况。具体地,当观察窗滑动包含n帧语音信号帧后,可以在观察窗内进行时频特征进行统计,根据统计量来估计缺失的特征,由此,可以确定观察窗内的语音信号帧是否丢失语音信号数据。
步骤s1033,当处于观察窗内的语音信号帧存在丢帧的情况后,确定丢失的语音信号帧在观察窗内的位置,以得到丢帧的位置信息。本实施例中,丢帧的位置信息是指丢失的语音信号帧在观察窗内的位置;本实施例中,所称观察窗内的位置可以是观察窗内的帧序号,也就是,丢失的语音信号帧在观察窗内处于第几帧。
本实施例中,在采用观察窗确定丢失信号帧的实施例中,也可以在观察窗内对丢失的语音信号帧进行修复,也就是步骤s107包括:在观察窗内对丢失的语音信号帧进行修复。
在可选的实施例中,在执行步骤s107之后,还可以包括:将恢复的语音信号帧更新至观察窗内对应的丢帧位置帧。具体地,在确定观察窗内的某一帧语音信号帧的数据丢失后,通过选择的修复模型修复该丢失的语音信号帧的数据,而后,再将修复后的数据更新至该丢失帧所在的位置。本实施例中,将修复后的数据更新至观察窗内对应的丢帧位置帧,可以完善观察窗内的语音信号帧数据,由此可以使得修复模型的输入数据是不缺失的,完善修复模型输入的参考数据,提高了修复的准确性。
为了保证神经网络输入数据的数量,减小系统输出数据的额外延时,在可选的实施例中,在执行步骤s1031时,可以采用迭代替换的滑动方式滑动观察窗,以使处于观察窗内的前k帧语音信号帧滑出观察窗,处于观察窗外的后k帧语音信号帧滑入观察窗内,其中,n为大于或等于1的整数,k的取值可以为1。
为便于本领域技术人员理解,作为示例,观察窗的预设长度示例性为7帧,也就是n=7,k的取值例如为1,请参考图3,为本实施例公开的一种滑窗分组修复的示例示意图,图3中,虚线框所示的为预设长度的观察窗,通过观察窗在语音信号帧进行滑窗分组修复的处理过程如下:
(1)在当前状态,观察窗内包含了编号1至7的语音信号帧,丢失的语音信号帧为第6帧,如图3的网格线框所示的位置;
(2)基于该丢帧的位置信息选择第一修复模型或第二修复模型作为修复的神经网络模型;
(3)将编号1-5、7输入至选择的神经网络模型,通过选择的神经网络模型修复得到第6帧的语音信号数据;
(4)将修复得到的语音信号数据更新至当前状态观察窗内第6帧的位置,如图3的网格线框所示的位置,从而,完善了当前状态观察窗内语音信号帧的数据;
(5)在修复后,将处于观察窗内的第1帧语音信号帧滑出观察窗,同时,处于观察窗外的后1帧语音信号帧滑入观察窗内;此时,进入了当前状态的下一个状态,此状态下,原编号2至7的语音信号帧顺次变为编号1-6(如图3的箭头线条所示),新滑入观察窗内的语音信号帧编号为7;
在当前状态的下一个状态,如果需要修复丢失的语音信号帧,由于原第6帧的位置(也就是此状态下的第5帧,如图3的斜线框所示的位置)的数据已经更新,因此,此状态下的第5帧的语音信号帧数据也可以作为修复模型的输入。
在具体实施例中,在执行步骤s1033时,确定丢失的语音信号帧未包含、包含观察窗内的最后一帧两种情形,具体地:
在一种实施例中,步骤s1033包括:确定丢失的语音信号帧在观察窗内的位置未包含处于观察窗内的最后一帧,也就是,处于观察窗内的最后一帧语音信号帧的数据没有丢失,丢失的是观察窗内中间段的信号帧,将该丢失的中间段的信号帧所在位置作为第一预设位置。此时,在执行步骤s105时,步骤s105包括:将处于观察窗内的语音信号帧送入第一修复模型,以修复丢失的语音信号帧,其中,第一修复模型的输入数据中包括处于观察窗内的最后一帧。具体地,也就是将观察窗内丢失的语音信号帧之前、之后的语音信号帧送入第一修复模型,第一修复模型根据丢失的语音信号帧之前、之后的语音信号帧来修复丢失的语音信号帧。作为示例,假设观察窗内丢失的数据是第6帧,则将编号1-5的语音信号帧及第7帧输入第一修复模型,第一修复模型根据编号1-5、7的语音信号帧来修复第6帧语音信号帧。
在另一种实施例中,步骤s1033包括:确定丢失的语音信号帧至少为2帧,丢帧的位置为处于观察窗内的最后一帧和处于观察窗内的其它位置帧,该丢帧的其它位置作为第二预设位置。此时,在执行步骤s105时,步骤s105包括:将处于观察窗内的、其它位置帧之前的语音信号帧送入第二修复模型,以修复位于其它位置帧的语音信号帧,其中,第二修复模型的输入数据为处于观察窗内的、其它位置帧之前的语音信号帧,且未包含处于观察窗内的最后一帧。具体地,也就是将观察窗内丢失的语音信号帧之前的语音信号帧送入第二修复模型,第二修复模型根据丢失的语音信号帧之前的语音信号帧来修复丢失的语音信号帧。作为示例,假设观察窗内丢失的数据是第6帧和最后一帧第7帧,则将编号1-5的语音信号帧输入第二修复模型,第二修复模型根据编号1-5的语音信号帧来修复第6帧语音信号帧,当然,在一些实施例中,也可以同步修复观察窗内最后一帧第7帧的语音信号数据。
为便于本领域技术人员理解,本实施例还公开了一种用于音频丢包修复的神经网络训练方法,本实施例中,完成训练后的神经网络模型适用于上述的丢包修复方法,其中,神经网络的模型包括第一修复模型和第二修复模型,请参考图4,为本实施例公开的一种用于音频丢包修复的神经网络训练方法流程图,该神经网络训练方法包括:
步骤s201,获取待学习的语音信号样本数据。本实施例中,所称语音信号样本数据以n帧语音信号帧为一组,其中,n为大于或等于5的整数,语音信号帧为包含语音信号的音频数据帧。在具体实施过程中,可以直接获取已经划分组的语音信号帧作为语音信号样本数据,也可以获取语音信号样本数据后,再对语音信号样本数据进行以n帧语音信号帧为一组的分组。
步骤s203,在每组n帧语音信号帧中剔除第一预设位置的语音信号帧得到第一输入样本。本实施例中,所称第一预设位置是指在组内的位置,具体地,可以以组内的语音信号帧序号来表示第一预设位置。
步骤s205,在每组n帧语音信号帧中剔除第二预设位置的语音信号帧得到第二输入样本。本实施例中,所称第二预设位置是指在组内的位置,具体地,可以以组内的语音信号帧序号来表示第二预设位置。本实施例中,第一预设位置与第二预设位置的位置不同。
步骤s207,将第一输入样本和第二输入样本分别输入至第一修复模型和第二修复模型,以分别训练第一修复模型和第二修复模型。本实施例中,第一修复模型和第二修复模型分别适用于修复不同丢帧位置的语音信号帧。需要说明的是,本实施例中,并不限制第一修复模型和第二修复模型的训练先后顺序,第一修复模型和第二修复模型可以分开单独训练,也可以在同一pc端同步训练。
在具体实施过程中,可以采用例如反复迭代的方式来分别训练第一修复模型和/或第二修复模型,当然,也可以采用其它的方式来分别训练第一修复模型和第二修复模型,得到第一修复模型和第二修复模型的模型参数,例如权值、系数等;而后,可以将第一修复模型和第二修复模型存储至存储设备,以便在修复丢失的语音信号帧时,可以直接调用相关的修复模型。
在具体实施过程中,应当采用与上述丢包修复方法相同的分组方式来对样本进行分组,具体地,步骤s201包括:通过预设长度的观察窗对语音信号样本数据以n帧语音信号帧为一组,也就是,长度为n帧的观察窗在语音信号样本数据滑动,从而,将语音信号样本数据划分为n一组;而后,在观察窗内执行步骤s203、步骤s205和步骤s207。
在具体实施例中,在执行步骤s203时,第一预设位置为处于观察窗内且未包含处于观察窗内的最后一帧;通过处于观察窗内的第一预设位置之前和之后的语音信号帧训练第一修复模型。也就是,处于观察窗内的最后一帧语音信号帧的数据没有剔除,剔除的是观察窗内中间段的信号帧。此时,在执行步骤s203时,将处于观察窗内的语音信号帧送入第一修复模型,以训练第一修复模型,即,训练第一修复模型的第一输入样本中包括处于观察窗内的最后一帧。具体地,也就是将观察窗内剔除的语音信号帧之前、之后的语音信号帧送入第一修复模型,第一修复模型根据剔除的语音信号帧之前、之后的语音信号帧来训练得到剔除的语音信号帧。请参考图5a,为本实施例中剔除第一预设位置的示例示意图,图5a中,虚线框为预设长度的观察窗,假设n=7,该观察窗内包含了编号1-7的语音信号帧,假设观察窗内剔除的数据是第6帧,则将编号1-5的语音信号帧及第7帧作为第一输入样本,而后将第一输入样本输入第一修复模型,第一修复模型根据编号1-5、7的语音信号帧来迭代训练得到第6帧语音信号帧。
在可选的实施例中,第一预设位置为非处于观察窗内的第一帧。作为优选的实施例,根据上述实施例的记载,考虑到是采用滑窗的方式来修复丢失的语音信号帧,当丢失的数据被修复后,观察窗内的数据可以更新完善,因此,在优选的实施例中,第一预设位置可以优选为观察窗内靠后的位置,例如第n-1帧。
在具体实施例中,在执行步骤s203时,第二预设位置为处于观察窗内的最后一帧;通过处于观察窗内的第二预设位置之前的语音信号帧训练第二修复模型。也就是,处于观察窗内的最后一帧语音信号帧的数据被剔除。此时,在执行步骤s203时,将处于观察窗内的语音信号帧送入第二修复模型,以训练第二修复模型。具体地,也就是将观察窗内剔除的语音信号帧(第二预设位置)之前的语音信号帧送入第二修复模型,第二修复模型根据剔除的语音信号帧之前的语音信号帧来训练得到剔除的语音信号帧,亦即,通过前向预测的方式来训练得到第二预设位置的语音信号帧。请参考图5b,为本实施例中剔除第二预设位置的示例示意图,图5b中,虚线框为预设长度的观察窗,假设n=6,该观察窗内包含了编号1-6的语音信号帧,假设观察窗内剔除的数据是第6帧,则将编号6之前的编号1-5的语音信号帧作为第二输入样本,而后将第二输入样本输入第二修复模型,第二修复模型根据编号1-5的语音信号帧来迭代训练得到第6帧语音信号帧。
本实施例还公开了一种基于神经网络的音频数据丢包修复装置,请参考图6,为本实施例公开的一种基于神经网络的音频数据丢包修复装置结构示意图,该音频数据丢包修复装置包括:数据获取模块701、位置确定模块702、模型选择模块703和数据修复模块704,其中:
数据获取模块701用于获取音频数据包,音频数据包包括若干帧音频数据帧,若干帧音频数据帧中至少包含多个语音信号帧,语音信号帧为包含语音信号的音频数据帧;位置确定模块702用于当若干帧音频数据帧中存在丢失语音信号帧的丢帧情况后,确定丢失的语音信号帧在若干帧音频数据帧中所处的位置得到丢帧的位置信息;模型选择模块703用于根据丢帧的位置信息选择用于修复丢帧情况的神经网络模型,神经网络模型包括第一修复模型和第二修复模型,第一修复模型和第二修复模型分别适用于修复不同丢帧位置的语音信号帧;数据修复模块704用于将若干帧音频数据帧送入选择的神经网络模型,以对丢失的语音信号帧进行修复。
在可选的实施例中,若干帧音频数据帧中还包括非语音信号帧;该音频数据丢包修复装置还包括:信号区分模块,用于按预设算法区分若干帧音频数据帧中的语音信号帧和非语音信号帧;丢帧的位置信息为丢失的语音信号帧在语音信号帧组中所处的位置,语音信号组包括n帧语音信号帧,其中,n为大于或等于5的整数。
在可选的实施例中,位置确定模块包括:滑窗分组单元,用于通过观察窗在多个语音信号帧中顺序滑动,以对多个语音信号帧进行n帧一组的分组;丢帧确定单元,用于针对处于观察窗内的语音信号帧,确定是否存在丢帧的情况;及位置获取单元,用于当处于观察窗内的语音信号帧存在丢帧的情况后,确定丢失的语音信号帧在观察窗内的位置,以得到丢帧的位置信息;数据修复模块包括:在观察窗内对丢失的语音信号帧进行修复。
在可选的实施例中,音频数据丢包修复装置还包括:数据更新模块,用于将恢复的语音信号帧更新至观察窗内对应的丢帧位置帧。
在可选的实施例中,滑窗分组单元采用迭代替换的滑动方式滑动观察窗,以使处于观察窗内的前k帧语音信号帧滑出观察窗,处于观察窗外的后k帧语音信号帧滑入观察窗内,其中,n为大于或等于1的整数。
在可选的实施例中,k为1。
在可选的实施例中,位置获取单元包括:确定丢失的语音信号帧在观察窗内的位置未包含处于观察窗内的最后一帧;模型选择模块包括:将处于观察窗内的语音信号帧送入第一修复模型,以修复丢失的语音信号帧,其中,第一修复模型的输入数据中包括处于观察窗内的最后一帧。
在可选的实施例中,位置获取单元包括:确定丢失的语音信号帧至少为2帧,丢帧的位置为处于观察窗内的最后一帧和处于观察窗内的其它位置帧;模型选择模块包括:将处于观察窗内的、其它位置帧之前的语音信号帧送入第二修复模型,以修复位于其它位置帧的语音信号帧,其中,第二修复模型的输入数据为处于观察窗内的、其它位置帧之前的语音信号帧,且未包含处于观察窗内的最后一帧。
在可选的实施例中,音频数据丢包修复装置还包括:淡化包络模块,用于对非语音信号帧的音频信号进行淡化包络处理。
本实施例还公开了一种音频设备,音频设备为具有音频数据采集功能的设备,具体地,音频设备可以是例如耳机、移动终端或智能穿戴设备,该音频设备包括:处理器,用于实现上述任意实施例公开的基于神经网络的音频数据丢包修复方法。
本实施例还公开了一种音频信号交互系统,包括:第一设备和第二设备;
第一设备将音频数据包发送给第二设备;第二设备用于实现上述任意实施例公开的基于神经网络的音频数据丢包修复方法。
在可选的实施例中,第一设备为移动终端,第二设备为耳机。移动终端可以是平板电脑、手机、笔记本电脑等具有数据处理功能的终端。
本实施例还公开了一种计算机可读存储介质,其上存储有计算机程序,存储介质中存储的计算机程序用于被执行实现上述任意实施例公开的基于神经网络的音频数据丢包修复方法。
依据本实施例公开的一种基于神经网络的音频丢包修复方法、设备和系统,获取的音频数据包包括若干帧音频数据帧,当若干帧音频数据帧中存在丢失语音信号帧的丢帧情况后,确定丢失的语音信号帧在若干帧音频数据帧中所处的位置得到丢帧的位置信息;而后,根据丢帧的位置信息选择用于修复丢帧情况的神经网络模型,将若干帧音频数据帧送入选择的神经网络模型,以对丢失的语音信号帧进行修复。由于第一修复模型和第二修复模型分别适用于修复不同丢帧位置的语音信号帧,因此,在确定丢失的语音信号帧所处的位置后,可以根据丢帧的位置选择对应的修复模型,相对于现有技术中,采用同样的修复模型来修复不同的丢帧情况,本发明实施例的方案能够适应选择修复模型,对丢失语音信号帧的修复更有针对性,继而,提高修复准确率。
作为可选的实施例,按预设算法区分若干帧音频数据帧中的语音信号帧和非语音信号帧,丢帧的位置信息为丢失的语音信号帧在语音信号帧组中所处的位置,由此,可以实现针对语音信号帧的丢包数据进行修复,减少类非语音信号帧所带来的干扰,提高了修复准确率。
作为可选的实施例,通过观察窗在多个语音信号帧中顺序滑动,将恢复的语音信号帧更新至观察窗内对应的丢帧位置帧,由此可以使得修复模型的输入数据是不缺失的,完善修复模型输入的参考数据,提高了修复的准确性。
作为可选的实施例,采用迭代替换的滑动方式滑动观察窗,以使处于观察窗内的前k帧语音信号帧滑出观察窗,处于观察窗外的后k帧语音信号帧滑入观察窗内,可以保证神经网络输入数据的数量,相应地,处于观察窗内的前k帧语音信号帧滑出观察窗,可以减小系统输出数据的额外延时,也就是,能够及时地输出语音信号帧。
作为可选的实施例,由于非语音信号帧所包含的有用信息较少,对非语音信号帧的音频信号进行淡化包络处理,可以提高数据处理效率,并且,由于非语音信号帧并未送入修复模型中,因此,可以减少神经网络对语音信号帧修复、训练的压力,提高修复的准确性。
本领域的技术人员能够理解的是,在不冲突的前提下,上述各优选方案可以自由地组合、叠加。
应当理解,上述的实施方式仅是示例性的,而非限制性的,在不偏离本发明的基本原理的情况下,本领域的技术人员可以针对上述细节做出的各种明显的或等同的修改或替换,都将包含于本发明的权利要求范围内。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除